Модуль es-postfix был разработан компанией Extra Systems для защиты mail-сервера postfix от хакерской и спамерской активности в рамках системы fail2ban. Суть его деятельности заключается в выявлении подозрительной активности в файле /var/log/mail.log.
Подключение es-postfix к fail2ban производится таким способом:
[es-postfix] enabled = true filter = es-postfix logpath = /var/log/mail.log action = iptables-allports[name=es-postfix, blocktype=DROP, protocol=all]
Обратите внимание на тот факт, что данный фильтр блокирует для изобличенного хакера (или спамера) все протоколы на всех портах, причем делает это по методу DROP - что превращает после этого ваш хост в абсолютно "черную дыру" для данного конкретного злоумышленника. Ни на один свой последующий IP-пакет он не получит вообще никакого ответа. Таким образом нами обеспечивается значительная экономия ресурсов вашего сервера.
Код нашего фильтра es-postfix имеет такой вид:
[Definition]
failregex = ^.*postfix/smtpd\[\d+\]: disconnect from unknown\[<HOST>\]\s
^.*dovecot: (?:imap|pop3)-login: Disconnected: Connection closed \(no auth attempts in \d+ secs\): user=<>, rip=<HOST>, lip=.*$
^.*dovecot: (?:imap|pop3)-login: Disconnected: Connection closed: read\(size=\d+\) failed: Connection reset by peer \(no auth attempts in \d+ secs\): user=<>, rip=<HOST>, lip=.*$
^.*postfix/(?:submission/)?smtpd\[\d+\]: disconnect from \S+\[<HOST>\] commands=0/0$
^.*postfix/smtpd\[\d+\]: NOQUEUE: reject: RCPT from unknown\[<HOST>\]: 450 4.7.1 Client host rejected: cannot find your reverse hostname.*$
^.*dovecot: imap-login: Disconnected: Connection closed: SSL_accept\(\) failed:.*rip=<HOST>, lip=.*$
^.*postfix/smtpd\[\d+\]: warning: hostname \S+ does not resolve to address <HOST>: Name or service not known$
^.*postfix/smtpd\[\d+\]: NOQUEUE: reject: RCPT from unknown\[<HOST>\]: 450 4.7.25 Client host rejected: cannot find your hostname.*$
^.*postfix/smtpd\[\d+\]: warning: \S+\[<HOST>\]: SASL LOGIN authentication failed: authentication failure$
^.*postfix/smtpd\[\d+\]: NOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5.7.1 Service unavailable; Client host \[\S+\] blocked using .*$
^.*postfix/(?:submission/)?smtpd\[\d+\]: warning: non-SMTP command from \S+\[<HOST>\]: .*$
^.*postfix/submission/smtpd\[\d+\]: disconnect from \S+\[<HOST>\] ehlo=0/1 commands=0/1$
ignoreregex =
В условиях практической эксплуатации на наших Linux-серверах данный фильтр показал очень высокую эффективность в деле подавления хакерской и спамерской активности в рамках mail-сервера postfix.
| © Extra Systems, 2026 |
|