ftp tls防火墙:(

当我的防火墙启用时,我的FTP(s)不起作用。 过去我一直在为我设置iptables,我昨天大致了解到如何设置一个iptables,但是我错过了这个要求。 这是我的iptables.rules

  #由iptables-save v1.4.4于2010年11月16日23:23:50生成
 *过滤
 :FORWARD ACCEPT [0:0]
 :input接受[0:0]
 :OUTPUT ACCEPT [0:0]

 -Ainput-i lo -j接受
 -A INPUT -m状态-i eth0  - 状态RELATED,ESTABLISHED -j接受
 -A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
 -A INPUT -p tcp -m tcp --dport 989:990 -j ACCEPT
 -A INPUT -p tcp -m tcp -i eth0 --dport 22 -j ACCEPT
 -A INPUT -p tcp -m tcp -i eth0 --dport 80 -j ACCEPT
 -Ainput-p tcp -m tcp -i eth0 --dport 443 -j ACCEPT
 -A INPUT -p tcp -m tcp -i eth0 --dport 10000 -j ACCEPT
 -Ainput-p icmp -i eth0 -j ACCEPT
 -A INPUT -j REJECT --reject-with icmp-port-unreachable


承诺
 #2010年11月16日23:23:50完成
 #由iptables-save v1.4.4于2010年11月16日23:23:50生成
 *撕裂
 :预备接受[95811:65665815]
 :input接受[92355:65212126]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [55795:22371752]
 :承认接受[55795:22371752]
承诺
 #2010年11月16日23:23:50完成
 #由iptables-save v1.4.4于2010年11月16日23:23:50生成
 * NAT
 :预备接受[5132:543438]
 :承认接受[953:67517]
 :OUTPUT ACCEPT [953:67517]
承诺
 #2010年11月16日23:23:50完成 

所以只是总结,我的FTP将连接,但不显示防火墙启用任何文件。 禁用防火墙,一切都是完美的。

编辑:唯一的另一方面,我得到这个防火墙工作是禁用ipv6,禁用TLS和添加一个规则到防火墙,允许从我的家庭networking连接(服务器在别处)

在被动模式下,当客户端要从服务器获取文件或向服务器发送文件时,FTP服务器将select一个随机端口并将该端口发送到FTP客户端。

如果不使用encryption,则正确configuration的防火墙(使用ip_conntrack_ftp帮助器内核模块,可能是缺less非TLS连接的内容)会“监听”连接,并将这些连接标记为RELATED 。 通过encryption,防火墙无法侦听。

对此的快速和肮脏的解决scheme是configurationFTP服务器为被动连接select一个小范围的端口,然后允许访问所有这些端口。 例如,在vsftpd

 pasv_min_port=12000 pasv_max_port=12049 

然后在iptables中:

 iptables -A INPUT -p tcp -m tcp -i eth0 --dport 12000:12049 -j ACCEPT 

允许任何人访问这些端口会导致一个可能的漏洞:如果有人反复扫描,他们可能会很幸运,并能够将真正的用户“击败”到数据端口并获取文件。 理想情况下,您的FTP服务器将检查并确保连接来自原始连接的相同位置,但要感谢诸如“FXP”(通过说服一个服务器与另一个服务器build立主动连接被动数据端口)一些服务器默认情况下不检查连接。 您应该检查您的configuration文件,看看是否有一个选项来禁用FXP,并使用它。 (vsftpd调用这个“混杂”,默认情况下是禁用的。)

如果FTP连接启动,但没有文件可以看到/传输,则尝试使用被动模式(只需在命令行ftp客户端键入PASV)。 如果没有被动模式,服务器将尝试在匿名端口上build立一个连接回你的机器。 至less,这是普通的FTP发生的事情 – 不知道如何完成FTPS:S

HTH,

JJK

我没有FTPS的直接经验,但可能是因为控制通道被encryption,netfilter的连接跟踪代码无法学习到适当的端口打开,以允许客户端的传入数据连接(被动模式)。 这也许可以解释为什么当防火墙被禁用时,“一切都是完美的”。 如果可能的话,尝试使用主动模式。 不幸的是,我怀疑如果客户端也在防火墙后面,那么主动模式也可能会被阻塞,原因很多。