Fail2Ban — простой в использорвании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует злоумышлинников.
Установка
Установка Fail2ban на Debian/Ubuntu
apt install fail2ban
Установка Fail2ban на CentOS/Fedora/RHEL
yum install fail2ban
Конфигурирование
Основная папка со всеми конфигурационными файлами находится по адресу /etc/fail2ban/
Главный файл настроек блокировки jail.conf — но сами разработчики не советуют редактировать его так как при обновлении он может быть перезаписан.
Для конфигурирования Fail2Ban правильнее создавать файлы в директории /etc/fail2ban/jail.d
Все настрйоки которые будут одинаковыми для всех сервисов выносятся в файд default.conf
nano /etc/fail2ban/jail.d/default.conf
В данный файл можео вынести такие переменные как
[DEFAULT]
ignoreip = 1.1.1.1
maxretry = 3findtime = 2m
bantime = 60m
action = iptables[name=sshd]
ignoreip — домеренный IP который не будет попадать в списко блокировок
maxretry — количество действий, которые разрешено совершить до срабатывания правила блокировки
findtime — временной диапазон, в течение которого должно попадать правило maxretry
bantime — время, на которое будет блокироваься злоумышленник
action — действия, которое будет выполняться при обнаружужении активность, соответствующую критериям поиска
Правила
Каждое правило рекомендуется создавать в отдельных файлах в папке /etc/fail2ban/jail.d/
Для защиты ssh сервера создадим файл sshd.conf
nano /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd]
logpath = /var/log/auth.log
maxretry = 3
findtime = 2m
sshd — название правила
enabled — переменная активации правила
port — порт службы, может быть как цифровой так и буквенный
filter — фильтр (критерий поиска), который будет использоваться для поиска подозрительных действий. Список всех вы можете просмотреть в папке /etc/fail2ban/filter.d . Название фильтра — имя файла без .conf
action — действие, совершаемое в случае срабатывания правила. Все доступные действия находиться в папке /etc/fail2ban/action.d . Название действия — имя файла без .conf
logpath — расположение лог-файла, в котором фильтр будет искать подозрительную активность
Для применения правил, обязательно нужно перезапустить Fail2ban
systemctl restart fail2ban
Actions
Описание базовых правил для блокировки . Полный список правил находится в папке /etc/fail2ban/action.d
iptables — создание простого правила в netfilter с помощью одноименной утилиты
iptables-multiport — использование модуля multiports, позволяющий добавлять диапазоны портов для блокировки
iptables-ipset — использование ipset для придания более лаконичного вида правилам
iptables-allports — блокирует для адреса все порты
firewallcmd-new — создание простого правила в netfilter с помощью firewall-cmd
firewallcmd-ipset — добавляет правила с помощью утилиты firewall-cmd, используя ipset
firewallcmd-rich-rules — создает rich-rules при помощи firewall-cmd
Управление списком блокировок
Просмотр всех активных правил блокировок
fail2ban-client status
Просмотр конкретного правила блокировок
fail2ban-client status название_правила
Удаление IP из правила блокировок
fail2ban-client set имя_правила unbanip 1.1.1.1