在被动模式下使用portrange的FTP / SSL,哪些端口必须在防火墙上打开?

我们必须在服务器上使用FTP over SSL,并使用具有5个端口的端口来进行数据连接。 防火墙在客户端和服务器之间。 我们必须知道我们必须在防火墙上打开什么:端口,协议,在内或在外。 有人知道吗?

Slacksite很好地解释了FTP在主动模式和被动模式下的工作原理,以及关于数据连接行为的明确信息在RFC 4217第7节中 。

基本上,假设您的客户端使用被动模式和显式SSL(例如在控制端口21上连接而不是990为隐式SSL),则需要允许将控制端口21和您的5个数据端口的连接从任何客户端的高端口范围服务器,以及从各个端口向外发送的build立的连接分组到随机的高端口。 主动FTP通常不是一个好主意,因为服务器将尝试主动打开到客户端的连接,如果没有相应地configuration,大多数客户端状态防火墙将不允许。

是的,FTPS在港口使用方面有很大的问题。 它改进了协议上的encryption,FTP,专为没有防火墙和黑帽子的networking而devise。

但是,对于大文件和高延迟(或长距离)连接,SFTP存在严重的性能问题 。 因此,随着带宽的改进,文件传输量的增加,SSH / SFTP的限制变得更加重要,FTPS是唯一的select。

通常情况下, 明确的 “主动”FTPS是端口990,控制端口是989.被动与主动相同,但意味着除了989之外,您还可以使用服务器上打开的1024+范围内的几个端口启动数据连接),具体取决于您如何configuration服务器。

我个人更喜欢使用NULL FTP服务器,在端口22上运行一个隐式的 SFTP,只有单端口的实现。

使用wireshark http://www.wireshark.org/和防火墙外的主机来查看此特定FTP + SSLconfiguration使用的端口。

根据您看到的stream量,创build防火墙规则以允许来自FTP服务器的IP地址的那种stream量。

FTPS的问题在于所有防火墙已经实现的用于处理FTP协议怪异的解决方法已经不再适用。 这是因为防火墙无法检查encryption连接dynamic打开所需的端口。

这就是说:在服务器软件中为被动FTPconfiguration的端口范围需要从客户端打开到服务器。 另外,客户端需要知道它必须使用被动模式。 我在过去的几个星期里进行了第一次FTPS部署,其工作原理与此类似。

(最近FTPS的复兴是什么?FTP是一个古老的协议的70年代噩梦,为了人类的利益,人们应该远离它,encryption或不encryption)。