Fail2ban (0.9.6-2) с чистым ftpd (1.0.46)

Я использую pureftpd и fail2ban, но не работает. Кажется, может читать журнал, но fail2ban.filter Событие не вызвано. Я много исследовал обо всех возможных проблемах, и я уже сделал много проверок, но я не знаю, почему это не работает. Я начну класть свои конфиги, логи и что я сделал. Прежде, я должен сказать, что у меня уже есть на той же механической обработке, работающей нормально fail2ban против apache и ssh. Проблема происходит только с pureftpd.:

на моем /etc/fail2ban/jail.local

[pureftpd]
enabled = true
port = 21
filter = pure-ftpd
logpath = /var/log/messages
backend = polling
maxretry = 5

Я менял это тысячи раз (перезапуская демон fail2ban после каждого изменения курса). проверенный port = ftp вместо port = 21 похоже, имеет тот же результат. Я пытался с помощью backend = auto или удаление бэкэнд-оператора... тот же результат.

мой /var/log/messages нормально получает попытки входа в систему по FTP, некоторые строки, например:

Aug  3 08:31:01 88a4998e8b37 pure-ftpd: (?@192.168.0.159) [INFO] New connection from 192.168.0.159
Aug  3 08:31:09 88a4998e8b37 pure-ftpd: (?@192.168.0.159) [WARNING] Authentication failed for user [testinguser]

мой /etc/fail2ban/filter.d/pure-ftpd.conf:

[Definition]
__errmsg = Authentication failed for user
failregex = pure-ftpd: \(\?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]$
ignoreregex =

Я проверял это делать fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf и он возвращает много хитов, так что я думаю, что работает.

Я также перевел fail2ban в режим отладки, и это журнал, когда пользователь подключается и пытается войти в систему при неудаче:

2017-08-03 03:31:10,163 fail2ban.filterpoll     [4429]: DEBUG   /var/log/messages has been modified
2017-08-03 03:31:10,164 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Got time 1470231069.000000 for "'Aug  3 08:31:09'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Sorting the template list
2017-08-03 03:31:10,166 fail2ban.datedetector   [4429]: DEBUG   Winning template: (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)? with 2 hits

Таким образом, он обнаруживает, что файл меняется, но фильтр не срабатывает. Зачем?

По сравнению с другими моими работающими сервисами fail2ban (например, apache), я увидел в журналах разницу... когда он работает, такие строки появляются в журналах:

2017-08-03 03:43:37,024 fail2ban.filterpoll     [4429]: DEBUG   /var/log/apache2/error.log has been modified
2017-08-03 03:43:37,025 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.datedetector   [4429]: DEBUG   Got time 1501767816.000000 for "'Thu Aug 03 08:43:36.224686 2017'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.filter         [4429]: DEBUG   Processing line with time:1501767816.0 and ip:192.168.0.154
2017-08-03 03:43:37,027 fail2ban.filter         [4429]: INFO    [apache] Found 192.168.0.154

Итак, все выглядит примерно так же, проверяя файлы... он получает время, но после этого ничего не срабатывает. Что может быть? Кто-нибудь испытывал это раньше? Спасибо.

1 ответ

Решение

Это решено сейчас. Проблема заключалась в том, что часовой пояс внутри контейнера отличался от того, который был установлен на хосте. Прочитайте эту "неправильную проблему", которую я поставил на github fail2ban:

https://github.com/fail2ban/fail2ban/issues/1855

Другие вопросы по тегам