龙空技术网

一文讲透防火墙对FTP传输的影响

IT管理局 321

前言:

此时兄弟们对“防火墙做端口映射好处是什么”可能比较珍视,你们都需要分析一些“防火墙做端口映射好处是什么”的相关资讯。那么小编同时在网络上搜集了一些对于“防火墙做端口映射好处是什么””的相关知识,希望咱们能喜欢,朋友们一起来学习一下吧!

阅读本文大约需要10分钟,您可以先关注我们或者收藏本文,避免下次无法找到。

在IT和互联网企业中,FTP服务器是技术研发和业务生产的必备基本工具,使用FTP进行文件上传和下载的场景十分常见。

FTP服务器部署的环境中,通常都会使用防火墙来保障网络的安全。当FTP服务器遇上防火墙,经常会出现FTP数据通道连接失败等问题,让人着实头疼。

本文将详细介绍FTP传输模式和防火墙对FTP传输影响,通过这些内容的学习,大家以后遇到此类问题会游刃而解,如丝般润滑。

01 FTP 传输模式

FTP是主流的文件传输协议,能够实现文件的上传和下载功能。

FTP有两个信道:第一信道(控制信道)和第二信道(数据信道)。第一信道主要是信令的交互,用于协商FTP数据信道的传输模式和传输端口。第二信道用于传输文件。

FTP有两种传输模式:主动模式(Active Mode)和被动模式(Passive Mode)。两种模式都是从FTP服务器侧进行考虑的,如果第二信道由FTP服务器主动发起建立,则称之为主动模式。反之称之为被动模式。

02 FTP主动模式

FTP主动模式的第一信道和第二信道建立过程如下图所示。

(1)FTP客户端使用非知名TCP端口N(N > 1023)作为源端口向FTP服务器的TCP 21端口发起TCP请求。

(2)经过TCP三次握手,FTP客户端和FTP服务器建立了第一信道的TCP会话。

(3)然后FTP客户端向FTP服务器发送数据,用于第二信道的信息协商。内容格式为:PORT a,b,c,d,e,f。

这里假设FTP客户端的IP地址为192.168.1.100,第一信道的FTP客户端端口N=30734(即120*256+14)。则协商的具体内容为:PORT 192,168,1,100,120,15。

(4)至此第一信道通信完成,同时FTP服务器收到了FTP客户端发送过来的第二通道协商信息。

(5)FTP服务器使用源端口为TCP 20端口向FTP客户端的N+1(满足N+1=e*256+f)端口发起TCP请求。

(6)经过TCP三次握手,FTP 客户端和FTP服务器建立数据通道的TCP会话。

(7)双方使用第二信道,进行正常的数据传输。

03 FTP被动模式

FTP被动模式的第一信道和第二信道建立过程如下图所示。

(1)FTP客户端使用非知名TCP端口N(N > 1023)作为源端口向FTP服务器的TCP 21端口发起TCP请求。

(2)经过TCP三次握手,FTP客户端和FTP服务器建立了第一信道的TCP会话。

(3)FTP客户端向FTP服务器发送数据(内容为:PASV),用于向FTP服务器协商使用FTP被动模式。

(3)然后FTP服务器开始向FTP客户端发送数据,用于第二信道的信息协商。内容格式为:PORT a,b,c,d,e,f。

这里假设FTP服务器的IP地址为192.168.1.200,第二信道FTP服务器准备使用的端口P=38410(即150*256+10)。则协商的具体内容为:PORT 192,168,1,200,150,10。

(4)至此第一信道通信完成,同时FTP客户端收到了FTP服务器发送过来的第二通道协商信息。

(5)FTP客户端使用源端口为N+1的端口向FTP服务器的P(满足P=e*256+f)端口发起TCP请求。

(6)经过TCP三次握手,FTP 客户端和FTP服务器建立数据通道的TCP会话。

(7)双方使用第二信道,进行正常的数据传输。

04 防火墙位于一侧

如果说FTP客户端和FTP服务器之间没有防火墙的存在,那岁月静好,双方开始愉快的收发数据。但是世事不总尽如人意,防火墙部署在了FTP服务器一侧。FTP的第二信道建立时出现了问题。

故障描述:防火墙部署在FTP服务器所在的机房中,而且防火墙使用的PAT端口映射。在FTP被动模式下,第二信道无法正常建立。

故障分析:我们在前文讲被动模式是介绍过,第一信道TCP会话建立完成后,FTP服务器会向FTP客户端发送协商信息,内容为用于建立第二信道的IP和端口,我们这里记为(IP1,PORT1)。由于防火墙使用了PAT端口映射,协商信息经过防火墙后,用于建立第二信道的IP和端口被映射成了(IP2,PORT2)。当客户端使用向(IP2,PORT2)发送第二通道的TCP请求时,防火墙检查会话和放行策略,发现无匹配项,于是进行了拒绝。导致第二信道无法建立。

解决方法:打开防火墙的ALG(应用层网关)功能,让防火墙在第一信道的数据协商时,能够识别此会话是用于FTP被动模式的会话,记录用于第二信道建立的IP和端口(IP2,PORT2),进行入向策略的动态放行。

有同学此时有疑惑了,防火墙都支持ALG功能吗?这里给大家一个确定回答,如果你的防火墙不支持ALG,那还是换掉吧,已经太老啦。现在的防火墙都是基于动态监控包过滤的,完全支持ALG或类似的功能。

下图为开启ALG功能防火墙对FTP通道建立的影响示意图。

05 防火墙位于两侧

我们知道,防火墙不仅能够部署在FTP服务器一侧。还有很多场景中,为了保证数据传输安全,FTP客户端一侧也需要部署防火墙。

故障描述:防火墙部署在两侧。客户端一侧的防火墙位于做了PAT,同时为了保证地址够用防火墙上使用了映射地址池,池中有多个IP地址。

两侧的防火墙都开了ALG功能,但是在FTP被动模式下,第二信道的建立有时成功有时失败。

故障分析:FTP服务器一侧的防火墙开启了ALG功能,够识别此会话是用于FTP被动模式的会话,记录用于第二信道建立的IP和端口,并进行入向策略的动态放行,入向策略中放行的源地址是FTP客户端建立第一信道时的地址。

但是由于FTP客户端一侧的防火墙使用了映射地址池,不同会话使用的地址池中的地址是随机的,所以FTP客户端在发起第二信道TCP请求时,源IP地址发生了变化。与FTP服务器一侧的防火墙动态放行策略中的源地址不同。导致第二信道无法建立。

解决方法:调整FTP客户端一侧防火墙映射策略,固定同一客户端每次映射出来的地址。

06 结语

以上内容详细讲述了防火墙对FTP传输的影响,主要讲的是FTP被动模式。有同学肯定会问,FTP主动模式时,防火墙对FTP传输有哪些影响呢?

FTP主动模式时,也会遇到一侧有防火墙,或者两侧都有防火墙的情况,但分析方法和上面类似,请同学们自己分析一下吧。

如果需要得到明确答案的同学,请关注并联系本号哦。

--喜欢请记得点击@IT管理局关注哦--

本局精彩文章:

Wireshark数据包分析三板斧 一文秒懂 TCP/IP实际五层结构(下篇) 在国企做IT是一种什么样的体验 玩转网络自动化之Netmiko模块

标签: #防火墙做端口映射好处是什么 #防火墙对要保护的服务器做端口映射好处是