Mod Evasion电子邮件通知问题

时间:2017-03-31 14:12:24

标签: apache ddos ssmtp mod-evasive

我们正在尝试设置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

1 个答案:

答案 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使脚本可执行。