首页 - 新闻 - FTP 的主动模式和被动模式

FTP 的主动模式和被动模式

2023-10-09 09:26

1.1 PORT(主动模式)

在主动模式下,FTP客户端随机打开一个大于1024的端口N,并发起与服务器端口21的连接,发送FTP用户名和密码。然后打开N+1端口进行监听,并向服务器发出PORT N+1命令,告诉服务器客户端采用主动模式并打开该端口。 FTP服务器收到PORT命令后,会使用其本地的FTP数据端口(通常为20)连接到客户端指定的端口N+1用于数据传输。

1.2 PASV(被动模式)

被动模式下,FTP客户端随机打开大于1024N的端口向服务器的21端口发起连接,并发送用户名和密码登录。 ,同时打开N+1端口。然后向服务器发送PASV命令,通知服务器处于被动模式。服务器收到命令后,会打开一个大于1024的端口P(端口P的范围是可以设置的,这个很重要,以后会发现)稍后讨论)用于监控。 ,然后使用PORT P命令通知客户端其数据端口为P。客户端收到命令后,会通过端口号N+1连接到服务器的P端口,然后在两个端口之间进行数据传输。

1.3 被动模式抓包分析

ftp客户端需要通过SSL双向认证连接到服务器,所以你会看到客户端使用59739端口连接到ftp服务器的2121端口,绿框的内容应该是服务器将服务器随机选择的40006端口号加密并发送给客户端,以便客户端在使用时可以使用40006端口传输文件。

可以发现,客户端向服务器发送文件所使用的端口号正是56740(等于59739+1)。新的端口号用于发送文件,因此不再使用TSL加密协议。因为在登录认证过程中,只要登录成功,就说明客户端和服务器之间是相互信任的。此时允许打开新的端口号来传输文件。

最后出现两行黑色的【Tcp重传】数据包,这是两次重传的信息。这是因为内网安装了ftp服务器,并且没有配置P端口用于服务器传输文件。而且,防火墙上端口59740没有映射到外部。 ftp客户端使用59740端口向ftp服务器传输数据包。 Tcp协议重传3次,否则失败。

1.4 两种模式对比

简单概括一下主动模式和被动模式的区别就是:主动模式传输数据时,“服务器”连接“客户端”的端口(客户端打开数据端口);当以被动模式传输数据时,“客户端”连接到“服务器”的端口(服务器打开数据端口)。

主动模式要求客户端打开FTP 服务器的端口。许多客户端位于防火墙内。很难打开FTP服务器的端口进行访问。

被动模式只需要服务器打开客户端连接的端口。如果服务器在防火墙内,还需要端口映射。

1.5 被动模式的陷阱

在我们的系统中,FTP采用被动模式,服务安装在小型网络中。为了与大型网络通信,需要IP和端口映射。当时我没有手动配置FTP的端口范围用于服务器数据传输。我只在防火墙上做了30000-30010的端口映射。结果客户端(一台设备)上传时只有一次上传成功。这是因为服务器随机打开的一个端口恰好在30000-30010范围内。其他时间上传失败。从抓包来看,只有客户端连接到服务器的数据包。

所以,如果FTP服务安装在小型网络中(防火墙内部),如果使用被动模式,且客户端位于防火墙外部,则来自的数据传输端口必须限制FTP 服务。范围,并且必须映射这些端口。

1.6 如何选择

如果工作中必须使用FTP服务器,在当今的互联网环境下,只需使用FTP被动模式进行连接传输即可。如果你只是想知道答案,就看这里吧。对技术和原理感兴趣的朋友请继续阅读。

1.6.1 主动模式和被动模式的区别

a。以主动模式传输数据时,“服务器”连接到“客户端”的端口;当以被动模式传输数据时,“客户端”连接到“服务器”的端口。

b。主动模式要求客户端打开到服务器的端口。许多客户端位于防火墙内,很难打开FTP服务器访问的端口。被动模式只需要服务器打开端口供客户端连接。

需要注意的是,被动模式和主动模式下的登录过程都需要FTP客户端连接到FTP服务器。

1.6.2 为什么大多数互联网应用都处于被动模式?

因为大多数客户端都在路由器后面,没有独立的公网IP地址。服务器主动连接客户端太困难了。在目前真实的互联网环境下几乎是不可能的。可能的任务。
部署 FTP服务器时,默认采用主动运行模式。如果企业的FTP服务器的用户都在内网,即不需要像外网用户一样提供FTP连接,那么这种默认的操作方式足够了。但如果部分出差或在家办公的员工也需要访问公司内部的FTP服务器,出于安全考虑或者公网IP地址数量的限制,企业通常在防火墙或 NAT 服务器后面部署 FTP 服务器。这时,这种主动操作方式就不起作用了。


总之,在部署FTP服务器时,请考虑采用主动运行模式还是被动运行模式。只需记住一个原则,即如果 如果 FTP 服务器部署在防火墙或 NAT 服务器后面,则处于主动操作模式的客户端只能建立命令连接,但不能建立命令连接。无法执行文件传输。如果部署FTP服务器后,系统管理员发现用户可以连接到FTP服务器,并且可以查看目录下的文件,但无法下载或上传文件。如果排除权限,如果超出限制,那么很可能是操作模式选择错误。系统管理员告诉用户选择合适的操作模式,这就基本上解决了文件传输问题。

参考:FTP主动模式和被动模式工作原理及抓包分析