Защита от брутфорса паролей при помощи Fail2Ban

В какой-то момент меня задолбало листать длиннющий logwatch с тысячами сообщений о том что на сервер пытались зайти с неверным логином по SSH и я решил оторвать свою пятую точку и поискать как же можно избавиться от ненависных брутфорсеров, и нашел…
Fail2Ban – утилита позволяющая защитить сервер от брутфорса таких сервисов как SSH, FTP, Apache и т.д. Она производит анализ логов программ и в случае превышения лимита на неудачные логины банит IP адрес злоумышленника при помощи iptables, при «бане» администратору высылается оповещение.
Официальный сайт: http://www.fail2ban.org/
Предполагается что вы используете CentOS
Для простоты работы и настройки лучше всего использовать версию Fail2Ban >0.8 (в стандартном репозитории есть только 0.6), для этого у вас должен быть установлен репозиторий RPMForge.
Для установки выполняем команду:
yum install fail2ban.noarch
После этого меняем настройки Fail2Ban (почему-то в конфигах указан неправильный путь к логу SSH):
Меняем файл /etc/fail2ban/jail.conf
... bantime = 600 ... [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban] logpath = /var/log/secure maxretry = 5 ... |
Обратите внимание на параметры:
bantime – время (в секундах), накоторое забаниться злоумышленник (по умолчанию 600 – 10 мин)
logpath – по умолчанию он указан неправильно
dest – кому слать оповещения о «забаненных»
sender – «отправитель» письма
maxretry – количество повторных «ошибочных» попыток логина
После настройки можно запускать сервис:
service fail2ban start chkconfig fail2ban on |
При условии что вы не поленились поменять алиас у пользователя root, со временем (зависит от «популярности» вашего сервера) вы начнете получать письма о том что хост такой-то забанен, а количество сообщений о неверных логинах уменьшиться до 10-20 в день, вместо 2-3 тысяч как это было у меня.