2011-09-19 46 views
6

我想遏制对我的网站服务器的请求,以阻止网站抓取和拒绝服务攻击我的网站。我愿意相对松懈,关键是没有人要求太多以至于放慢速度。通过Apache上的IP地址限制请求?

我在考虑通过IP地址设置限制,以便在短时间内发出太多请求时,来自给定IP的请求将会变慢。

有些问题我have--

  • 这是去了解与网络刮削器和DoS攻击在处理Web服务器级别的正确方法?
  • 什么是一个好的限制,以便我不会给可能在共享IP网络上工作的普通用户造成不便?
  • 具体应该如何设置节流?我正在使用Apache/2.2
+0

你已经想过使用mod_cache了吗?如果你的内容不是太动态,mod_cache可能会为很多请求提供很多帮助。从DOS开始,在web服务器级别mod_throttle可能会有所帮助。但要小心,如果你的页面有很多对象(一个HTML,但有80个图像和一些JS + CSS),你可能会保守。至于mod_cache,我可以帮你解决,但我对mod_throttle不太有信心;主要是因为文档很少。 –

+0

我的网站通过API实时从数据中提取数据,我担心不仅会被复制,而且会被蜘蛛攻击我的网站。所以是啊,我的网站非常活跃。 – babonk

+0

@babonk谁是您的房东? – TMB

回答

3

“这是在Web服务器级别的正确方法吗?”这可能是您拥有的最佳选择。在网站的不同部分设置不同的阈值可能会很好:您可能比其他人更愿意遏制某些类型的流量。但理想情况下,这些设置将在网络级进行管理。

“什么是一个很好的限制...?”它完全取决于你的流量。你期望的多少,你的真实用户来自哪里,等等。

如何做到这一点?有可能在ModSecurity中编写规则来处理这类事情,这也可以防御一些其他的东西。与mod_evasive答案一样,这不会完全保护你免受攻击者的大量资源支配,但它会迫使他们加强游戏。

我不认为有任何“内置于”Apache httpd,这将促进这一点。期望的是,在网络级别管理滥用IP地址(即网络流量问题)的问题。

编辑:

既然你对此有何评论您正在使用Rackspace公司托管的其他地方,你可能想看看their load balancer API

+0

真的,在这种情况下,Apache没有*内置的东西? – babonk

+0

为什么会这么令人惊讶? httpd的构建是为了在大多数常见场景中快速提供HTTP服务,并成为开发更高级功能的平台,例如按客户端节流。正如我所说的,这是通常在不同的层(盒子上的IP堆栈或网关)完成的。你说你在Rackspace上...我会编辑我的答案以提供相关链接。 –

+0

谢谢你对我的教育(特别是rackspace链接)。答复/赏金颁发! – babonk

0

为了避免dos攻击/网页抓取,您可以探索mod_evasive,它提供了各种配置来阻止请求。 http://www.zdziarski.com/blog/?page_id=442

它对于基本的保护可能很有用,但是它不足以对付确定和有经验的攻击者,他们可以从内部网络进行攻击或使用一系列服务器代理来隐藏他的IP。

+0

这需要特殊安装,并且我在共享主机上。我可以在Apache中使用哪些东西? – babonk