我的 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
干杯!