Любой владелец сервера, если заглянет в логи подключений к серверу по протоколам ssh и ftp обычно приходит в ужас от того, что там твориться. Сразу становится видно, что идёт постоянный брутфорс паролей. Причём IP адреса, с которых пытаются подключиться обычно принадлежат странам Африки, Китая и так далее, так что пытаться как то достучаться до их провайдеров даже и не стоит, да и это физически не реально, так как диапазон мест, из которых брутят, огромен.
Единственный способ защититься – это тупо блокировать такие подключения при помощи файрвола. Сразу скажу, что брутфорс обычно идёт не в ручную, а с помощью ботов, которые в свою очередь часто не понимают, что они уже попали в бан и продолжают свои попытки дальше, ещё больше увеличивая срок своего бана.Есть много способов осуществить затеянное, но мы остановимся на одном из простых инструментов для защиты сервера от брутфорса паролей – утилиты Fail2Ban.
Fail2Ban – инструмент позволяющий защитить сервер от брутфорса таких сервисов как SSH, FTP, Apache и т.д. ОН производит анализ логов программ и в случае превышения лимита на неудачные логины банит IP адрес злоумышленника при помощи правил iptables, при «бане» администратору высылается оповещение.
Официальный сайт Fail2Ban:
Рассматривать будем установку Fail2Ban на сервер с ОС Centos и настраивать защиту будем только для ssh и ftp. В стандартном репозитории есть только старая версия, поэтому лучше всего сразу подключить альтернативный RPMForge.
Установка:
yum install fail2ban.noarch
Настройка:
Открываем файл /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
PS: Я думаю многие оказывались в ситуации, когда просыпаешься после бурного веселья и понимаешь, что ты несколько часов назад должен был приступить к своей работе в офисе, а ты здесь валяешься в кровати, и весь твой организм говорит, что сегодня ему работа категорически противопоказана. И что делать – совершенно непонятно. Не пойти на работу – получишь завтра малоприятный разговор с шефом, да ещё в добавок и наказание. Пойти сегодня с таким опозданием, да ещё и в таком виде – последствия могут быть ещё хуже. Но выход есть! Можно оформить больничный лист и получить время на восстановление сил, затраченных на борьбу с зелёным змеем. Конечно в поликлинику в таком виде идти нельзя, но можно купить его в специальных фирмах за совсем небольшие деньги, которые с лихвой компенсирует вам потом ваша фирма. Вот вам пример такой фирмы: med-spravki.com предлагает больничные листы по ценам от 2000 руб.. Разве это дорого? Причём вы полностью оправдались перед начальником, у вас есть время на восстановление, и вам этот больничный ещё и оплатят, так как он абсолютно подлинный, то есть выписан настоящим врачом в настоящей поликлинике.
Похожие записи:

Июль 23rd, 2011 в 23:07
Хорошая статья, спасибо !