我目前无法通过主动模式连接到FTP,当iptables运行,但是如果我停止IPTABLES一切工作正常。 被动模式可以工作(因为不需要入站连接)。
基本上,在传输过程中的主动模式下,客户端有时会监听一个随机端口,并让服务器连接到该端口并开始发送数据。 如果您位于防火墙之后,则来自FTP服务器的入站连接将失败,除非防火墙能够侦听stream量并打开传入端口。
由于监听端口是随机在防火墙后面的客户端select的,因此您必须打开每个端口才能正常工作。 显然这不是一个解决scheme。 但是,许多FTP应用程序可以configuration为使用一小组端口进行活动连接。 您需要将您的FTP客户端configuration为使用固定范围的端口,然后添加iptables规则以允许到这些端口的入站连接。
最后,我强烈推荐被动模式的FTP。 唯一的例外是如果你有一个不支持它的真正旧的FTP服务器。
标记
以下网站非常有帮助,应该帮助您构build您所问的规则集。
这由一个辅助模块来处理。 nf_conntrack_ftp助手是否被加载? 你的规则是否允许相关的连接? 如果这两个条件适用,你应该能够使用活动的FTP。 有关适用的概念,请参阅http://www.faqs.org/docs/iptables/complexprotocols.html 。 我相信这些模块自写之后就被重新命名了。
在被动服务器打开无特权的端口> 1024,并处于活动状态的客户端这样做。
如果被动不是一个选项,请记住它减less了风险,但是如果你指定了有限的端口范围来使用这应该有助于解决scheme。