суббота, 14 декабря 2013 г.

Fail2Ban

Для защиты от брута существует несколько программ. Для CentOS в репозиториях я нашел замечательную вещицу Fail2Ban. Которая работает по вышеописанному алгоритму. И сводит все попытки брута на нет.
Установка:
yum install fail2ban
При желании правим файл конфигурации /etc/fail2ban/jail.conf
Однако и на параметрах по-умолчанию, все замечательно работает.
Добавляем в автозагрузку:
chkconfig fail2ban on
Запускаем:
service fail2ban start
Посмотреть все блокировки:
iptables -L
Если Вы думаете, что никто не ломится к Вам на сервер по SSH дабы им завладеть, то Вы сильно ошибаетесь grin
Выполните команду:
cat /var/log/secure* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c
 

оригинал: http://moonback.ru/page/web-server-defense 
______________
 
Защищаем сервер от брутофорса посредством fail2ban, первым делом подключаем EPEL репозиторий:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
устанавливаем 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=user@domain.local, sender=fail2ban@domain.local]
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 -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 используем команду:
iptables -D fail2ban-ssh 1
так же проверить статус сервиса можно:
/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-client  reload
или стандартным методом:
service fail2ban restart

 

Комментариев нет:

Отправить комментарий

media запрос для планшетов

/* Smartphones (portrait and landscape) ----------- */ @ media only screen and (min-device-width: 320px ) and (max-device-width: 480px ) ...