iptables 让我通过 FTP 连接,但我无法获得目录列表

1 iptables ftp centos5

可能的重复:
允许使用 IPTables 进行 FTP

我有一组非常严格的 iptables 规则,其中包含以下规则,允许我通过 ftp 进行连接

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

客户端可以正常连接,但仅此而已,在事情崩溃之前来自 ftp 客户端的以下输出可能会有所帮助:

Command:    MLSD
Error:  Connection timed out
Error:  Failed to retrieve directory listing
Run Code Online (Sandbox Code Playgroud)

当我停止 IP 表时,一切都按预期工作


CentOS 5.5 版(最终版)

proftpd-1.3.3c-3

小智 6

您需要一个额外的规则来允许“相关”连接。这是由于 FTP 协议将一个端口用于命令而另一个用于数据。

iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

此外,您需要加载一个内核模块来跟踪相关连接。它被称为 ip_conntrack_ftp 但你如何加载它取决于你的发行版。

在 hedrat-ish 系统上,看看 /etc/sysconfig/iptables-config