На главную

DevOps и серверы

Генератор fail2ban

Собирает jail.local и, если нужно, свой фильтр — с проверкой регулярки прямо на строке лога: видно, совпало ли и какой адрес попадёт в бан.

Что защищаем

Пороги

Свой адрес в «не банить» стоит вписать первым делом: fail2ban не отличает вас от перебора, если вы трижды ошиблись паролем.

Свой фильтр

Проверка на строке лога

Совпадение есть. Под бан попадёт адрес:

203.0.113.7

Проверка идёт в браузере по правилам JavaScript. Сам fail2ban использует Python — на простых регулярках поведение совпадает, но перед боем стоит прогнать fail2ban-regex по настоящему логу.

jail.local

[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5
backend  = systemd
ignoreip = 127.0.0.1/8 ::1
bantime.increment = true
bantime.factor = 2
bantime.maxtime = 7d

[sshd]
enabled  = true
filter   = sshd
port     = ssh

Установка и проверка

sudo install -m 644 jail.local /etc/fail2ban/jail.local
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf   # сухой прогон по настоящему логу
sudo systemctl reload fail2ban
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 203.0.113.7   # разбанить