Фон: Я запускаю сервер Plesk CentOS 6.7 с 30 + доменами. Я получаю огромное количество спама от определенного TLD (в этом случае - .top). Я запускаю SpamAssassin и использую список RBL (xbl.spamhaus.org). SpamAssassin помещает большинство этих сообщений в качестве спама, но достаточно того, что мой сервер получает скорость, ограниченную почтовыми серверами Google (из-за того, что некоторые из моих учетных записей электронной почты моего пользователя пересылаются в Gmail). Я получаю ZEPO законную электронную почту из этого домена, и в последнее время использование памяти выросло на несколько процентов, поэтому я пытаюсь сэкономить некоторые накладные расходы и улучшить репутацию сервера, заблокировав эти сообщения, прежде чем они даже попадут в Postfix.Regex для fail2ban для фильтрации почты из определенного домена верхнего уровня
Я хотел бы написать фильтр для fail2ban, который будет соответствовать соединениям с этим TLD и запретить соответствующие IP-адреса.
Вот пример записи журнала:
Mar 20 03:12:43 mydomain postfix/smtpd[6557]: connect from whatevermonkey.top[66.199.245.168]
Mar 20 05:07:38 mydomain postfix/smtpd[13299]: connect from someonecat.top[216.169.126.67]
Так может кто-нибудь помочь с Regex, что я мог бы заткнуть, чтобы Fail2ban, что будет соответствовать всем «соединиться с», который включал «.TOP» TLD?
Я пытаюсь работать с этим на основе моего рабочего фильтра postfix-sasl (ниже), но мое регулярное выражение chi недостаточно сильное ... Вот мой рабочий фильтр для postfix-sasl, который соответствует неудачным попыткам входа в систему :
failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/:]*={0,2})?\s*$
Опять же, я просто хочу, чтобы соответствовать IP-адреса, которые предшествуют «somespammyserver.top» Любая помощь очень ценится.
Спасибо за ответ. Выполнение этого в отношении моих журналов с помощью «grep» завершается неудачно (нет результатов), но «grep -P» работает отлично. Я не уверен, как fail2ban обрабатывает совпадение (независимо от того, совместим ли это с PCRE?). Я создал фильтр с этим регулярным выражением, и я получаю сообщение об ошибке: «Нет» группы хостов в [regex] ». Поэтому я думаю, что fail2ban имеет некоторые дополнительные требования, кроме простого регулярного выражения. Поэтому у меня есть еще несколько исследований. Еще раз спасибо! – cmpreshn
@cmpreshn: Вы могли бы также согласиться с ['connect. +? \. Top \ [([. \ D] +) \]'] (https://regex101.com/r/yI2vC2/2) – Jan