模组规避电子邮件通知问题



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

mod_evasive有一个邮件程序调用的硬编码命令,定义为源代码中的MAILER,并且在例如此错误报告中也提到过。

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

相关内容

  • 没有找到相关文章