Настройка 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
