fail2ban — легковесный демон на Python, который читает логи популярных сервисов (SSH, nginx, Postfix, Dovecot, WordPress) и автоматически банит подозрительные IP через iptables / nftables / firewalld. Стандартный сценарий: 5 неудачных SSH-логинов за минуту → IP забанен на 10 минут. За неделю фильтрует 10 000+ ботов.
Компоненты: jails — набор правил под конкретный сервис (sshd, nginx-http-auth, wordpress). filters — regex для матчинга плохих запросов в логах. actions — что делать после N совпадений (обычно ban через iptables).
Настройка минимальная: `apt install fail2ban`, включает jail sshd автоматически. Проверить статус: `fail2ban-client status`, разбанить конкретный IP: `fail2ban-client set sshd unbanip 1.2.3.4`. Для WordPress берут jail wordpress + плагин WP fail2ban.
Ограничения: (1) не спасает от целевой атаки с 10 000 IP (ботнет), только от массового брутфорса, (2) должен быть настроен ДО начала атаки, не после, (3) неправильные regex дают false-positive, могут забанить вас самих. Дополнить fail2ban SSH-ключами и отключением парольного входа — best practice.