我正在寻找IPTables唯一的解决scheme来阻止在某个端口上短时间(例如1分钟)内连接或重新连接太多(例如超过5个)的IP地址。 被阻止的地址应至lesslocking30分钟。
您提供的解决scheme会减慢新连接的速度,但是源可以在180秒后回来,甚至可以发现每60秒一次就可以。 如果您希望在要求的时间内至less禁止30分钟(也请查看–rcheck选项而不是–update),则需要将源代码添加到其他最近的源代码列表中,而不是将其删除数据包。 所以它变成:
iptables -N BANNING iptables -A BANNING -m recent --set --name BANNED --rsource iptables -A INPUT -m recent --name BANNED --update --seconds 1800 --reap -j DROP iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j BANNING
感谢Zoredache为我提供了链接。 在寻找Web之后,我在Devon Hillard的科技博客上find了类似的解决scheme。
这两个简单的规则做这个工作。
iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
来源: 使用IPTables防止SSH暴力攻击