Posts tagged ‘безопасность’

Защита от брутфорса паролей при помощи 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 тысяч как это было у меня.