我需要客户端使用哪些 iptables 规则来允许主动 ftp。
当 iptables 运行时,我目前无法通过主动模式连接到 ftp,但是如果我停止 IPTABLES,一切就都正常了。被动模式也可以工作(因为不需要入站连接)。
答案1
基本上,在主动模式下,传输期间客户端有时会监听随机端口,并让服务器连接到该端口并开始发送数据。如果您位于防火墙后面,则来自 FTP 服务器的入站连接会失败,除非防火墙能够监听流量并打开传入端口。
由于防火墙后面的客户端会随机选择监听端口,因此您必须打开每个端口才能实现此功能。显然这不是解决方案。但是,许多 FTP 应用程序可以配置为使用一小组端口进行活动连接。您需要将 FTP 客户端配置为使用固定范围的端口,然后添加 iptables 规则以允许到这些端口的入站连接。
最后,我强烈推荐被动模式 FTP。唯一的例外是如果你有一个不支持被动模式的 FTP 服务器。
标记
答案2
这下列的网站非常有用,应该可以帮助您构建您所询问的规则集。
答案3
这是由辅助模块处理的。nf_conntrack_ftp 辅助程序是否已加载?您的规则是否允许相关连接?如果这两个条件都适用,您应该能够使用主动 FTP。请参阅http://www.faqs.org/docs/iptables/complexprotocols.html适用于的概念。我相信模块自编写以来已被重命名。
答案4
在被动模式下,服务器打开非特权端口 > 1024,而在主动模式下,客户端执行此操作。
如果被动不是一个选项,请记住它会减少暴露,但是如果您为要使用的范围指定有限数量的端口,这应该有助于解决问题。