使用 iptables 保护 FTP 免受暴力破解

使用 iptables 保护 FTP 免受暴力破解

我使用此代码来保护我的 ssh。

*filter
-N SSH_CHECK
-A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
-A SSH_CHECK -s xxx.xxx.xxx.xxx/32 -j ACCEPT
-A SSH_CHECK -m recent --set --name SSH
-A SSH_CHECK -m recent --update --seconds 900 --hitcount 2 --name SSH -j DROP
-A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
-A INPUT -p tcp --dport 25 -j DROP
-A INPUT -p udp --dport 25 -j DROP
COMMIT

我如何将端口 21 添加到此列表中?

如果我使用

-A INPUT -p tcp --dport 21 -m state --state NEW -j SSH_CHECK

这和使用端口 22 一样吗?

答案1

您可以使用与限制 FTP 速率相同的方法来限制来自主机的新 FTP 连接速率。我会创建另一个链(类似于FTP_CHECK而不是SSH_CHECK),并且您需要使用另一个列表(例如FTP而不是SSH)将传入的 FTP 主机地址与 SSH 地址分开。类似于:

-A INPUT -p tcp --dport 21 -m state --state NEW -j FTP_CHECK
-A FTP_CHECK -s xxx.xxx.xxx.xxx/32 -j ACCEPT
-A FTP_CHECK -m recent --set --name FTP
-A FTP_CHECK -m recent --update --seconds 900 --hitcount 2 --name FTP -j DROP

不过,我认为 900 秒内建立两个 FTP 连接有点太严格了。我会把这个时间放宽一点,否则合法用户可能会发现,如果他们断开连接,他们将无法重新连接。请根据您的需要进行调整。

相关内容