Fail2Ban часто вспоминают только в контексте защиты SSH от брутфорса. Но на практике его польза гораздо шире: он отлично подходит для защиты веб-сервисов, почты и API, где логов много, а автоматических атак еще больше.
▪️ Nginx: защита от перебора и сканеров. Самый частый кейс - массовые запросы к несуществующим страницам,
/wp-login.php, /admin, /phpmyadmin.Пример jail:
[nginx-404]
enabled = true
filter = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 20
findtime = 60
bantime = 1h
Фильтр (
/etc/fail2ban/filter.d/nginx-404.conf):
failregex = ^<HOST> .* "GET .* HTTP/.*" 404
В результате IP, который активно сканирует сайт, улетает в бан автоматически.
▪️ Postfix: защита почтового сервера. Почтовые серверы постоянно атакуют: перебор паролей, relay-попытки, фейковые отправки.
Готовые jail уже есть:
postfix
postfix-sasl
dovecot
Пример включения:
[postfix-sasl]
enabled = true
port = smtp,submission,imap,imaps
logpath = /var/log/mail.log
maxretry = 5
Это резко снижает шум и нагрузку на почтовый сервер.
▪️ API и приложения. Fail2Ban отлично работает и для REST API, особенно если: нет rate limit, нет WAF, логируются ошибки авторизации.
Пример: баним за 10 ошибок 401 за минуту:
[api-auth]
enabled = true
filter = api-auth
logpath = /var/log/app/api.log
findtime = 60
maxretry = 10
bantime = 30m
Фильтр:
failregex = ^.* <HOST> .* 401 Unauthorized
▪️ Куда банить. Fail2Ban умеет:
iptables / nftables;
firewalld;
cloud-firewalls (через actions);
отправлять алерты в телегу.
#linux #fail2ban
🧑💻 NetworkAdmin