我们正在尝试设置Apache Mod Evasion以防止将来对我们的某个服务器进行DOS攻击。在电子邮件通知之外,一切似乎都运行良好。该堆栈在Ubuntu Server 16.04上运行PHP 7.1和Apache2.4。
电子邮件通过测试命令正常工作:
sudo su - www-data -s /bin/bash -c 'echo "this is the body" | mail -s "Subject" webdev@domain.edu webdev@domain.edu'
这是mod evasion.conf:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 1
DOSSiteCount 1
DOSPageInterval 10
DOSSiteInterval 10
DOSBlockingPeriod 10
DOSEmailNotify root
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
DOSLogDir "/var/log/mod_evasive"
</IfModule>
这是ssmtp.conf文件:
root=webdev@domain.edu
FromLineOverride=YES
Debug=YES
UseSTARTTLS=YES
UseTLS=YES
mailhub=email-smtp.us-east-1.amazonaws.com:465
AuthUser=#######
AuthPass=#######
AuthMethod=LOGIN
这是revaliases文件:
root:noreply@domain.edu:email-smtp.us-east-1.amazonaws.com:25
www-data:noreply@domain.edu:email-smtp.us-east-1.amazonaws.com:25
答案 0 :(得分:0)
mod_evasive具有邮件程序调用的硬编码命令,在source-code内定义为MAILER
,并在例如这bug report。
#define MAILER "/bin/mail %s"
发送邮件时, %s
被指令DOSEmailNotify
的值替换。但是,现在大多数系统/bin/main
都没有使用,您可能希望使用sendmail。你可以做的是创建一个包装脚本/bin/mail
(假设这个二进制文件根本不存在或者没有使用)。
#!/bin/bash
if [ "$1" != "" ]
then
/usr/sbin/sendmail -t "$1"
fi
调整sendmail
二进制文件的路径,最后使用chmod 0755 /bin/mail
使脚本可执行。