在Apache上通过IP地址限制请求?

bgc*_*ode 6 apache throttling web

我想限制对我的Web服务器的请求,以阻止针对我的网站的网页抓取和拒绝服务攻击.我愿意相对宽松,关键是没有人要求这么做以减慢速度.

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

我有些问题 -

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

Zac*_*son 4

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

“什么是好的限度……?” 这完全取决于你的流量。你的期望有多少,你的真实用户来自哪里等等。

怎么做?可以在ModSecurity中编写规则来处理此类事情,这也可以防御其他一些事情。与 mod_evasive 答案一样,这不会完全保护您免受拥有大量可用资源的攻击者的攻击,但会迫使他们加强游戏。

我认为 Apache httpd 中没有“内置”任何东西来促进这一点。人们期望滥用 IP 地址的问题(即网络流量问题)在网络级别得到管理。

编辑:

由于您在其他地方评论说您正在使用 Rackspace 进行托管,因此您可能需要查看他们的负载均衡器 API