регулярные выражения fail2ban совпадают, запретов нет

#fail2ban

#fail2ban

Вопрос:

Несколько месяцев назад я настроил fail2ban на контейнере gentoo, в котором работает courier-mta.

 # fail2ban-server --version
Fail2Ban v0.11.1
# courier --version
Courier 1.0.14 Copyright 1999-2018 Double Precision, Inc.
 

Эта же комбинация работала на реальной машине с более ранними версиями программного обеспечения просто отлично. Через некоторое время я понял, что fail2ban ничего не запрещает. Нет записей в брандмауэре, нет запретов в файле журнала fail2ban.

После проверки конфигурации и просмотра документации, поиска в Google и т. Д. Я в тупике. Регулярное выражение fail2ban показывает, что тюрьма использует правильный фильтр / путь к журналу, и находит множество совпадений:

 # cat /etc/fail2ban/jail.d/courier-smtp.conf 
[courier-smtp]
enabled = true
filter = courier-smtp
action = iptables-allports[name=courier-smtp, protocol=tcp]
logpath = /var/log/maillog
maxretry = 1
findtime = 60m
 
 # fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/courier-smtp.conf 

Running tests
=============

Use   failregex filter file : courier-smtp, basedir: /etc/fail2ban
Use      datepattern : Default Detectors
Use         log file : /var/log/maillog
Use         encoding : UTF-8


Results
=======

Failregex: 81805 total
|-  #) [# of hits] regular expression
|   2) [81805] ^msg="535 Authentication failed.",cmd:( AUTH S )?( [0-9a-zA-Z /=] )?(?: S )$
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [858343] {^LN-BEG}(?:DAY )?MON Day %k:Minute:Second(?:.Microseconds)?(?: ExYear)?
`-

Lines: 858343 lines, 0 ignored, 81805 matched, 776538 missed
[processed in 46.84 sec]

Missed line(s): too many to print.  Use --print-all-missed to print all 776538 lines
 

Журнал (установленный на уровень журнала 5) показывает, что f2b обрабатывает записи журнала нормально, насколько я могу судить:

 2020-11-21 15:59:52,213 fail2ban.filter         [12241]: TRACE   Working on line 'Nov 21 15:59:52 mail courieresmtpd[13644]: error,relay=::ffff:45.142.120.38,port=41978,msg="535 Authentication failed.",cmd: AUTH LOGIN medic@com.aun'
2020-11-21 15:59:52,213 fail2ban.datedetector   [12241]: HEAVY   try to match time for line: Nov 21 15:59:52 mail courieresmtpd[13644]: error,relay=::ffff:45.142.120.38,port=41978,msg="535 Authentication failed.",
2020-11-21 15:59:52,213 fail2ban.datedetector   [12241]: HEAVY     try to match last anchored template #00 ...
2020-11-21 15:59:52,214 fail2ban.datedetector   [12241]: #06-Lev.   matched last time template #00
2020-11-21 15:59:52,214 fail2ban.datedetector   [12241]: #06-Lev.   got time 1605938392.000000 for 'Nov 21 15:59:52' using template {^LN-BEG}(?:DAY )?MON Day %k:Minute:Second(?:.Microseconds)?(?: ExYear)?
2020-11-21 15:59:52,214 fail2ban.filter         [12241]: HEAVY   Looking for match of [('', 'Nov 21 15:59:52', ' mail courieresmtpd[13644]: error,relay=::ffff:45.142.120.38,port=41978,msg="535 Authentication failed.",cmd: AUTH LOGIN medic@com.au')]
2020-11-21 15:59:52,214 fail2ban.filter         [12241]: HEAVY     Looking for prefregex '^(?:\[\])?\s*(?:<[^.] \.[^.] >\s )?(?:\S \s )?(?:kernel:\s?\[ *\d \.\d \]:?\s )?(?:@vserver_\S \s )?(?:(?:(?:\[\d \])?:\s [\[\(]?\S*(?:\(\S \))?[\]\)]?:?|[\[\(]?\S*(?:\(\S \))?[\]\)]?:?(?:\[\d \])?:?)\s )?(?:\[ID \d  \S \]\s )?error,relay=(?:\[?(?:(?:::f{4,6}:)?(?P<ip4>(?:\d{1,3}\.){3}\d{1,3})|(?P<ip6>(?:[0-9a-fA-F]{1,4}::?|::){1,7}(?:[0-9a-fA-F]{1,4}|(?<=:):)))\]?|(?P<dns>[\w\-.^_]*\w)),(?P<content>. )

Из этого я не могу сказать, вызывает ли запись в журнале что-либо, но fail2ban-client не показывает сбоев:

 Status for the jail: courier-smtp
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 0
|  `- File list:    /var/log/maillog
`- Actions
   |- Currently banned: 0
   |- Total banned: 0
   `- Banned IP list:   
 

