могу подтвердить с регулярное выражение fail2ban ... /etc/fail2ban/filter.d/sshd.local
что фильтр находит записи журнала
Фильтр по умолчанию (в режиме нормальный
) будет игнорировать его с другим уже доступным RE, который помогает учитывать IP-адрес сеанса (для других сообщений, происходящих в том же сеансе, но без IP-адреса), и он останавливается. первый RE соответствие сообщению. Тогда как fail2ban-regex
показывает все совпадающие RE, а также дубликаты.
Так что вы также увидите 20) [88] ...
на выходе.
А также Строки: N строк, 88 пропущено, X совпало, Y пропущено
.
Чтобы добиться этого правильно (вообще без ваших локальных модификаций):
- любой набор
фильтр = %(известный/фильтр)s[publickey=любой]
в sshd
jail (поскольку ваша версия уже должна его поддерживать, см. https://github.com/fail2ban/fail2ban/discussions/3176#discussioncomment-1768538 для дополнительной информации).
- или просто установить
режим = агрессивный
в sshd
тюрьма.
Чтобы справиться с этим правильно (с вашими локальными изменениями):
- либо переписать
mdre-нормальный-другой
, например в jail.local:
[сшд]
filter = %(известный/фильтр)s[mdre-normal-other=""]
failregex = %(известное/failregex)s
^Соединение закрыто...
- или напишите свой пользовательский RE перед оригинальным RE... Просто обратите внимание, что в новейших версиях fail2ban их порядок будет изменен (https://github.com/fail2ban/fail2ban/pull/3007):
failregex = ^Соединение закрыто...
%(известно/ошибочное выражение)s
И не используйте %(__prefix_line)s
в отказоустойчивое выражение
, потому что он уже обработан в префрегекс
, поэтому нужно написать это так:
- ^%(__prefix_line)sСоединение...
+ ^Соединение...