Print

使用FTP等多通道协议,但是不使用知名端口,数据通道被阻断问题。

2021-08-03 发表

组网及说明

防火墙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的源和端口映射的目的对应。