#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. Просто попробовал это сейчас от отчаяния. Никаких изменений.