CentOS - защита от брутофорса или установка fail2ban

1111111111Rating 5.00 (5 Votes)

Защищаем сервер от брутофорса посредством fail2ban, первым делом подключаем EPEL репозиторий:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Установка fail2ban

Устанавливаем fail2ban:

yum install fail2ban

копируем и редактируем конфигурационный файл:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local

настраиваем исключения для IP адресов, время бана, поиск за период времени и сколько ошибочных попыток было за это время, настраивая параметры в секции [Default] (время указывается в секундах):

ignoreip = 127.0.0.1
bantime  = 3600
findtime  = 600
maxretry = 3

включаем блокирование при попытке подбора пароля к доступу ssh, выставив параметр enabled в true:

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., sender=Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.]
logpath  = /var/log/secure
maxretry = 4

где dest адрес получателя уведомления, sender адрес отправителя, если рассматривать более подробно:

  • enabled - параметр для включения \ отключения фильтра, выставляется значениями true \ false
  • filter - определяет фильтр, параметры фильтра (правила) располагаются в конфигруационном файле /etc/fail2ban/filter.d/sshd.conf
  • action - действие, происходящее в момент срабатывания правила т.е. в момент соответсвия его условиям, в результате блокируемый IP  добавляется в список блокирования файервола (/etc/fail2ban/action.d/iptables.conf), если настроен почтовый сервер, то будет отослано почтовое сообщение с whois информацией о блокируемом IP
  • logpath - файл, который будет анализироваться fail2ban на предмет ошибочных повторов
  • maxretry - количество ошибочных повторов ввода пароля

далее определяем глобальный лог файл для fail2ban в файле /etc/fail2ban/fail2ban.conf, изменив параметр logtarget, на:

logtarget = /var/log/fail2ban.log

добавляем сервис в автозагрузку:

chkconfig fail2ban on

и запускаем:

service fail2ban start

Проверка правил в iptables

Проверяем наличие правил в iptables:

iptables -L

при необходимости можно посмотреть дату и время ошибочных попыток:

cat /var/log/secure | grep 'Failed password' |  sort | uniq -c

или количество ошибочных попыток:

cat /var/log/secure* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort | uniq -c

Удаление заблокированного IP

Для удаления забаненного IP используем команду:

fail2ban-client set sshd unbanip xxx.xxx.xx.x

или непосредствено из iptables, смотрим правила с нумерацией:

iptables -L fail2ban-SSH -v -n --line-numbers

находим свой IP в списке, удаляем:

iptables -D fail2ban-SSH 2

Проверка статуса fail2ban

/etc/init.d/fail2ban status

текущее состояние fail2ban по ssh-iptables:

fail2ban-client  -i
Fail2Ban v0.8.10 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

fail2ban> status ssh-iptables
Status for the jail: ssh-iptables
|- filter
|  |- File list:    /var/log/secure
|  |- Currently failed:    1
|  `- Total failed:    23
`- action
   |- Currently banned:    2
   |  `- IP list:    xx.xx.xxx.xxx xxx.xx.x.xx
   `- Total banned:    4

Перезапуск fail2ban

Перезапустить fail2ban можно так:

fail2ban-client  reload

или стандартным методом:

service fail2ban restart

Настройки приведены для версии fail2ban ниже 0.9.0, начиная сновой версии синтаксис jail.local изменился

Статья о том, как настроить Fail2ban версии выше 0.9.х

Обсудить на форуме

Добавить комментарий


Обновить
Защитный код

Сейчас 138 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз