pop3의 로그파일 : /var/log/maillog 2
pop3로그 패턴을 보자면
... pop3-login: Disconnected Inactivity [<HOST>]
/etc/fail2ban/filter.d/pop3.conf 파일에 아래내용을 적어 저장.
[Definition]
failregex = .* pop3-login:.*Disconnected.*\[<HOST>\].*
ignoreregex =
/etc/fail2ban/jail.conf 에 추가될 내용은
[pop3]
enabled = true
filter = pop3
action = iptables[name=pop3, port=pop3, protocol=tcp]
sendmail-whois[name=pop3, dest=root, sender=fail2ban@mail.com]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200
그런데 sendmail 까지 쓰다보니 smtp 포트도 찝쩍거리는 놈들이 아주 많다.
로그도 같은 /var/log/maillog 에 쌓이니 같이 몰아서 처리!!!! 그러면 jail.conf 내용이 좀 바뀐다. 바뀐내용은 저~밑에.
먼저 smtp 로 들어오는 잡것들의 패턴은 대충
... lost input channel from [<HOST>] to MTA after data ...
... [<HOST>] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA ...
... [<HOST>] (may be forged) ...
... [<HOST>], reject.*... Relaying denied ...
/etc/fail2ban/filter.d/fail2ban-mail.conf (이름을 변경해봤습니다. 그럴듯?하게)
[Definition]
failregex = .* pop3-login:.*Disconnected.*\[<HOST>\].*
\[(?:::f{4,6}:)?(?P<host>[\w\-.^_]+)\] .*to MTA
\[(?:::f{4,6}:)?(?P<host>[\w\-.^_]+)\] \(may be forged\)
\[(?:::f{4,6}:)?(?P<host>[\w\-.^_]+)\], reject.*\.\.\. Relaying denied
ignoreregex =
/etc/fail2ban/jail.conf 에 추가될 내용은
[sendmail]
enabled = true
filter = fail2ban-mail
action = iptables-multiport[name=mail, port="pop3,pop3s,imap,imaps,smtp", protocol=tcp]
sendmail-whois[name=sendmail, dest=root, sender=fail2ban@mail.com]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200
메일을 받고 싶지 않다면 "sendmail-whois[name=sendmail, dest=root, sender=fail2ban@mail.com]" 이것을 주석처리 혹은 삭제 .
마지막으로 추가한 설정을 적용
# fail2ban-client reload fail2ban-mail
예전에는 iptables 의 recent log 모듈을 이용했었는데 왜 날 들여보내주지 않는거니!!!
좌우당간 fail2ban 으로 바꾸고 나선 그런일이 싹 사라졌다.