允许通过 iptables 进行 ftp 输出

允许通过 iptables 进行 ftp 输出

我一直很难通过 iptables 允许 ftp。现在我的 ftp 看起来像这样。

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp ctstate NEW,RELATED,ESTABLISHED multiport dports http,https,ftp,ftp-data
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination          

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我没有发现它有什么问题,但是当我尝试连接它时它不起作用。 (我的 ftp 服务器已启动,所以这不是问题。)

答案1

我并不完全清楚这些iptables规则是在您的客户端还是您的服务器上。你的声明“它不起作用当我尝试连接到它时”完全没有帮助。请更新您的问题以澄清这些问题。

如果这些规则在您的服务器上您无法从其他地方连接到它,因为您尚未定义任何允许这样做的规则。

如果这是您的客户端那么它失败的原因是因为您尚未允许入站相关数据连接。记住它是服务器上的 tcp/21客户端上的任意高端口。您的iptablesINPUT 规则需要相关的入站会话TCP/21。

这些规则来自 devops-blog.net应该适用于即将离开的客户:

-A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT

-A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

相关内容