Рейтинг:0

fail2ban - Дополнительное регулярное выражение для фильтра sshd

флаг ca

В настоящее время я пытаюсь отловить неудачные попытки входа в SSH с аутентификацией на основе сертификата (верный сертификат, но неправильный пароль), используя fail2ban версии 0.11.2-2 (работает на Debian 11).

Поэтому я создал новый файл /etc/fail2ban/filter.d/sshd.local с содержанием

[Определение]
failregex = %(известное/failregex)s
            ^%(__prefix_line)sСоединение закрыто при аутентификации пользователя <F-USER>.+</F-USER> порт <HOST> \d+ \[preauth\]$

чтобы правило фильтрации не было перезаписано в будущих обновлениях.

Чтобы проверить это, я сам несколько раз вызывал ситуацию и могу подтвердить с sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.local что фильтр находит записи журнала:

  1. [88] ^(?:[])?\s*(?:<[^.]+.[^.]+>\s+)?(?:\S+\s+)?(?:kernel:\s ?[ *\d+.\d+]:?\s+)?(?:@vserver_\S+\s+)?(?:(?:(?:[\d+])?:\s+[[(]?sshd(? :(\S+))?[])]?:?|[[(]?sshd(?:(\S+))?[])]?:?(?:[\d+])?:?)\ s+)?(?:[ID \d+ \S+]\s+)?Соединение закрыто аутентифицирующим пользователем .+ порт \d+ [предварительная авторизация]$

Но ничего не происходит со статусом фильтра:

Статус для джейла: sshd
|- Фильтр
| |- В настоящее время ошибка: 0
| |- Всего неудачно: 0
| - Список файлов: /var/log/auth.log
 - Действия
   |- Сейчас забанено: 0
   |- Всего забанено: 0
    - Список запрещенных IP:

У вас есть идеи, что здесь не работает или где еще я должен искать?

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

могу подтвердить с регулярное выражение fail2ban ... /etc/fail2ban/filter.d/sshd.local что фильтр находит записи журнала

Фильтр по умолчанию (в режиме нормальный) будет игнорировать его с другим уже доступным RE, который помогает учитывать IP-адрес сеанса (для других сообщений, происходящих в том же сеансе, но без IP-адреса), и он останавливается. первый RE соответствие сообщению. Тогда как fail2ban-regex показывает все совпадающие RE, а также дубликаты.

Так что вы также увидите 20) [88] ... на выходе. А также Строки: N строк, 88 пропущено, X совпало, Y пропущено.

Чтобы добиться этого правильно (вообще без ваших локальных модификаций):

  1. любой набор фильтр = %(известный/фильтр)s[publickey=любой] в sshd jail (поскольку ваша версия уже должна его поддерживать, см. https://github.com/fail2ban/fail2ban/discussions/3176#discussioncomment-1768538 для дополнительной информации).
  2. или просто установить режим = агрессивный в sshd тюрьма.

Чтобы справиться с этим правильно (с вашими локальными изменениями):

  1. либо переписать mdre-нормальный-другой, например в jail.local:
[сшд]
filter = %(известный/фильтр)s[mdre-normal-other=""]
failregex = %(известное/failregex)s
            ^Соединение закрыто...
  1. или напишите свой пользовательский RE перед оригинальным RE... Просто обратите внимание, что в новейших версиях fail2ban их порядок будет изменен (https://github.com/fail2ban/fail2ban/pull/3007):
failregex = ^Соединение закрыто...
            %(известно/ошибочное выражение)s

И не используйте %(__prefix_line)s в отказоустойчивое выражение, потому что он уже обработан в префрегекс, поэтому нужно написать это так:

- ^%(__prefix_line)sСоединение...
+ ^Соединение...

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

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