如何阻止HTTP洪水使用IP表和perm阻止攻击性IP?

我想找出如何完全阻止HTTP洪水。 我在这里使用这个代码:

iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --set --name HTTP iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --rcheck --seconds 30 --hitcount 50 --name HTTP -j DROP iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW -m recent --set --name HTTPS iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW -m recent --rcheck --seconds 30 --hitcount 50 --name HTTPS -j DROP 

但是…我想在30秒内发送50次命中的IP防火墙。 我不希望它在30秒后解锁IP。 如果我用这个脚本按住我的站点上的刷新button,我只会被阻塞30秒。 我希望它能够阻止任何攻击性的IP地址。

有没有人有解决这个问题?

你正在寻找一些像fail2ban这样的软件。 但是,您当前的设置存在问题:任何能够欺骗IPstream量(大部分互联网都可以)的人都可以获得任何阻止您的服务器(包括您的服务器)的IP地址。

最好看看为什么有人不断刷新你的网站是造成问题。 也许你需要调整你的数据库查询? 也许你需要一些caching?

现在正确地修正这个问题(通过优化你的网站)是更好的,所以如果你的网站突然变得stream行起来,你会做好更好的准备。