写点什么

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

用户头像
Machine Gun
关注
发布于: 2021 年 06 月 15 日

FTP 协议主动模式穿越 SNAT

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



图 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)发送至公网服务器,从而实现私网客户端访问公网服务器。



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



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


FTP 协议被动模式穿越 SNAT

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



图 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



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



FTP 协议被动模式穿越 DNAT

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



图 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)发送至私网服务器,从而实现公网客户端访问私网服务器。



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



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


FTP 协议主动模式穿越 DNAT


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



图 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)发送至公网客户端,从而实现公网客户端访问私网服务器。



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



图 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。

附件-FTP 协议穿越 NAT 抓包

  • 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

用户头像

Machine Gun

关注

还未添加个人签名 2021.03.28 加入

需要获取网络安全/渗透测试学习资料工具的朋友可联系V:machinegunjoe666 免费索取

评论

发布
暂无评论
万花筒写轮眼之防火墙ALG技术之FTP协议穿墙术