如何在 iptables 中允许 FTP 流量,而不向 tcp 连接开放所有高于 1024 的端口?

如何在 iptables 中允许 FTP 流量,而不向 tcp 连接开放所有高于 1024 的端口?

我发现使用 iptables 允许 FTP 流量的最佳答案是这里

接下来我使用了以下 iptables 规则:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 --syn -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 1024: --syn -m conntrack --ctstate NEW -j ACCEPT

但是它向 TCP 连接开放了所有大于或等于 1024 的端口,这对于防火墙规则来说并不是很好。

所有这些端口都开放以允许 FTP 被动入站流量。

所以我想知道如何安装vsftpd服务器并保持更严格的防火墙规则。

答案1

您可以/应该有一个RELATED,ESTABLISHED不限于特定端口(范围)的规则:

iptables -A INPUT -p tcp --dport 20:21 --syn -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

答案2

我可以vsftpd通过在文件中添加以下几行来限制被动入站流量的端口范围使用vsftpd.conf

pasv_min_port=22200
pasv_max_port=22210

限制被动入站流量端口范围后,我使用了以下 iptable 规则:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 --syn -m conntrack --ctstate NEW, -j ACCEPT
iptables -A INPUT -p tcp --dport 22200:22210 --syn -m conntrack --ctstate NEW -j ACCEPT

相关内容