使用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号端口一样吗?

您可以使用与限速FTP相同的方法,对来自主机的新FTP连接进行速率限制。 我会创build另一个链(类似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连接有点严格,但在我看来。 我会打开一点点或合法的用户可能会发现,如果他们断开连接,他们将无法重新连接。 调整以适应您的需求。