На моєму сервері Postfix працює в якості сервера вихідної пошти, тобто тільки відправляє пошту з сайтів. Природно, відкритий 25-ий порт. Але більшу частину часу туди довбають носом всякі боти, які намагаються скористатися сервером, як відкритим реле. :) Природно, у них нічого не виходить, бо налаштовані правила. Але логи засмічують.
Деякі боти підключившись, відразу обривають з'єднання, до ладу не обмінявшись з сервером інформацією. У логи потрапляє щось на зразок цього:
Apr 8 21:15:20 omega postfix / smtpd [3075]: connect from unknown [189.158.233.139] Apr 8 21:15:21 omega postfix / smtpd [3075]: lost connection after UNKNOWN from unknown [189.158.233.139] Apr 8 21:15:21 omega postfix / smtpd [3075]: disconnect from unknown [189.158.233.139] Apr 8 21:16:00 omega postfix / smtpd [3075]: warning: hostname dsl-189-158-233-139-dyn.prod-infinitum.com.mx does not resolve to address 189.158.233.139: Name or service not known
Оскільки у мене також встановлено fail2ban для боротьби з брутфорсом в блогах , то і рішення знайшлося досить швидко. Цим і хочу поділитися з вами. :)
Перш за все відкрийте конфігураційний файл фільтра для Postfix. Він знаходиться в каталозі /etc/fail2ban/filter.d/postfix.conf. Знайдіть параметр failregex і з нового рядка допишіть наступне регулярний вираз:
^% (__ prefix_line) sdisconnect from \ S + \ [\]
Збережіть файл. Тепер перевірте регулярку командою:
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
У мене в підсумку видало 100500 ip-адрес, в тому числі і по стандартному правилом. :)
Останній крок: відкрийте головний файл настройок - /etc/fail2ban/jail.conf. Знайдіть директиву [postfix] і включіть фільтр.
enabled = true
Перезапустіть Fail2ban. На цьому все.