我已经使用此处的说明在 ubuntu 12.04 LTS 上安装了 mod_evasive
我的 mod_evasive.conf 看起来像:
<ifmodule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir /var/log/mod_evasive
DOSEmailNotify root@localhost
DOSSystemCommand "sudo /root/scripts/ban_ip.sh %s"
</ifmodule>
DOSEmailNotify 或 DOSSystemCommand 似乎都不起作用。
如果我运行 test.pl,mod evasive 附带的测试脚本将获得成功的连接,然后是 403 禁止,因此该模块正在拾取多个连接并禁止进一步的连接。
但是,不会发送电子邮件,也不会执行 DOSSystemCommand。我尝试将 DOSSystemCommand 更改为简单的东西,例如将日期发送到文件,但这似乎也不起作用。
奇怪的是,99% 的时间没有任何效果,1% 的时间我会收到一封电子邮件,并且 DOSSystemCommand 会运行。但它们似乎不是任何一种模式。
我知道他们是类似https://bugs.launchpad.net/ubuntu/+source/libapache-mod-evasive/+bug/605679的错误报告,这表明我尝试了一个没有效果的 simlink .
有没有人在 UBUNTU 12.04 LTS 上有 Mod_Evasive 的工作特性?
编辑:我发现了问题。符号链接确实修复了这个错误。
Mod_evasive 会在 /var/log/mod_evasive 中保留一个禁止的 ips 列表,如果我完全清除它并运行测试脚本,机器被禁止并发送一封电子邮件。一旦 IP 被禁止,即使 mod_evasive DOS 攻击间隔到期并且 IP 重新攻击服务器,您也不会收到任何进一步的电子邮件。