*简单*通过请求数来阻止DDoS

我有3个Varnish 3.0.2服务器,Apache 2作为后端,通过HAproxy单独的服务器进行负载平衡。

我需要find一个非常简单的程序(我不是很多的系统pipe理员),如果IP在Y秒内完成了超过X个请求,它将阻止来自IP的请求。

这样的事情可以通过一个简单的解决scheme来实现吗? 现在我必须用iptables手动阻止所有请求。

你可以用iptables做这样的事情:

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 --update --seconds 60 --hitcount 80 --rttl --name HTTP -j DROP 

第一个命令将连接(可能是合法的)标记为HTTP,如果满足以下要求,则第二个命令会将其阻止:在上个60秒内超过80次尝试。

但是,使用被阻止的IP地址的每个人都将被拒绝,不仅如果他/她使用NAT-ed IP地址,可能的DDOSer将被拒绝。 而且你需要在一段时间后find一些重新启用访问。

你也可以尝试failtoban。

希望能帮助到你