Fail2ban это сканер почтовых логов, который выявляет IP адреса у которых большое количество ошибочных вводов паролей и бант их. Для этого он использует firewall. Установка для RH подобных систем:
yum install fail2ban
chkconfig —level 345 fail2ban on
для Debian:
apt-get install fail2ban
update-rc.d fail2ban defaults
Я буду настраивать Fail2Ban для защиты 4 сервисов: ssh, smtp, pop3/imap и webmail. Для ssh фильтры встроены, а вот для всего остального их необходимо написать. Я использую Roundcube как webmail и фильтр для него следующий, создаем файл /etc/fail2ban/filter.d/roundcube.iredmail.conf :
failregex = roundcube: (.*) Error: Login failed for (.*) from <HOST>\.
ignoreregex =
Для dovecot создаем файл /etc/fail2ban/filter.d/dovecot.iredmail.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*),.*
ignoreregex =
И для Postfix-a создаем файл /etc/fail2ban/filter.d/postfix.iredmail.conf :
failregex = \[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed
reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
ignoreregex =
После этого, в файлк jail.local указываем расположение логов:
enabled = true
filter = roundcube.iredmail
action = iptables-multiport[name=roundcube, port=»ssh,http,https,smtp,smtps,pop3,pop3s,imap,imaps,sieve», protocol=tcp]
logpath = /var/log/maillog
findtime = 3600
maxretry = 5
bantime = 3600
[dovecot-iredmail]
enabled = true
filter = dovecot.iredmail
action = iptables-multiport[name=dovecot, port=»ssh,http,https,smtp,smtps,pop3,pop3s,imap,imaps,sieve», protocol=tcp]
logpath = /var/log/dovecot.log
maxretry = 5
findtime = 300
bantime = 3600
ignoreip == 127.0.0.1
[postfix-iredmail]
enabled = true
filter = postfix.iredmail
action = iptables-multiport[name=postfix, port=»ssh,http,https,smtp,smtps,pop3,pop3s,imap,imaps,sieve», protocol=tcp]
# sendmail[name=Postfix, [email protected]]
logpath = /var/log/maillog
bantime = 3600
maxretry = 5
ignoreip = 127.0.0.1
Вот и все, можем запускать: