До 0.11 в fail2ban не было ни функции, ни настройки по умолчанию . Но, начиная с предстоящего релиза 0.11, время бана рассчитывается автоматически и экспоненциально увеличивается с каждым новым нарушением, что в долгосрочной перспективе будет означать более или менее постоянный блок.
До тех пор ваш лучший подход, вероятно, заключается в настройке fail2ban для мониторинга собственного файла журнала . Это двухэтапный процесс ...
Шаг 1
Нам может понадобиться создать фильтр для проверки BAN в файле журнала (файл журнала fail2ban)
Шаг 2
Нам нужно определить тюрьму , похожую на следующую ...
[Fail2ban]
включен = правда
filter = fail2ban
action = iptables-allports [name = fail2ban]
logpath = /path/to/fail2ban.log
# время поиска: 1 день
findtime = 86400
# Bantime: 1 год
bantime = 31536000
Технически, это не постоянный блок , а только блоки на год (что мы тоже можем увеличить).
В любом случае, на ваш вопрос (может ли это быть достигнуто только с помощью fail2ban или мне нужно написать собственный скрипт для этого?) ... написание собственного скрипта может работать хорошо. Настройка скрипта для извлечения часто запрещенных IP-адресов и последующего их размещения /etc/hosts.deny
- вот что я бы порекомендовал.