使用 Iptable 阻止 IP 地址

使用 Iptable 阻止 IP 地址

我想阻止每分钟有 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

相关内容