Как вывести в лог fail2ban (/var/log/fail2ban.log) значение bantime
В логе при попадании в бан следующий формат записи
2021-08-06 06:50:49,622 fail2ban.actions [18491]: NOTICE [nginx-limit-req] Ban 192.168.1.1
Как кастомизировать лог что бы попадало время bantine - к примеру
2021-08-06 06:50:49,622 fail2ban.actions [18491]: NOTICE [nginx-limit-req] Ban 192.168.1.1 10800
Ответы (1 шт):
Автор решения: sebres
→ Ссылка
Напрямую (путём конфигурации) - никак.
Можно изменить через переписывание исходников модуля "actions.py":
- logSys.notice("[%s] %sBan %s", self._jail.name, ('' if not bTicket.restored else 'Restore '), ip)
+ logSys.notice("[%s] %sBan %s %s", self._jail.name, ('' if not bTicket.restored else 'Restore '), ip, self.getBanTime())
но... зачем?
Значение для <bantime> в этом сообщении константно (т.е. известно для каждой jail), т.к. (если речь идет про 0.11 с bantime.increment) проверка на "known as bad" (и пролонгирование) происходит асинхронно, и в вслучае продления fail2ban выдаст дополнительное сообщение в лог, например:
2021-08-06 20:21:45,231 [sshd] Ban 192.0.2.1
2021-08-06 20:21:45,239 [sshd] Increase Ban 192.0.2.1 (3 # 1 day, 14:05:45 -> 2021-08-08 10:27:29)
бан продлен из за 3-й блокировки, на 1 день 14 часов 5 минут, до 2021-08-08 10:27:29