Рейтинг:0

Как создать failregex для блокировки imap-логинов fail2ban

флаг cn

Может ли кто-нибудь помочь мне с созданием правильного фильтра fail2ban. Плохие IP-адреса стучат по порту 993 /etc/fail2ban/filter.d/dovecot.conf не ловит такой журнал

Я нашел что-то вроде этого, но я получаю ошибки с этим

[Определение]

failregex = ^%(__prefix_line)s(pop3|imap)-логин: (Информация: )?(Прерванный вход|Отключено)(: Бездействие)? \(((нет попыток авторизации|авторизация не удалась, \d+ попыток)( в \d+ сек)?|попытка $

Почтовый журнал

28 января 11:35:10 mbm2-srv dovecot: imap-login: отключено (нет попыток авторизации в течение 7 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, TLS, session=<4WmzJqHWpuJ1Mm4F>
28 января, 11:35:11 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, подтверждение связи TLS: соединение закрыто, сеанс =<8Bi9JqHWYIB1Mm4F>
28 января, 11:35:12 mbm2-srv dovecot: imap-login: отключено (нет попыток авторизации за 1 секунду): user=<>, rip=117.50.110.5, lip=192.168.1.254, подтверждение связи TLS: соединение закрыто, сеанс =<9vHEJqHWmIF1Mm4F>
28 января, 11:35:13. 676) не удалось: сброс соединения узлом, session=<Ri3TJqHWtIJ1Mm4F>
28 января, 11:35:13 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, подтверждение связи TLS: соединение закрыто, сеанс =<RjDbJqHWdIR1Mm4F>
28 января, 11:35:14 mbm2-srv dovecot: imap-login: отключено (нет попыток авторизации за 1 секунду): user=<>, rip=117.50.110.5, lip=192.168.1.254, подтверждение связи TLS: соединение закрыто, сеанс =<mHXjJqHWHIV1Mm4F>
28 января, 11:35:14 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, квитирование TLS: SSL_accept() не удалось : ошибка: 14209102: подпрограммы SSL: tls_early_post_process_client_hello: неподдерживаемый протокол, сеанс = <l6XnJqHW0IV1Mm4F>
28 января, 11:35:15. 595) не удалось: сброс соединения узлом, session=<ic/zJqHWhoZ1Mm4F>
28 января, 11:35:15 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, подтверждение связи TLS: соединение закрыто, сеанс =<aw78JqHWXId1Mm4F>
28 января 11:35:15 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, квитирование TLS: SSL_accept() не удалось : ошибка: 142090C1: подпрограммы SSL: tls_early_post_process_client_hello: нет общего шифра, сеанс = <gTIAJ6HWMoh1Mm4F>
28 января 11:35:16 mbm2-srv dovecot: imap-login: отключено (нет попыток аутентификации за 0 секунд): user=<>, rip=117.50.110.5, lip=192.168.1.254, квитирование TLS: SSL_accept() не удалось : ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ, сеанс = <l9UIJ6HW8Ih1Mm4F>

Еще раз спасибо

Рейтинг:1
флаг il

Вам не нужно писать собственное регулярное выражение, если вы используете какую-то новую версию fail2ban, где фильтр dovecot поддерживает агрессивный режим.
Вы можете проверить это с помощью:

fail2ban-regex /path/to/log-or-test-message dovecot[режим=агрессивный]

Если ты видишь совпадения тогда это работает для вас, поэтому просто установите это в своем тюрьма.местный для тюрьмы голубятня:

[голубятня]
режим = агрессивный
...
включено = верно

Я нашел что-то вроде этого, но я получаю ошибки с этим

Ваш пример кажется неполным (урезанным?), во всяком случае в нем нет <ADDR> или же <HOST> а так же он может быть в принципе написан для другой версии fail2ban (вы тоже не указали).

В любом случае для версии 0.10 или выше это может выглядеть так: это, просто это работало бы только вместе с префрегекс указывается несколькими строками выше в том же фильтре, а также с другими указанными там подстановочными переменными и также может зависеть от версии общий фильтр включает.

Или даже что-то вроде этого (должно работать с каждой версией и не требует включения):

failregex = ^\s*(?:\S+\s+)?(?:(?:dovecot(?:-auth)?|auth)(?:\[\d+\])?:?\s+)?( ?:kernel:\s?\[ *\d+\.\d+\]:?\s+)?(?:(?:dovecot: )?auth(?:-worker)?(?:\([^\ )]+\))?: )?(?:pam_unix(?:\(dovecot:auth\))?: |(?:pop3|imap|managesieve|представление)-login: )?(?:Info: ) ?(?:conn \w+:auth(?:-worker)? \(uid=\w+\): auth(?:-worker)?<\d+>: )?(?:Прерванный вход в систему|Отключен|Удаленный доступ закрыт соединение|Клиент прервал соединение)(?::(?: [^ \(]+)+)? \((?:нет попыток аутентификации|отключение до того, как аутентификация была готова,|клиент не завершил \S+ аутентификацию, )(?: (?:in|waited) \d+ secs)?\):(?: user=<[^>]*>,)?(?: method=\S+,)? rip=<HOST>( ?:[^>]*(?:, session=<\S+>)?)\s*$

флаг cn
Спасибо, рад видеть ваш ответ. Я попробую это, но похоже, что это сканирование портов, а не настоящий DOS или перебор. И поскольку порт 993 открыт, журнал очень похож на этот.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.