经过上一篇《防火墙ALG技术之安全策略》的介绍,相信各位看官已经对FTP协议有了充分的了解,并且对该类动态端口协议穿越防火墙时的注意事项也是驾轻就熟。本篇作为续集篇,将继续以图文形式为大家讲解上一回合遗留的两个问题:FTP协议如何穿越SNAT和FTP协议如何穿越DNAT。
主动模式穿越SNAT主要用于FTP服务器部署在公网,客户端需要通过SNAT转换访问服务器。如图1-1所示,描述了FTP主动模式穿越SNAT时的工作流程,此时需要借助ALG技术才可以完成穿越防火墙。
防火墙设备上配置了私网地址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)发送至公网服务器,从而实现私网客户端访问公网服务器。
被动模式穿越SNAT主要用于FTP服务器部署在公网,客户端需要通过SNAT转换访问服务器。如图2-1所示,描述了FTP被动模式穿越SNAT时的工作流程,此时不需要借助ALG技术也可以完成穿越防火墙的(为什么呢?请思考一下)。
-
私网客户端与公网服务器之间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)发送至公网服务器,从而实现私网客户端访问公网服务器。
被动模式穿越DNAT主要用于FTP服务器部署在私网,客户端需要通过DNAT转换访问服务器,如图3-1所示,描述了FTP被动模式穿越DNAT时的工作流程,此时需要借助ALG技术才可以完成穿越防火墙。
-
公网客户端与私网服务器之间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)发送至私网服务器,从而实现公网客户端访问私网服务器。
主动模式穿越DNAT主要用于FTP服务器部署在私网,客户端需要通过DNAT转换访问服务器,如图4-1所示,描述了FTP主动模式穿越DNAT时的工作流程,此时不需要借助ALG技术也可以完成穿越防火墙的(为什么呢?请思考一下)。
-
公网客户端与私网服务器之间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应用在外部地址访问内部地址的场景下。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
下载方式
微信扫码关注我们
回复:“穿墙术” 获取下载链接
北京威努特技术有限公司(以下简称“威努特”), 是国内工控网络安全领军企业、全球六家荣获国际自动化协会安全合规学会ISASecure CRT Tool认证企业之一和亚太地区唯一国际自动化学会(ISA)全球网络安全联盟(GCA)创始成员。
威努特作为国家高新技术企业,以创新的“白环境”整体解决方案为核心,自主研发了全系列工控网络安全专用产品,拥有64项发明专利、64项软件著作权、70项原创漏洞证明等核心知识产权。积极牵头和参与工控网络安全领域国家、行业标准制定,受邀出色完成新中国70周年庆典、中共十九大、两会等重大活动的网络安保任务,被授予“国家重大活动网络安保技术支持单位”,得到了中央网信办、公安部、工信部等国家政府部门的高度认可。迄今已成功为电力、轨道交通、石油石化、军工、烟草、市政、智能制造、冶金等国家重要行业1000多家工业企业提供了全面有效的安全保障。
威努特始终以“专注工控,捍卫安全”为使命,致力于为我国关键信息基础设施网络空间安全保驾护航!
渠道合作咨询 张先生 18201311186
稿件合作 微信:shushu12121
本文始发于微信公众号(威努特工控安全):防火墙ALG技术之FTP协议穿墙术
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论