Fail2ban защищает сервер от brute-force атак, автоматически блокируя IP-адреса после нескольких неудачных попыток входа. Ниже описаны установка, настройка, управление блокировками и белый список.
Применимо к:
✔ VPS
✔ Выделенные серверы
✔ Linux
Debian/Ubuntu:
apt install fail2ban -y
CentOS/AlmaLinux:
yum install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban
Не редактируйте jail.conf напрямую. Создайте файл /etc/fail2ban/jail.local:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
ignoreip = 127.0.0.1/8
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Параметры:
bantime: время блокировки в секундах (3600 = 1 час)findtime: период, за который считаются попыткиmaxretry: количество попыток до блокировкиignoreip: IP-адреса, которые не блокируютсяsystemctl restart fail2ban
fail2ban-client status
Статус конкретного jail:
fail2ban-client status sshd
fail2ban-client set sshd unbanip IP_АДРЕС
Добавьте ваш IP в ignoreip в /etc/fail2ban/jail.local:
[DEFAULT]
ignoreip = 127.0.0.1/8 ВАШ_IP
Можно указать подсеть:
ignoreip = 127.0.0.1/8 192.168.0.0/16 ВАШ_IP
systemctl restart fail2ban
Для Nginx (защита от перебора паролей HTTP Basic Auth):
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
tail -50 /var/log/fail2ban.log
fail2ban-client status sshd
Проверьте, что jail активен и ваш IP не в списке заблокированных.
Если fail2ban блокирует легитимных пользователей слишком часто, увеличьте maxretry или добавьте нужные IP в ignoreip. При проблемах с настройкой откройте тикет в техническую поддержку.