Mod_evasive 没有日志、没有 IP 阻止、没有错误 - 发生了什么?

Mod_evasive 没有日志、没有 IP 阻止、没有错误 - 发生了什么?

我的 Ubuntu 16.04 机器出现异常。我安装了 LAMP、ufw、fail2ban,现在为了保护 DOS,我安装了 mod_evasive。

Mod_evasive 似乎没有阻止任何东西,也没有记录任何东西,当我以足够快的速度重新加载页面以触发它时,我在 var/log/apache2/error.logs 中看到的唯一日志是:

[evasive20:error] [pid 17849] [client *..***.179:9189] client denied by server configuration:..

除此之外什么也没有。

我完成了所有步骤,创建了日志目录,授予权限,重新安装,尝试了各种各样的方法,但问题似乎根本没有解决!

这是我当前的配置:

<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        1
DOSSiteCount        5
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   15

#DOSEmailNotify      [email protected]
#DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
DOSLogDir           "/var/log/apache2/evasive.log"
</IfModule>

有什么想法吗?编辑:我现在可以看到日志-> IT 基本上记录了每个假定攻击的名为 DOS-203.33.**.* 的文件。但它仍然没有阻止任何东西!据我所知,它必须在 Apache 级别阻止 IP 地址,但它没有……

答案1

我相信你错过了防火墙部分。如果你使用 iptables,你应该设置以下内容DOS系统命令

"sudo /root/scripts/ban_ip.sh %s": 

确保将您的 apache 用户添加到 sudoers 并允许访问脚本和“iptables”和“at”命令。

脚本内容

#!/bin/sh

IP=$1
IPTABLES=/sbin/iptables

$IPTABLES -A banned -s $IP -p TCP --dport 80 -j DROP

echo "$IPTABLES -D banned -s $IP -p TCP --dport 80 -j DROP" | at now + 2 hours

sudoers

www-data ALL=(ALL) NOPASSWD: /sbin/iptables *, /usr/bin/at *, /root/scripts/ban_ip.sh

干杯!

相关内容