Я столкнулся с запутанной проблемой с Fail2Ban.
Я использую старую версию, которая после перезапуска Fail2Ban Daemon разблокирует все IP-адреса.
Теперь у меня на Centos 7 установлен Fail2Ban версии 0.9.3. Когда я перезапускаю Fail2Ban, он повторно блокирует ранее запрещенные IP-адреса. Я не хочу, чтобы это произошло, и вместо этого хочу, чтобы все запреты были сняты при перезапуске, как это обычно и работало.
Я установил dbfile = None
чтобы предотвратить постоянный бан, а также установить dbpurgeage = 0
просто на всякий случай.
Но при перезапуске любой забаненный IP снова забанен.
Вот отрывок из /var/log/fail2ban.log
когда пользователя забанят через vsftpd:
2016-09-19 20:45:58,671 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx
2016-09-19 21:01:55,665 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx
2016-09-19 21:02:06,679 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx
2016-09-19 21:02:06,936 fail2ban.actions [23752]: NOTICE [vsftpd] Ban xx.xx.xx.xx
Затем после перезапуска Fail2Ban вот последние несколько строк файла журнала:
2016-09-19 21:02:42,719 fail2ban.jail [24213]: INFO Jail 'vsftpd' started
2016-09-19 21:02:42,761 fail2ban.filter [24213]: INFO [vsftpd] Found xx.xx.xx.xx
2016-09-19 21:02:42,761 fail2ban.filter [24213]: INFO [vsftpd] Found xx.xx.xx.xx
2016-09-19 21:02:42,921 fail2ban.actions [24213]: NOTICE [vsftpd] Ban xx.xx.xx.xx
Похоже, это повторное сканирование файлов журнала и повторный бан ранее заблокированного пользователя.
Как я уже упоминал, в старых версиях Fail2Ban это работало не так - как я могу вернуться к предыдущей функциональности?
Отключение использования dbfile означает, что fail2ban
теряет отслеживаемую позицию чтения в каждом файле при перезапуске и поэтому читает весь файл, что приводит к поведению, которое вы наблюдали.
Добавление tail
после имен файлов в logpath
заявления расскажут fail2ban
чтобы начать чтение с конца файла, а не с начала. Это должно (я думаю) дать вам желаемое (или достаточно близкое) поведение. Видеть документы для более подробной информации. Соответствующий раздел ...
Необязательный разделенный пробелом параметр 'tail' может быть добавлен в конец пути, чтобы файл журнала читался с конца, иначе параметр 'head' по умолчанию читает файл с начала
Тем не менее, я согласен со значением комментария Майкла Хэмптона - правильный способ справиться с этим - восстановить использование dbfile
и воспользуйтесь функцией разблокировки.