На что еще мне нужно обратить внимание, чтобы понять, почему нет запретов?

Ответ №1:

У меня была такая же проблема всю неделю. Я предполагаю, что вы уже пробовали это, и я, конечно, должен был попробовать это раньше. Но все, что мне нужно было сделать, это перезагрузить сервер, и все снова заработало. Так и не удалось выяснить, что вызвало ошибку, перезапуск служб в одиночку не сработал.

Комментарии:

1. Просто попробовал это сейчас от отчаяния. Никаких изменений.

2020-11-21 15:59:52,214 fail2ban.filter [12241]: TRACE Pre-filter matched {'ip4': '45.142.120.38', 'ip6': None, 'dns': None, 'content': 'port=41978,msg="535 Authentication failed.",cmd: AUTH LOGIN medic@com.au'}
2020-11-21 15:59:52,214 fail2ban.filter [12241]: HEAVY Looking for failregex 0 - '^[^:]*: 550 User (<.*> )?unknown\.?Из этого я не могу сказать, вызывает ли запись в журнале что-либо, но fail2ban-client не показывает сбоев:


На что еще мне нужно обратить внимание, чтобы понять, почему нет запретов?

Ответ №1:

У меня была такая же проблема всю неделю. Я предполагаю, что вы уже пробовали это, и я, конечно, должен был попробовать это раньше. Но все, что мне нужно было сделать, это перезагрузить сервер, и все снова заработало. Так и не удалось выяснить, что вызвало ошибку, перезапуск служб в одиночку не сработал.

Комментарии:

1. Просто попробовал это сейчас от отчаяния. Никаких изменений.

2020-11-21 15:59:52,214 fail2ban.filter [12241]: HEAVY Looking for failregex 1 - '^msg="535 Authentication failed\.",cmd:( AUTH \S )?( [0-9a-zA-Z\ /=] )?(?: \S )

Из этого я не могу сказать, вызывает ли запись в журнале что-либо, но fail2ban-client не показывает сбоев:


На что еще мне нужно обратить внимание, чтобы понять, почему нет запретов?

Ответ №1:

У меня была такая же проблема всю неделю. Я предполагаю, что вы уже пробовали это, и я, конечно, должен был попробовать это раньше. Но все, что мне нужно было сделать, это перезагрузить сервер, и все снова заработало. Так и не удалось выяснить, что вызвало ошибку, перезапуск служб в одиночку не сработал.

Комментарии:

1. Просто попробовал это сейчас от отчаяния. Никаких изменений.

2020-11-21 15:59:52,683 fail2ban.filterpyinotif [12241]: DEBUG Event queue size: 16
Из этого я не могу сказать, вызывает ли запись в журнале что-либо, но fail2ban-client не показывает сбоев:


На что еще мне нужно обратить внимание, чтобы понять, почему нет запретов?

Ответ №1:

У меня была такая же проблема всю неделю. Я предполагаю, что вы уже пробовали это, и я, конечно, должен был попробовать это раньше. Но все, что мне нужно было сделать, это перезагрузить сервер, и все снова заработало. Так и не удалось выяснить, что вызвало ошибку, перезапуск служб в одиночку не сработал.

Комментарии:

1. Просто попробовал это сейчас от отчаяния. Никаких изменений.