Limiter les attaques par force brute sur son service SMTP Postfix avec FAIL2BAN
J'utilise depuis un certain temps FAIL2BAN afin de limiter les attaques de type "Brute Force" sur mon service SSH sous GNU/Linux. Lorsque je travaille sous OpenBSD, j'utilise directement les fonctionnalités de Packet-Filter. Mais récemment en consultant les logs de mon service mail, j'ai pu constaté ceci (/var/log/mail.log) :
postfix/smtpd[15001]: NOQUEUE: reject: RCPT from
Des spammeurs essayent d'utiliser mon service SMTP à des fins malveillantes. J'ai donc décidé de paramétrer FAIL2BAN afin qu'il supervise mes logs de MAIL et bloque ces gentils pollueurs. J'en profite également pour superviser mon service IMAPS.
cat /etc/fail2ban/jail.conf
[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
[sasl]
enabled = true
port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter = sasl
logpath = /var/log/mail.log
[dovecot]
enabled = true
port = imap2,imap3,imaps,pop3,pop3s
filter = dovecot
logpath = /var/log/mail.log
cat /etc/fail2ban/filter.d/postfix.conf
failregex = reject: RCPT from (.*)\[<HOST>\]: 554
reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
cat /etc/fail2ban/filter.d/sasl.conf
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed
cat /etc/fail2ban/filter/dovecot.conf
failregex = .*(?:pop3-login|imap-login):.*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
FAIL2BAN est un outil puissant et très intéressant, capable de superviser un bon nombre de services. Je vous encourage à le mettre en place sur vos serveurs en complément d'outils comme PortSentry.
Et enjoy ;)