2010-03-10 43 views
1

问题在于内容网站遭到严重破坏,导致服务器崩溃。从Apache获取访问限制以防止刮取?

是否有一种简单的方法将IP的访问限制为一次或每天一定数量的请求? (10页/天或....每2分钟10页)

理想情况下,我会保留搜索引擎的通配符列表,并且不允许其他人访问内容太快或太多。

谢谢你们!

+0

谢谢你们:D 有请求的讨论。每个jpg/css/js/html都会发出新的请求。 这意味着我将不得不平均每步有多少请求作为step1。第二步是在给定的时间范围内平均一个普通用户对网站的使用。 考虑到这个数字(它看起来像每小时800个请求),我会通过iptables/mod_security或其他方法应用限制吗? – user290367 2010-03-12 11:27:44

回答

4

解决这个问题的方法之一是使用IPTABLES(仅限Linux)来防止单个IP的启动超过指定数量的连接。它的试验和错误,因为你需要计算是正确的,但在一个整体,应该防止攻击者的连接速率

iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j STOP-ABUSE 
iptables -A STOP-ABUSE -m recent --set 
iptables -A STOP-ABUSE -m recent --update --seconds 10 --hitcount 3 -j DROP 

希望它可以帮助

1

我宁愿这样做在系统级,使用iptables ...


但是,如果你正在寻找一个基于Apache的解决方案,一个想法可能是使用mod_security

SecGuardianLog配置指令看起来特别有趣,你的情况(引用)

说明:配置指令 使用的httpd守护者脚本 监视器拒绝服务(DoS)攻击 攻击。

默认的httpd守护者将捍卫 针对发送在一分钟内超过 120请求,或在五分钟内超过 360请求的客户端。