Установка и настройка fail2ban

Установка и настройка fail2ban важный шаг по пресечению атак на сервера. Данный сервис помогает в автоматическом режиме блокировать хосты перебирающие пароли. Рассмотрим пример установки и настройки данного сервиса на примере операционной системы Centos7.

Установка репозитория и пакета

Пакет fail2ban отсутствует в стандартных репозиториях centos 7.

fail2ban not found

Но он доступен в репозитории EPEL. Установим пакет репозитория:

yum install epel-release

После чего, приступим к установке fail2ban:

 yum install fail2ban

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

fail2ban start and enable

Конфигурация

fail2ban хранит свои настройки в каталоге /etc/fail2ban. В данном каталоге лежит файл jail.conf. Который содержит стандартные настройки. Редактировать данный файл нельзя, так как он перезаписывается при обновлении пакета fail2ban. Поэтому для настроек потребуется создать новый конфигурационный файл с именем jail.local. Значения настроек будут переопределять стандартную конфигурацию

Рассмотри пример создания конфигурационного файла с секцией [DEFAULT].

Создаем файл:

Откроем его для редактирования через текстовый редактор nano:

Добавим в него пример кода:

fail2ban example configuration

Данный пример переопределяет секцию [DEFAULT]. А соответственно и в ней 3 параметра. Такие как установка нового значения для bantime, включает поддержу iptables и включает sshd.

Сохраняем файл и перезапускаем сервис:

Если все без ошибок то у данной команды не будет вывода. Для убеждения, что сервис запущен и работает вводим:

fail2ban-client status

Если требуется более подробный вывод, то можно посмотреть статус конкретного сервиса:

fail2ban-client status sshd

Как видно, не так уж и сложно создавать свои конфигурации. Сейчас мы рассмотрели пример создания своего конфигурационного файла. Для расширения функционала просто дописываем нужные нас секции, в наш только что созданный файл.

Параметры

Блок [DEFAULT]

ignoreip = 127.0.0.1/8 . Данный параметром задается белый список ip. По умолчанию установлен ip адрес локалхоста.

bantime = 600 . Интервал времени в течении которого хост будет заблокирован. Значение в секундах

findtime = 600, maxretry = 3 . Эти параметры задают условия при которых хост будет заблокирован. Первый, интервал в течении которого должно повториться событие. Второй, количество повторов. Например 3 попытки ввода неправильного пароля при авторизации через ssh в течении 10 минут.

Далее следуют параметры для оповещения по электронной почте:

destemail — адрес электронной почты для отправки уведомлений. sendername — имя отправителя. mta — сервис для отправки почти, в данном случае sendmail.

Затем следует параметр action = $(action_)s , задающий действие в случае блокировки. Стандартное значение отклонение трафика от вредоносного хоста, на интервал времени установленный в bantime.

Индивидульные настройки

За разделом [DEFAULT] следуют индивидуальные настройки сервисов. Как правило они состоят из порта, который требуется закрыть, и параметра logpath, для отслеживания событий.

Пример данного конфига был приведен выше для сервися sshd.

ssh — предопределенная переменная для стандартного порта ssh, а в параметре logpath задано значение %(sshd_log)s, заданное в стандартных настройках fail2ban

Следующий параметр filter — указывает является ли строка в логах неудачной попыткой аутентификации.

Значение filter – это ссылка на файл, который находится в каталоге /etc/fail2ban/filter.d. Регулярные выражения данного файла позволяют определить, является ли строка в логе вредоносной.

Посмотреть все доступные фильтры можно в каталоге /etc/fail2ban/filter.d :

fail2ban filter

Данные файлы названы в честь сервисов для защиты которых они предназначены. большинство файлов достаточно хорошо прокоментированы разработчиками.

Логи fail2ban и настройки брандмауэра

Крайне важная задача это отслеживание работы сервиса. проверка состояния сервиса осуществляется через systemctl

systemctl status fail2ban

Если по какой либо причине сервис не запускается, то существует возможность проверить записи логов, до последней перезагрузки

journalctl -b -u fail2ban

Статус отдельного конфигурационного файла, так называемой тюрьмы, можно посмотреть так:

Где jail_name имя конфига.

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

fail2ban last log

Вывод правил iptables вместе с командами, необходимы для запуска правил:

После прочтения данный статьи у вас появились навыки по установке и первоначальной настройке сервиса fail2ban в операционной системе Centos7

Вам также может понравиться

About the Author: Администратор