Настройка fail2ban

Программа для блокировки IP-адресов при превышении количества попыток совершения какого-либо действия, например, неудачного ввода SSH-пароля или многократного запроса веб-страницы у сервера NGINX.

Предназначен для использования на UNIX-подобных операционных системах, например, Ubuntu, Debian, CentOS, FreeBSD. Самый типичный пример использования — защита SSH удаленного сервера от брут-форс атак (перебор пароля).

Устанавливаем программу fail2ban

Команда sudo apt-get install fail2ban

Проверим статус работы службы fail2ban

Команда systemctl status fail2ban

Настроим теперь программу fail2ban, заходим в директорию где находятся файлы программы

Команда cd /etc/fail2ban/

Посмотрим все файлы в данной директории

Команда ls –la

Для того чтобы настройки не слетали при обновлении программы нам необходимо создать копию файла с настройками fail2ban.conf с разрешением local и файла jail.con

/etc/fail2ban/fail2ban.conf — отвечает за настройки запуска процесса Fail2ban

/etc/fail2ban/jail.conf — содержит настройки защиты конкретных сервисов, в том числе sshd.

Команда sudo cp fail2ban.conf fail2ban.local

Команда sudo cp jail.conf jail.local

Проверим что файлы создались

Команда ls -la

Откроем файл jail.local для редактирования текстовым редактором, по умолчанию nano. Файл jail.conf поделён на секции, так называемые «изоляторы» (jails), каждая секция отвечает за определённый сервис и тип атаки.

sudo nano jail.local

Настраиваем параметры блокировки ip адресов ботов которые пытаются зайти на сервер. Секция [ssh] отвечает за защиту SSH от повторяющихся неудачных попыток авторизации на SSH–сервере, проще говоря, «brute–force».

bantime — время, на которое будет блокироваься злоумышленник

findtime — временной диапазон, в течение которого должно попадать правило maxretry.

maxretry — количество действий (попытка ввода логина или пароля), которые разрешено совершить до срабатывания правила блокировки. ignoreip — доверенный IP (если у вас есть статический ip адрес с которого вы будите заходить на сервер, в противном случае лучше не указывать этот параметр) который не будет попадать в список блокировок

enabled — значение true указывает что данный jail активен, false выключает действие изолятора.

port - указываем номер порта по которому у нас настроено подключение к серверу и также можем указать стандартный порт 22

filters - фильтр (критерий поиска), который будет использоваться для поиска подозрительных действий. Список всех вы можете просмотреть в папке /etc/fail2ban/filter.d . Название фильтра — имя файла без .conf

action — действия, которое будет выполняться при обнаружении активность, соответствующую критериям поиска

logpath - расположение лог-файла, в котором фильтр будет искать подозрительную активность на основе описанных критериев

После сохранения конфигурационного файла, необходимо перезапустить систему

Команда sudo systemctl restart fail2ban

Просмотр ip попавших в блокировку

Для просмотра списка заблокированных ip введите команду

sudo fail2ban-client -v status sshd