我想阻止每分钟有 50 个连接的 IP 地址。我该怎么办?我应该写一个基本的代码吗?提前谢谢。
答案1
看这个Debian 管理关于速率限制连接的文章。或者看看这个http://www.shorewall.net/Actions.html#Limit。
答案2
我还遭受过来自某个 IP 的一些暴力攻击,下面是我如何通过 iptables 阻止该 IP。
(1)编辑 iptables
六、/etc/sysconfig/iptables
(2)在-A列表的顶部添加一行(如果你把它加在下部,有可能不起作用,因为之前的条件已经满足,所以你试图阻止的数据包仍然可以通过……一开始我也遇到了这个问题,最后找到了原因)
-A 输入 -s xxx.xxx.xxx.xxx -j 删除
(3)重启iptables
/etc/init.d/iptables 重启
就是这样。最后我再也看不到服务器日志中的连接消息了。
我还发现有人说要使用“fail2ban”。如果有多个 IP(且正在更改)尝试连接到您的服务器,您可能需要尝试一下。
答案3
我认为我必须从源代码安装 iptables 才能获得更高的命中次数并正常工作。
-A INPUT -p tcp -m tcp -m state --state NEW -m recent --set --name TCPRATE --rsource
-A INPUT -p tcp -m tcp -m state --state NEW -m recent --update --seconds 60 --hitcount 50 --name TCPRATE --rsource -j LOG --log-prefix "TCP Rate Exceeded: "
-A INPUT -p tcp -m tcp -m state --state NEW -m recent --update --seconds 60 --hitcount 50 --name TCPRATE --rsource -j DROP