0

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

这是重命名文件:

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
4

1 回答 1

1

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

#define MAILER  "/bin/mail %s"

%sDOSEmailNotify发送邮件时被指令的值代替。但是,现在在大多数系统上/bin/main都没有使用,您可能想要使用 sendmail 来代替。您可以做的是创建一个包装脚本/bin/mail(假设此二进制文件根本不存在或未使用)。

#!/bin/bash
if [ "$1" != "" ]
then
        /usr/sbin/sendmail -t "$1"
fi

调整sendmail二进制文件的路径,最后使用chmod 0755 /bin/mail.

于 2017-05-01T19:31:00.400 回答