Установка и настройка fail2ban в CentOS
Fail2ban — простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.
Программа умеет бороться с различными атаками на все популярные *NIX–сервисы, такие как Apache, Nginx, ProFTPD, vsftpd, Exim, Postfix, named, и т.д.
Fail2ban приобрел свою известность за счет защиты от атак типа "bruteforce" из коробки.
Устанавливаем fail2ban:
Создаем копию и редактируем файла конфигурации:
Настраиваем исключения для IP адресов, время бана, поиск за период времени и сколько ошибочных попыток было за это время, настраивая параметры в секции [Default] (время указывается в секундах):
Здесь хотелось бы отметить, что лучше не указывать IP 127.0.0.1, так как в случае получения доступа хотя бы к одному из локальных пользователей, у злоумышленника будет возможность тихого локального брутфорса.
Проверяем блокирование при попытке подбора пароля к доступу ssh, параметр enabled=true:
где:
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, на:
Добавляем fail2ban в автозагрузку:
и запускам:
Проверяем наличие правил в iptables:
Чтобы посмотреть дату и время ошибочных попыток используем команду:
Количество ошибочных попыток:
Для удаления IP из бана используем команду:
Проверить статус сервиса можно:
Текущее состояние fail2ban по ssh-iptables:
Перезапустить fail2ban выполняется командой:
Программа умеет бороться с различными атаками на все популярные *NIX–сервисы, такие как Apache, Nginx, ProFTPD, vsftpd, Exim, Postfix, named, и т.д.
Fail2ban приобрел свою известность за счет защиты от атак типа "bruteforce" из коробки.
Устанавливаем 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
Здесь хотелось бы отметить, что лучше не указывать IP 127.0.0.1, так как в случае получения доступа хотя бы к одному из локальных пользователей, у злоумышленника будет возможность тихого локального брутфорса.
Проверяем блокирование при попытке подбора пароля к доступу 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
Добавляем fail2ban в автозагрузку:
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 из бана используем команду:
fail2ban-client set ssh-iptables unbanip xxx.xxx.xxx.xxx
Проверить статус сервиса можно:
/etc/init.d/fail2ban status
Текущее состояние fail2ban по ssh-iptables:
fail2ban-client -i
status ssh-iptables
Перезапустить fail2ban выполняется командой:
service fail2ban restart
Материал опубликован 28-03-2014, 15:24, его прочитали 6 003 раз(а).
Похожие публикации: