2017-03-31 9 views
0

Google 서버 중 하나에서 향후 DOS 공격을 막기 위해 Apache Mod Evasion을 설정하려고합니다. 모든 것이 이메일 알림 외부에서 잘 작동하는 것 같습니다. 스택은 Ubuntu Server 16.04에서 PHP 7.1 및 Apache2.4를 실행 중입니다. 여기회피 이메일 알림 문제

[email protected] 
FromLineOverride=YES 

Debug=YES 
UseSTARTTLS=YES 
UseTLS=YES 
mailhub=email-smtp.us-east-1.amazonaws.com:465 
AuthUser=####### 
AuthPass=####### 
AuthMethod=LOGIN 

: 여기

<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 파일입니다 : 여기
sudo su - www-data -s /bin/bash -c 'echo "this is the body" | mail -s "Subject" [email protected] [email protected]' 

이 모드 evasion.conf입니다 :

이메일 테스트 명령을 통해 잘 작동 revaliases 파일입니다.

root:[email protected]:email-smtp.us-east-1.amazonaws.com:25 
www-data:[email protected]:email-smtp.us-east-1.amazonaws.com:25 

답변

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를 사용하여 스크립트를 실행합니다.