2017년 6월 27일 화요일

이메일 DDOS 공격 차단


- iptables를 이용한 방법[ https://sys4.de/ ]
1. 이메일 서버에 인증 없이 메일 발송이 되지 않도록 해 놓았는데 계속 시도하면서 서버에
   부하을 일으키는 스패머가 있어 차단 방법(공통 키워드 EHLO ylmf-pc)



설정 후 적용 리스트
# iptables -A INPUT -p tcp -dport 25 -m string --string 'ylmf-pc' --algo bm -j DROP










적용되면 메일 로그에서 지속적으로 발송 시도하던 로그는 말끔히 사라진다.

※추가로 해당 로그만 별도 보기를 원할 경우 아래와 같이 추가하면 된다.
   EHLO ylmf-pc 문자열이 확인 되면 SMTP 오류를 발생하고 180초간 3번의 오류 발생시 로그 생성
# iptables -I INPUT -p tcp --dport 25 -m string --to 90 \
    --string "EHLO ylmf-pc" --algo bm -m recent \
    --name SMTP_ERROR --set
# iptables -I INPUT -m recent --name SMTP_ERROR \
    --rcheck --seconds 180 --hitcount 3 -j DROP
# iptables -I INPUT -p tcp --dport 25 -m string --to 90\
    --string "EHLO ylmf-pc" --algo bm -j LOG \
    --log-level info --log-prefix "SMTP_ERROR "
# iptables -I INPUT -p tcp --dport 25 -m string --algo bm --string 'ylmf-pc' -j DROP

커널 로그(kern.log)에 아래와 같이 표시됨.
SMTP_ERROR IN=eth0 OUT= MAC=..:..:..:..:..:..:..:..:..:..:..:..:..:.. SRC=x.x.x.x DST=x.x.x.x LEN=54 TOS=0x00 PREC=0x00 TTL=111 ID=3363 DF PROTO=TCP SPT=3677 DPT=25 WINDOW=65501 RES=0x00 ACK PSH URGP=0


2. 포트 포워딩 설정
# iptables -A PREROUTING -p tcp -m tcp --dport {서버접속포트} -j DNAT\
           --to-destination {서비스서버IP:서비스포트}

3. iptables 설정값 저장 및 restore
# iptables-save > /etc/iptables.rule
# iptables-restore < /etc/iptables.rule

4. 설정된 리스트 조회
# iptables -L
# iptables -t nat  <-- 포트포워드 규칙이 있을 경우

- fail2ban을 이용하는 방법[ https://serverfault.com/ ]
# vi /etc/fail2ban/jail.conf
[postfix-ddos]

enabled  = true
port     = smtp,ssmtp
filter   = postfix-helo
logpath  = /var/log/mail.log
maxretry = 5

# vi /etc/fail2ban/filter.d/postfix-helo.conf

[INCLUDES]
before = common.conf

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 504 5.5.2

ignoreregex =

댓글 없음:

댓글 쓰기