使用 ufw 阻止外部访问重定向端口

使用 ufw 阻止外部访问重定向端口

我有一个使用 ftp 的应用程序。我将 21 端口重定向到 2221。但我发现 2221 可以从外部访问,即使 ufw 规则中未指定它。因此,我想阻止 2221 从外部访问,因为我的安全扫描器报告了开放端口。

我试了很多链接,但都无法使用,应该是我漏掉了订单之类的。有人能帮我吗?

我的 before.rules 文件如下所示:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 21 -j REDIRECT --to 2221
:OUTPUT ACCEPT [0:0]
COMMIT
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
-A ufw-before-input -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A ufw-before-input -m state --state INVALID -j DROP
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -i eth0 -s 127.0.0.0/8 -j DROP
-A ufw-before-input -i eth0 -s 224.0.0.0/3 -j DROP
-A ufw-before-input -i eth0 -d 224.0.0.0/3 -j DROP
-A ufw-before-input -i eth0 -d 255.255.255.255 -j DROP
-A ufw-before-input --fragment -p ICMP -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -m limit --limit 2/sec -j ACCEPT
-A ufw-before-input -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A ufw-before-input -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
-A ufw-before-input -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A ufw-before-input -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
-A ufw-before-output -m state --state INVALID -j DROP 
-A ufw-before-output -o lo -j ACCEPT 
-A ufw-before-output -o eth0 -j ACCEPT
COMMIT

PS: 添加

-A PREROUTING -p tcp --dport 2221 -j REDIRECT --to 21

确实会阻塞,但我不希望发生循环。我还尝试使用“-s”和“-i lo”前缀,同时允许 2221,但没有成功。请帮忙。

答案1

如果您只想限制对端口 21 的访问,请删除您添加的 PREROUTING 规则:

-A PREROUTING -p tcp --dport 21 -j REDIRECT --to 2221

并删除允许访问端口 21 的规则:

-A ufw-before-input -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT

并重新加载防火墙规则。

如果您需要向特定 IP 开放端口 21,则可以更改该规则,而不是将其删除。例如:

-A ufw-before-input -s 123.45.67.8 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT

替换123.45.67.8为您需要允许访问的 IP 地址。

相关内容