万花筒写轮眼之防火墙ALG技术之FTP协议穿墙术

FTP协议主动模式穿越SNAT

主动模式穿越SNAT主要用于FTP服务器部署在公网,客户端需要通过SNAT转换访问服务器。如图1-1所示,描述了FTP主动模式穿越SNAT时的工作流程,此时需要借助ALG技术才可以完成穿越防火墙。

防火墙ALG技术之FTP协议穿墙术

图1-1 FTP主动模式穿越SNAT流程图

防火墙设备上配置了私网地址192.168.12.2到公网地址106.120.22.2/FTP服务的映射,实现IP地址的转换,以支持私网客户端对公网服务器的访问。组网中,若没有ALG对报文载荷的处理(图1-1中红色字体部分内容的变化),私网客户端发送的PORT报文到达公网服务器端后,服务器无法根据私网地址进行路由,也就无法正常地建立数据连接,从而导致私网客户端访问公网FTP服务器失败。如图1-2-(a)和图1-2-(b)所示,整个通信过程包括以下几个阶段:

 

  • 私网客户端与公网服务器之间TCP的三次握手建立控制连接;

  • 私网客户端发送PORT命令,携带私网客户端指定的用于数据连接的IP和PORT信息;

  • PORT命令到达防火墙时,报文载荷中的私网IP(192.168.12.2)和PORT(Y=31272=122*256+40)会被转换成为公网IP(106.120.22.2)和PORT(Y'=31272=122*256+40);

  • 公网服务器收到PORT命令后解析其内容,并主动向私网客户端发送数据连接(源IP-106.120.12.2、目的IP-106.120.22.2、源端口-20、目的端口-Y'=31272),经防火墙NAT转换后(源IP-106.120.12.2、目的IP-192.168.12.2、源端口-20、目的端口Y=31272)发送至公网服务器,从而实现私网客户端访问公网服务器。

 

防火墙ALG技术之FTP协议穿墙术

图1-2-(a) FTP主动模式穿越SNAT-Client

防火墙ALG技术之FTP协议穿墙术

图1-2-(b) FTP主动模式穿越SNAT-Server

 

FTP协议被动模式穿越SNAT

被动模式穿越SNAT主要用于FTP服务器部署在公网,客户端需要通过SNAT转换访问服务器。如图2-1所示,描述了FTP被动模式穿越SNAT时的工作流程,此时不需要借助ALG技术也可以完成穿越防火墙的(为什么呢?请思考一下)。

防火墙ALG技术之FTP协议穿墙术

图2-1 FTP被动模式穿越SNAT流程图

如图2-2-(a)和2-2-(b)所示,防火墙配置同“1.FTP协议主动模式穿越SNAT”章节所述,整个通信过程包括以下几个阶段:

 

  • 私网客户端与公网服务器之间TCP的三次握手建立控制连接;

  • 私网客户端发送PASV命令,公网服务器响应PASV命令,携带公网服务器指定的用于数据连接的IP和PORT信息,被动地等待客户端来连接;

  • PASV响应命令到达防火墙时,报文载荷中的公网IP(106.120.12.2)和PORT(Z=23076=90*256+36)不会进行NAT转换,将原样转发至私网客户端;

  • 私网客户端收到PASV响应命令后解析其内容,发送数据连接(源IP-192.168.12.2、目的IP-106.120.12.2、源端口-Y=31277、目的端口- Z=23076),经防火墙NAT转换后(源IP-106.120.22.2、目的IP-106.120.12.2、源端口-Y'=10009、目的端口Z=23076)发送至公网服务器,从而实现私网客户端访问公网服务器。

图2-2-(a) FTP被动模式穿越SNAT-Client

防火墙ALG技术之FTP协议穿墙术

图2-2-(b) FTP被动模式穿越SNAT-Server

防火墙ALG技术之FTP协议穿墙术

 

FTP协议被动模式穿越DNAT

被动模式穿越DNAT主要用于FTP服务器部署在私网,客户端需要通过DNAT转换访问服务器,如图3-1所示,描述了FTP被动模式穿越DNAT时的工作流程,此时需要借助ALG技术才可以完成穿越防火墙。

防火墙ALG技术之FTP协议穿墙术

图3-1 FTP被动模式穿越DNAT流程图

 

防火墙设备上配置了私网地址192.168.12.2/TCP私网端口21到公网地址106.120.22.2/TCP公网端口2100的映射,实现IP地址的转换,以支持公网客户端对私网服务器的访问。组网中,若没有ALG对报文载荷的处理(图3-1中红色字体部分内容的变化),私网服务器发送的PASV响应报文到达公网客户端后,客户端无法根据私网地址进行路由,也就无法建立正确的数据连接。如图3-2-(a)和图3-2-(b)所示,整个通信过程包括以下几个阶段:

 

  • 公网客户端与私网服务器之间TCP的三次握手建立控制连接;

  • 公网客户端发送PASV命令,私网服务器响应PASV命令,携带私网服务器指定的用于数据连接的IP和PORT信息,被动地等待客户端来连接;

  • PASV响应命令到达防火墙时,报文载荷中的私网IP(192.168.12.2)和PORT(C=31920=124*256+176)会被转换成为公网IP(106.120.22.2)和PORT(C'=31920=124*256+176);

  • 公网客户端收到PASV响应命令后解析其内容,发送数据连接(源IP-106.120.12.2、目的IP-106.120.22.2、源端口-D=23366、目的端口-C'=31920),经防火墙NAT转换后(源IP-106.120.12.2、目的IP-192.168.12.2、源端口-D=23366、目的端口C =31920)发送至私网服务器,从而实现公网客户端访问私网服务器。

防火墙ALG技术之FTP协议穿墙术

图3-2-(a) FTP被动模式穿越DNAT-Client

 

防火墙ALG技术之FTP协议穿墙术

图3-2-(b) FTP被动模式穿越DNAT-Server

 

FTP协议主动模式穿越DNAT

 

主动模式穿越DNAT主要用于FTP服务器部署在私网,客户端需要通过DNAT转换访问服务器,如图4-1所示,描述了FTP主动模式穿越DNAT时的工作流程,此时不需要借助ALG技术也可以完成穿越防火墙的(为什么呢?请思考一下)。

 

防火墙ALG技术之FTP协议穿墙术

图4-1 FTP主动模式穿越DNAT流程图

 

如图4-2-(a)和4-2-(b)所示,防火墙配置同“3.FTP协议被动模式穿越DNAT”章节所述,整个通信过程包括以下几个阶段:

 

  • 公网客户端与私网服务器之间TCP的三次握手建立控制连接;

  • 公网客户端发送PORT命令,携带公网客户端指定的用于数据连接的IP和PORT信息;

  • PORT命令到达防火墙时,报文载荷中的公网IP(106.120.12.2)和PORT(C=23360=91*256+64)不会进行NAT转换,将原样转发至私网服务器;

  • 私网服务器收到PORT命令后解析其内容,并主动向公网客户端发送数据连接(源IP-192.168.12.2、目的IP-106.120.12.2、源端口-20、目的端口-C=23360),经防火墙NAT转换后(源IP-106.120.22.2、目的IP-106.120.12.2、源端口-10011、目的端口-C=23360)发送至公网客户端,从而实现公网客户端访问私网服务器。

 

防火墙ALG技术之FTP协议穿墙术

图4-2-(a) FTP主动模式穿越DNAT-Client

 

防火墙ALG技术之FTP协议穿墙术

图4-2-(b) FTP主动模式穿越DNAT-Server

 

FTP协议穿越防火墙NAT小结

ALG应用在外部地址访问内部地址的场景下。ALG如果发现报文头部进行了NAT,并且进一步发现是一条FTP连接时,就需要对PORT/PASV命令中的IP和PORT进行转换。这样理解后总结上述几种场景可以得出如下结论:

  • 私网访问公网时需要防火墙进行SNAT,主动模式外部地址(Server)访问内部地址(Client)建立数据连接,因此需要ALG;而被动模式不涉及外部地址想访问内部地址的过程,故不需要ALG。

  • 公网访问私网时需要防火墙进行DNAT,被动模式外部地址(Client)访问内部地址(Server)建立数据连接,因此需要ALG;而主动模式不涉及外部地址想访问内部地址的过程,故不需要ALG。

 

  • 01_FTP主动模式穿越SNAT-Client.pcap

  • 02_FTP主动模式穿越SNAT-Server.pcap

  • 03_FTP被动模式穿越SNAT-Client.pcap

  • 04_FTP被动模式穿越SNAT-Server.pcap

  • 05_FTP被动模式穿越DNAT-Client.pcap

  • 06_FTP被动模式穿越DNAT-Server.pcap

  • 07_FTP主动模式穿越DNAT-Client.pcap

  • 08_FTP主动模式穿越DNAT-Server.pcap

→资料获取←

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值