Назад | Перейти на главную страницу

Регулярное выражение fail2ban, которое использует меньше ЦП?

Используя fail2ban, я хочу заблокировать этих спамеров, которые отправляют на адрес спам-ловушки:

Oct 27 09:04:22 si68 postfix/smtpd[3240]: NOQUEUE: reject: RCPT from unknown[117.197.114.222]: 550 5.7.1 <spamtrap@example.com>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; MTA helo: odwsgs.com, MTA hostname: unknown[117.197.114.222] (helo/hostname mismatch); from=<info.manager@nacha.org> to=<spamtrap@example.com> proto=ESMTP helo=<odwsgs.com>
Oct 27 09:08:51 si68 postfix/smtpd[32646]: NOQUEUE: reject: RCPT from unknown[182.177.131.71]: 550 5.7.1 <spamtrap@example.com>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; MTA helo: rigplj.com, MTA hostname: unknown[182.177.131.71] (helo/hostname mismatch); from=<account.manager@nacha.org> to=<spamtrap@example.com> proto=ESMTP helo=<rigplj.com>
Oct 27 12:42:09 si68 postfix/smtpd[22119]: NOQUEUE: reject: RCPT from unknown[70.39.119.76]: 550 5.7.1 <spamtrap@example.com>: Recipient address rejected: temporarily blocked because of previous errors - retrying too fast. penalty: 30 seconds x 0 retries.; from=<jameshoward@bk.ru> to=<spamtrap@example.com> proto=ESMTP helo=<CT623.local>
Oct 27 14:03:12 si68 postfix/smtpd[30183]: NOQUEUE: reject: RCPT from unknown[91.79.137.194]: 550 5.7.1 <spamtrap@example.com>: Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs; please relay via your ISP (mchi.org); Please use DynDNS; from=<bvioj@mchi.org> to=<spamtrap@example.com> proto=SMTP helo=<ppp91-79-137-194.pppoe.mtu-net.ru>
Oct 27 22:00:28 si68 postfix/smtpd[18310]: NOQUEUE: reject: RCPT from unknown[96.31.94.71]: 550 5.1.1 <spamtrap@example.com>: Recipient address rejected: User unknown; from=<onsite@ipr-management-mail.com> to=<spamtrap@example.com> proto=ESMTP helo=<ipr-management-mail.com>
Oct 28 00:40:00 si68 postfix/smtpd[18319]: NOQUEUE: reject: RCPT from unknown[63.141.229.165]: 550 5.1.1 <spamtrap@example.com>: Recipient address rejected: User unknown; from=<info@nnamedia.com> to=<spamtrap@example.com> proto=SMTP helo=<mx1.nnamedia.com>
Oct 28 04:05:14 si68 postfix/smtpd[9519]: NOQUEUE: reject: RCPT from unknown[70.39.119.76]: 550 5.7.1 <spamtrap@example.com>: Recipient address rejected: Your MTA is listed in too many DNSBLs; check http://www.robtex.com/rbl/70.39.119.76.html; from=<jameshoward@bk.ru> to=<spamtrap@example.com> proto=ESMTP helo=<CT623.local>

Я не очень хорошо разбираюсь в регулярных выражениях, но придумал следующее:

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: (.*)spamtrap

Однако, когда я тестирую приведенное выше регулярное выражение с почтовым журналом (46 МБ) следующим образом:

fail2ban-regex /var/log/maillog 'failregex = reject: RCPT from (.*)\[<HOST>\]: (.*)spamtrap'

ЦП сходит с ума, пытаясь его обработать. Я считаю, что регулярное выражение можно было бы написать более эффективно. Какие-либо предложения?

Обновить: IP-адреса в файле журнала выше отклоняются только для определенных транзакций, указанных выше. Я хочу полностью их заблокировать. Это всего лишь очень небольшая выдержка из журнала. Те же самые IP-адреса спамеров не ТОЛЬКО отправляются на адреса спам-ловушек, но также отправляются реальным действительным получателям и проходят.

Другими словами, я хотел бы запретить им МОМЕНТ, когда они пробуют адрес спам-ловушки, - таким образом предотвращая попадание дальнейших писем с того же IP-адреса реальным людям.

Нашел способ использовать немного меньше ЦП и на один глобус меньше, используя этот совет Майкла Орлицки:

failregex = reject: RCPT from (.*)\[<HOST>\]: 550 5\.1\.1 <spamtrap@example\.com>

Ссылка: http://old.nabble.com/Re%3A-fail2ban-for-spamtraps-p28964882.html

Я не понимаю, чего вы пытаетесь достичь. Минимальное использование ЦП - это удалить fail2ban и игнорировать записи в почтовом журнале. Все эти письма отклоняются. Так зачем заботиться?

Вы потребляете ЦП при отклонении (policyd-weight), а затем при fail2ban, чтобы запретить уже закрытое соединение. Просто игнорируйте прошлое.

Если вам это действительно нужно, вам следует перенаправить журналы. Используйте фильтры syslog-ng, чтобы создать файл журнала только для попаданий спам-ловушек. Затем используйте fail2ban для этого крошечного файла журнала.