коментариев
Поделиться статьей:

Защита SSHFTP от брутфорса путем установки Fail2Ban

Аникей Александров 01.08.2014 на прочтение 2 минуты

Единственный способ защититься от подбора паролей по SSH – это блокировать такие подключения. Рассмотрим программу для защиты сервера от брутфорса паролей – Fail2Ban.

Fail2Ban – инструмент позволяющий защитить сервер от брутфорса таких сервисов как SSH, FTP, Apache и т.д. ОН производит анализ логов программ и в случае превышения лимита на неудачные логины банит IP адрес злоумышленника при помощи правил iptables, при «бане» администратору высылается оповещение.

Официальный сайт Fail2Ban: http://www.fail2ban.org

Рассматривать будем установку Fail2Ban на сервер с ОС Centos и настраивать защиту будем только для ssh и ftp. В стандартном репозитории есть только старая версия, поэтому лучше всего сразу подключить альтернативный RPMForge.

Установка:
yum install fail2ban

Настройка:
Открываем файл /etc/fail2ban/jail.conf и меняем стандартные значения на необходимые нам:

Для ssh
[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

Для ftp (на примере vsftpd, обратите внимание, есть ещё proftpd)
[vsftpd-iptables]
enabled = true
filter = vsftpd
action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
sendmail-whois[name=VSFTPD, dest=root, sender=fail2ban]
logpath = /var/log/secure
maxretry = 6
bantime = 600

Описание параметров:
ignoreip – это разделенный пробелами список ip-адресов, которые не могут быть блокированы fail2ban. Сюда можно занести свою локальную машину или комьютер, с которого будут проводится эксперименты над системой
bantime – время в секунда, на которое блокируется хост.
maxretry – максимальное число ошибочных попыток доступа к сервису, прежде чем хост будет заблокирован fail2ban.
filter – имя соответствующего файла-фильтра в /etc/fail2ban/filter.d, без конечного .conf
action – имя соответствующего файла-реакции на срабатывание фильтра в /etc/fail2ban/action.d
logpath – файл логов, мониторинг которого осуществляет fail2ban, для проверки попыток атак.
enabled – может принимать значение true или false. Включено,выключено правило.
dest – кому слать оповещения о «забаненных»
sender – «отправитель» письма
maxretry – количество повторных «ошибочных» попыток логина

Запуск fail2ban:
service fail2ban start

Ну и конечно добавляем в автозагрузку:
chkconfig fail2ban on

Если вы указали в конфигах в параметрах dest правильный email, то через некоторое время на него вы начнёте получать сообщения о заблокированных товарищах. Проверить все блокировки можно введя в консоли команду
iptables -L

Если всё настроено правильно, то вы увидите, что ваш лог подключений перестал разрастаться с такой скоростью, как раньше. Проверить работу можно в принципе блокнув себя, правда при блоке в ssh вы некоторое время не попадёте на сервер, ну а вообще сбросить блокировки можно командой
iptables –F

Да и проверка того как ломились к нам на сервак
sudo cat /var/log/secure* | grep ‘Failed password’ | grep sshd | awk ‘{print $1,$2}’ | sort -k 1,1M -k 2n | uniq -c

http://centos.org.ua/articles/58376

Ваш приятный хостинг.


Close Screen
Аникей Александров
Статей: 41
Оцените статью:


Спасибо за отзыв
Рейтинг: 5 из 5 Голосов: 3