Apache2 mod_evasive DOSSystemCommand未执行该命令



我正在设置一个apache2 Web服务器,并添加一些安全措施来阻止恶意攻击。我本来打算使用mod_evasive,并有另一个文件来运行禁止和取消禁止用户的命令。我的配置如图所示。

<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        10
DOSSiteCount        20
DOSPageInterval     1
DOSSiteInterval     3
DOSBlockingPeriod   60
#DOSSystemCommand   "/opt/mod_evasive/ban.sh %s"
DOSSystemCommand    "/bin/echo testing >> /var/log/mod_evasive/test.txt"
DOSLogDir           "/var/log/mod_evasive"
</IfModule>

我可以运行我的ban.sh文件作为www数据非常好。我在那里测试第二个DOSSystemCommand。它不会回显到/tmp或日志文件夹。有什么地方我做得不对吗?

我的DOSSystemCommand也有问题。以下是对我有效的解决方案:

sudo mkdir /var/log/mod-evasive/
sudo chown -R www-data:root /var/log/mod_evasive

目录和文件的所有者必须是www数据。

DOSSystemCommand    "IP=%s; echo $(date +'%%Y-%%m-%%d %%T')' : '${IP} >> /var/log/mod_evasive/mod_evasive.log;"

如果您还想结束电子邮件通知,请添加以下

DOSSystemCommand    "IP=%s; echo $(date +'%%Y-%%m-%%d %%T')' : '${IP} >> /var/log/mod_evasive/mod_evasive.log; echo 'Blacklisted IP '${IP}' by mod_evasivenhttp://www.ip-adress.com/whois/'${IP} | mail -s 'Blacklisted IP '${IP}' by mod_evasive' user@domain.com;

相关内容

  • 没有找到相关文章

最新更新