防火墙172.31.0.149——172.31.0.143 FTP服务器,控制端口8002
使用FTP等多通道协议,正常策略只需要放通控制通道,数据通道会关联控制通道会话,但是在使用非知名端口下,数据通道会出现被策略阻断情况,无法关联会话。
首先由于端口非知名端口,在设备上无法识别为FTP协议,因此首先需要做端口映射。
port-mapping application ftp port 8002
做好后发现FTP正常,但是客户需要做更细致的控制,需要加ACL。
port-mapping application ftp port 8002 acl 2999
acl basic 2999
rule 0 permit source 172.31.0.149 0
由于基础ACL只能加源地址,因此理所当然的认为需要写发起方的源地址。 也就是组网中的防火墙地址。实际测试发现被策略阻断,会话中也没有识别为FTP协议。
*Jul 30 13:12:30:737 2021 H3C ASPF/7/PACKET: -COntext=3; The first packet was dropped by packet filter or object-policy. Src-ZOne=Local, Dst-ZOne=Trust;If-In=InLoopBack0(526), If-Out=Reth255(533); Packet Info:Src-IP=172.31.0.149, Dst-IP=172.31.0.143, VPN-Instance=none, Src-Port=60111, Dst-Port=49902. Protocol=TCP(6). Flag=SYN. Seq=2035911194.
Initiator:
Source IP/port: 172.31.0.149/60112
Destination IP/port: 172.31.0.143/8002
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: InLoopBack0
Source security zone: Local
Responder:
Source IP/port: 172.31.0.143/8002
Destination IP/port: 172.31.0.149/60112
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: -/-/-
Protocol: TCP(6)
Inbound interface: Reth255
Source security zone: Trust
State: TCP_ESTABLISHED
Application: GENERAL_TCP
Rule ID: 0
Rule name: t
Start time: 2021-07-30 13:17:25 TTL: 3596s
Initiator->Responder: 0 packets 0 bytes
Responder->Initiator: 0 packets 0 bytes
查看命令手册发现,ACL中的源实际上需要写服务器地址。
对于匹配指定ACL的报文(其目的IP地址与ACL中某规则指定的源IP地址参数相匹配),如果报文的目的端口号与某个映射关系匹配,则该报文将被识别为对应的应用层协议报文。
因此改为如下后正常
acl basic 2999
rule 0 permit source 172.31.0.143 0
1.多通道协议只放通控制通道是因为设备会识别知名端口,建立关联会话,使用非知名端口情况下,需要做端口映射。也就是port-mapping。
2.在使用ACL的时候,ACL中的源地址实际上是流量的目的地址,也就是port-mapping中需要匹配端口的地址。
原因为在port-mapping 中,只写端口实际上就是因为这个功能只能匹配目的端口号,因此地址也只会匹配目的地址,对源地址不做限制。而设备基础ACL只能写源,无法单独写目的,因此只能设计为将ACL的源和端口映射的目的对应。