mod_evasive20是我的httpd服务器上加载的模块之一。 我读了关于如何阻止DOS攻击的好消息,并想在我的本地主机上尝试一下。 searchmod_evasive的作者发现了一篇博文,简要描述了它的function。
除此之外,我似乎无法findapache模块网站上的参考或文档。 我想知道这是否是Apache认可的模块,因为它的网站上没有提到它。
我有一个位于/etc/http/conf.d文件夹中的mod_evasive.conf文件,其中包含以下几行:
LoadModule evasive20_module modules/mod_evasive20.so <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 </IfModule>
我从设置的理解是,如果我点击刷新或在一秒钟内发送一个表单两次以上,apache将发出一个403 error并禁止我从站点10秒。 但是这不是我的本地主机上发生的。 我想知道原因。 谢谢。
Apache模块站点只列出了Apache官方源代码提供的模块。 第三方模块(如mod_evasive)不在那里列出。 每个第三方模块的文档通常由其作者完成,有时文档太短,甚至缺乏。
在mod_evasive的情况下,可能文档过于简单,因为模块非常简单,README文件解释了最重要的细节,选项具有“有用的”名称,通常默认对大多数人都有好处。
至于你试图从本地主机触发mod_evasive时没有被阻塞的原因,可能是浏览器caching,过滤代理或其他东西。 您可以尝试从控制台使用wget(或curl,或类似):
while true ; do { wget --output-document=x.txt --no-proxy --no-cache http://localhost ; } ; done
(停止,只是在控制台中的Ctrl-C)
通常输出将是类似的(获得200或404响应):
--2012-07-11 07:29:00-- http://localhost/ Resolving localhost... 127.0.0.1 Connecting to localhost|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html]
然后,当mod_evasive触发器,你会得到403响应,如:
--2012-07-11 07:29:00-- http://localhost/ Resolving localhost... 127.0.0.1 Connecting to localhost|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 403 Forbidden 2012-07-11 07:29:00 ERROR 403: Forbidden.