Fail2ban настройка centos 7

Обновлено: 04.07.2024

Описывая Fail2ban в двух словах, можно сказать, что он позволяет на основе анализа логов блокировать тех, кто злоупотребляет доступностью сервера по сети. Например, защитить почтовые ящики от взлома путем перебора паролей или многократного запроса какого-либо ресурса.

Читая некоторые статьи в интернете, может сложиться неправильное мнение, что Fail2ban нужен только для защиты от брут-форс атак (перебор паролей). На самом деле, данный программный продукт — система реагирования на подозрительные действия.

Установка и запуск

Для систем на базе пакетов Debian или Red Hat команды будут немного отличаться.

CentOS / Red Hat:

yum install fail2ban

Ubuntu / Debian:

apt-get install fail2ban

CentOS 6:

yum install fail2ban

Для запуска службы вводим следующие команды:

systemctl enable fail2ban

systemctl start fail2ban

* Для старых систем без systemd это будут команды chkconfig fail2ban on / update-rc.d fail2ban defaults и service fail2ban start.

Базовая настройка

Процесс настройки fail2ban не зависит от дистрибутива Linux. Основной конфигурационный файл находится по пути /etc/fail2ban/jail.conf. Однако, его не рекомендуется менять и для настройки используют подключаемые файлы из каталога /etc/fail2ban/jail.d.

Для начала создаем первый файл, в котором будут храниться настройки по умолчанию:

Приведем его к виду. Настройка будет немного отличаться в зависимости от операционной системы.

а) для CentOS / Red Hat:

[DEFAULT]
maxretry = 4
findtime = 480
bantime = 720
action = firewallcmd-ipset
ignoreip = 127.0.0.1/8

б) для Ubuntu / Debian:

[DEFAULT]
maxretry = 4
findtime = 480
bantime = 720
action = iptables
ignoreip = 127.0.0.1/8

  • maxretry — количество действий, которые разрешено совершить до бана.
  • findtime — время в секундах, в течение которого учитывается maxretry;
  • bantime — время, на которое будет блокироваться IP-адрес;
  • action — действия, которое будет выполняться, если Fail2ban обнаружит активность, соответствующую критериям поиска;
  • ignoreip — игнорировать защиту, если запросы приходят с перечисленных адресов.

* В данном примере, если в течение 8 минут (480) будет найдено 5 строк (maxretry = 4), содержащих критерий фильтра, Fail2ban заблокирует IP-адрес, с которого идет подключение на 12 минут (720);
* В секции [DEFAULT] хранятся общие настройки для всех правил. Каждую из настроек можно переопределить при конфигурировании самого правила.

Настройка правил

Для нового правила необходимо создать конфигурационный файл в каталоге /etc/fail2ban/jail.d, например:

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 10
findtime = 600

  • ssh — название для правила;
  • enabled позволяет быстро включать (true) или отключать (false) правило;
  • port — порт целевого сервиса. Принимается буквенное или цифирное обозначение;
  • filter — фильтр (критерий поиска), который будет использоваться для поиска подозрительных действий. По сути, это имя файла из каталога /etc/fail2ban/filter.d без .conf на конце;
  • action — действие, совершаемое в случае срабатывания правила. В квадратных скобках указаны название для правила, сетевой порт и протокол для блокирования;
  • logpath — расположение лог-файла, в котором фильтр будет искать подозрительную активность на основе описанных критериев.

* обратите внимание, что мы переопределили параметры по умолчанию maxretry, findtime и action.

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

systemctl restart fail2ban

* в старых версиях service fail2ban restart.

Исключения

Для гарантии, что fail2ban не заблокирут компьютер администратора или другой важный узел, предусмотрена настройка исключений с помощью опции ignoreip. Опция может быть применена как на глобальном уровне (default), так и для конкретного правила.

Для того, чтобы задать общую настроку, откроем наш файл default:

[DEFAULT]
.
ignoreip = 192.168.0.0/24 95.95.95.95

* в данном примере под фильтры не будут попадать адреса с 192.168.0.1 по 192.168.0.255 и адрес 95.95.95.95.

Для конкретного правили настройки будут, примерно, следующие:

[ssh]
.
ignoreip = 192.168.1.22

* в данном примере мы добавили в белый список один адрес 192.168.1.22, который не будет блокироваться.

Обязательно перезагружаемся, чтобы настройки применились:

systemctl restart fail2ban

* добавление адреса в белый список не удаляет его из блокировки. Поэтому, если IP попал в блок, нужно будет его удалить вручную.

Действия и фильтры

Действия

Файлы с настройкой действий находятся в каталоге /etc/fail2ban/action.d. Чтобы блокировать адрес, Fail2ban создает правило в брандмауэре netfilter. Для этого, чаще всего, используются утилиты iptables или firewall-cmd. Последняя применяется в последних версиях CentOS / Red Hat / Fedora. iptables более универсальная и может использоваться, почти, во всех системах Linux.

Остановимся на описании самых используемых действий:

  • 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.

Подробнее, как создаются правила в netfilter при помощи iptables и firewalld.

Фильтры

Фильтры, в основном, представляют набор регулярных выражений для поиска ключевых слов в log-файлах. Они находятся в каталоге /etc/fail2ban/filter.d.

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

Примеры правил

В данных примерах блокировка IP-адреса будет происходить на 12 минут после 4-х попыток ввода пароля в течение 8 минут. Эти параметры берутся из настроек [DEFAULT]. Если их нужно переопределить, просто добавляем их при описании правила.

CentOS

[ssh]
enabled = true
port = ssh
filter = sshd
action = firewallcmd-new[name=sshd]
logpath = /var/log/secure

Ubuntu

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd]
logpath = /var/log/auth.log

Asterisk

[asterisk]
enabled = true
filter = asterisk
action = iptables-allports[name=asterisk, protocol=all]
logpath = /var/log/asterisk/messages

NGINX

NGINX DDoS (req limit)

Данное правило поможет защитить веб-сервер nginx от DDoS-атак. В некоторых сборках, для данного правило может не оказаться готового фильтра, поэтому в данном примере, мы его создадим вручную.

Для начала, необходимо настроить NGINX:

* данная настройка создает зону с интенсивностью запросов в 1 запрос в секунду.

После настраиваем лимит для конкретного виртуального домена в разделе server - location:

server .
location / .
limit_req zone=one burst=5 nodelay;
.

Проверяем конфигурационный файл nginx и перезапускаем сервис:

systemctl reload nginx

В лог-файле (по умолчанию /var/log/nginx/error.log) при превышении лимита подключения мы должны увидеть запись на подобие:

* обратите внимание, что в вашем случае путь до лога может быть другой. Он определяется в конфигурационном файле NGINX.

Теперь можно приступать к настройке fail2ban. Создаем фильтр:

* данный файл может быть уже создан и настроен при установке fail2ban. Если это так, то ничего не меняем и идем дальше.

Создаем правило в fail2ban:

* еще раз обращаю внимание на путь logpath — в вашем случае он может быть другим.

После настройки не забываем перезапустить fail2ban:

systemctl restart fail2ban

Работа со списком заблокированных адресов

Просмотр

Получить статистику заблокированных адресов можно следующей командой:

fail2ban-client status <имя правила>

Получить список правил можно командой:

При наличие заблокированных IP-адресов мы увидим, примерно, следующее:

`- action
|- Currently banned: 2
| `- IP list: 31.207.47.55 10.212.245.29

С помощью iptables:

iptables -L -n --line

С помощью firewall-cmd:

firewall-cmd --direct --get-all-rules

Удаление

Средствами fail2ban:

Для удаление адреса из списка вводим:

fail2ban-client set <имя правила> unbanip <IP-адрес>

fail2ban-client set ssh unbanip 31.207.47.55

С помощью iptables:

iptables -D <цепочка правил> -s IP-адрес

iptables -D fail2ban-ssh -s 10.212.245.29

С помощью firewall-cmd:

firewall-cmd --direct --permanent --remove-rule <правило>

firewall-cmd --direct --permanent --remove-rule ipv4 filter f2b-sshd 0 -s 188.134.7.221

Если у вас есть сервер или компьютер, напрямую подключены к интернету, то они подвержены определенному риску. Сейчас любой интернет сервер или VPS является потенциальной мишенью для хакерских атак. Правильно настроенный фаервол может предотвратить многие из атак. Но вам по-прежнему нужно оставить открытыми некоторые службы, чтобы иметь возможность администрировать сервер, например, SSH.

Этот протокол часто является мишенью перебора. Но к счастью есть решение. Инструмент Fail2ban позволяет блокировать доступ с IP адресов при большом количестве неверных логинов. Программа fail2ban может использоваться не только для SSH, она может защитить различные формы веб-аутентификации, FTP, и предотвратить DoS атаки на сервер. В этой статье мы рассмотрим как выполняется установка и настройка Fail2ban CentOS 7 поскольку эта операционная система часто используется для серверов.

Установка fail2ban

Программа fail2ban очень часто используется для защиты серверов, поэтому она есть в официальном репозитории EPEL. Для установки программы сначала добавим репозиторий:

yum update && sudo yum install epel-release

Затем установка fail2ban centos 7:

sudo yum install fail2ban


После установки уже будет загружена базовая конфигурация программы, так что чтобы уже начать защищать ваш сервер, запустите ее с помощью системы управления службами:

sudo systemctl start fail2ban

Настройка fail2ban CentOS 7

Все конфигурационные файлы программы находятся в папке /etc/fail2ban. Вот основные файлы, которые мы будем использовать:

  • fail2ban.conf - пример выполнения основных настроек программы;
  • jail.conf - пример настройки запрещающих правил;
  • jail.d - папка с конфигурационными файлами пользователя, для настройки правил запрета;
  • action.d - файлы, в которых описываются действия, выполняемые при блокировке;
  • filter.d - в этих файлах описываются способы разбора журналов программ для поиска неудачных попыток входа.

Никакие параметры в существующих файлах менять нельзя, они будут обновлены при обновлении программы, а значит что все ваши изменения будут стерты. Для установки своих настроек необходимо создать файл с таким же именем и расширением .local. Например, создаем файл для настройки jail.conf:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Теперь мы можем изменить здесь любые настройки, которые вам не нравятся в основном файле. Конфигурационный файл разделен на секции в зависимости от назначения опций. В секции [DEFAULT] находятся общие настройки, затем следуют отдельные секции для каждой блокировки отдельно. Опции по умолчанию и так неплохо работают, но в некоторых случаях дополнительная настройка может быть очень полезной.

Блокировку можно настроить, с помощью различных параметров. Вот самые важные из них:

  • ignoreip - задает список ip адресов, которые нужно исключить из алгоритмов Fail2ban. К ним не будут применяться ограничения, так что выбирайте их аккуратно. Диапазоны и IP адреса стоит разделить пробелом. Сюда можно добавить локальный ip, а также свой домашний адрес, чтобы у вас не возникло проблем при входе;
  • bantime - указывает время, на которое клиенту буде закрыт доступ к серверу, если он не сможет авторизоваться, в секундах;
  • maxretry - указывает количество попыток перед тем, как доступ будет заблокирован;
  • findtime - время в секундах, на протяжении которого рассчитывается maxretry.

В нашем примере пользователь будет заблокирован на 600 секунд после 5-ти неудачных попыток:

По умолчанию, в CentOS все блокировки отключены, чтобы их включить замените значение строчки enabled на true. Но не рекомендуется так делать, потому что вам придется удалить из конфига все ненужные правила блокировки, иначе они вызовут ошибку запуска. Также можно включить обработку каждого приложения отдельно:

Дальше нам необходимо настроить действия для запрета, а поддерживается их несколько вариантов. Как только нужно выполнить блокировку, программа примет решение на основе следующих параметров:

  • banaction - этот параметр определяет файл конфигурации способа блокировки, который нужно использовать. Обычно указывает на файл в папке /etc/fail2ban/action.d/ в котором записаны команды для блокировки. По умолчанию применяется iptables;
  • action - с помощью параметров action задаются ярлыки дополнительных действий, которые выполняется после banaction. Сценарию передается имя, порт, протокол, цель и сценарий.

Настройка Email оповещений

Если вы хотите настроить оповещение о срабатывании блокировки Fail2ban по электронной почте, это тоже настраивается в разделе [DEFAULT]. Только необходимо чтобы на вашей машине был настроен почтовый сервер и он мог отправлять письма на внешний адрес. Иначе все письма будут доставлены к локальной учетной записи Linux.

Для настройки используются два параметра:

Дальше для проверки почты можно посмотреть файл /var/mail/mail:

Настройка отдельных приложений

Сразу после настроек раздела по умолчанию вы увидите разделы, обозначенные вот так: [имя_приложения]. Рассмотрим основные используемые параметры:

  • filter - указывает имя файла в каталоге /etc/fail2ban/filter.d/ Он сообщает программе как анализировать журнал сервиса и находить неудачные попытки входа;
  • logpath - путь к лог файлу службы, куда она записывает неудачные попытки входа;

Например, для активации блокировки неверных входов SSH, приведите секцию [sshd] к такому виду:

enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s


Настройка Iptables

Обычно, никаких дополнительных настроек для iptables не требуется. Но давайте рассмотрим конфигурационный файл, который отвечает за блокировку, чтобы вы понимали как все работает. Имя этого файла указано в параметре banaction. По умолчанию это iptables-multiport.conf:

Тут мы можем увидеть что приходит после того, как fail2ban решает, что нужно заблокировать доступ для определенного IP адреса. Сначала выполняются такие команды iptables:

Они используются для организации среды передачи трафика в фильтрующей цепочке. Iptables управляет трафиком на основе цепей и каждая из них может иметь правила для всего трафика, которые определяют нужно ли его пропускать или нет. В первой строчке создается новая цепочка с именем fail2ban-имя_службы. Именно в ней будут содержаться все запрещающие правила для этого ip адреса. Вторая строчка возвращает управление цепочке, вызвавшей эту, а третья добавляет правило в основную цепь, которое передает управление на нашу цепочку.

Таким образом, весь входящий трафик с нужного порта обрабатывается нашей цепочкой fail2ban-имя_службы. Сейчас первое правило в ней отправляет трафик обратно в вызывающую цепь, это значит что правление просто передается нам и назад. Но теперь мы можем добавить дополнительные правила.

Для разрушения цепочки используются такие правила:

actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>

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

actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP

Эта команда говорит, что необходимо отбрасывать все пакеты с этого ip адреса и уже не пытаться определить подлинность данных. Когда время блокировки вышло, она снимается такой командой:

actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP

Если вы хотите понять какие правила на данный момент применяются и каким ip адресам запрещен доступ, выполните в терминале:

sudo iptables -L

Завершение настройки

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

sudo fail2ban-client -d

Если все правильно, перезагружаем сервис:

sudo systemctl restart fail2ban

Для проверки своих правил, вы можете выполнить несколько попыток входа с неправильным логином и паролем, например, для службы ssh, если вы настраивали именно ее, как описано в этой статье. Когда вы достигните лимита запросов, ваш сервер даже не будет запрашивать пароля. Затем вы можете еще раз посмотреть правила:

sudo iptables -L


В самом низу, в нашей цепочке вы можете увидеть список забаненых ip fail2ban. Чтобы разбанить любой ip адрес достаточно удалить для него правило.

Выводы

В этой статье мы рассмотрели как выполняется настройка fail2ban CentOS 7. Теперь вы можете настроить дополнительный уровень защиты для вашего сервера чтобы обезопасить его от взлома.

date

16.12.2019

directory

CentOS, Linux

comments

комментария 3

Fail2ban позволяет блокировать доступ к серверу или запущенным службам на основе анализа логов доступа и подключений. Fail2Ban автоматически может создавать правила файервола для блокировки конкретных IP адресов, если действия с этого IP определяются как подозрительные. Так, Fail2Ban может защитить ваш сервер от перебора паролей по SSH, DDoS атак, попыток эксплуатации эксплоитов, выполнении запрещенных действий.

Любой сервис сервера, порты которого открыты во внешний мир, потенциально уязвим. Порты некоторых сервисов можно закрыть, но так можно поступить не со всеми. Например, если вы хотите, чтобы у вас полноценно работала почтовая SMTP служба, вы не можете отключить ее или заблокировать порт на firewall и время от времени в логах можно наблюдать записи о попытке подбора пароля к учетной записи. Так происходит и с другими сервисами.

Обычно на всех своих серверах, я закрываю SSH доступа с наружи, т.к. подключаюсь к своим серверам со своего статического IP-адреса или через OpenVPN подключение. Но это не всегда возможно. На помощь приходит замена стандартных портов, либо настройка на сервере службы fail2ban. В этом примере мы покажем, как установить и использовать fail2ban в CentOS, однако вы можете использовать эту инструкцию и для других дистрибутивов Linux.

Установка и первичная настройка Fail2Ban в CentOS 8/7

Пакет для установки fail2ban находится в репозитории Epel, подключим его:

После подключения репозитория, можно установить fail2ban через yum или dnf (в CentOS 8):

установка fail2ban в linux centos

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

Использование Fail2Ban для защиты SSH от перебора паролей

Создадим файл и внесем настройки:

И добавим в него содержимое:

Данная конфигурация устанавливает новое время для блокировки IP адресовм для всех служб, устанавливает использование iptables для блокировок и включается защиту для sshd.

Чтобы использовать для фильтрации firewalld, укажите:

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

Чтобы посмотреть статус fail2ban, и проверить список защищаемых службы, выполните команду:

Вы можете запросить текущий статус блокировок fail2ban для конкретной службы:

fail2ban-client status sshd

В файле jail.conf можно описать общие параметры, которые не будут переопределяться в jail.local.

Измените следующие значения:
bantime = 10m — время на которое будет заблокирован IP
findtime = 10m — время, в течение которого будут подсчитываться неудачные попытки авторизации.
maxretry = 3 — количество попыток до блокировки

Чтобы получать оповещения по электронной почте, вам нужно настроить следующие параметры:
destemail = root@build-centos.info –получатель
sender = root@build-centos.info — отправитель
mta = postfix — SMTP служба, через которую осуществляется отправка

Чтобы настроить блокировку для отдельных сервисов, в файле /etc/fail2ban/jail.local после блока [DEFAULT] создается блок для нужного сервиса, например, как с sshd. Добавим в него некоторые настройки:

Файлы очень подробно описаны и можно изучить нужный вам, чтобы понимать, как происходят проверки журнала.

Логи Fail2Ban

Чтобы проверить журнал fail2ban, выполните команду:

Так же можно проверить логи в реальном времени:

Как видите, fail2ban работает и периодически блокирует или убирает блокировку для IP адресов.

Чтобы проверить, какие IP адреса заблокированы в iptables службой fail2ban, выполните:

iptables - правила для блокировки конкретных IP

Как видите, с открытым наружу ssh, время от времени кто-то пытается подобрать пароль и авторизоваться. Если проверить статистику через какое-то время, видно, что количество заблокированных IP растет.

список заблокированных IP в fail2ban

Защита Apache с помощью Fail2Ban

После изменения конфигурационного файла, выполняем рестарт сервиса и проверяем статус:

Для теста, я установил на сервер Joomla, после чего пытался открыть несуществующий файл и fail2ban меня заблокировал:

Настройка связки Fail2Ban и Nginx

Нам нужно ли включить его в конфигурационном файле /etc/fail2ban/jail.local добавив:

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

Защита MySQL с помощью Fail2Ban

Для защиты MySQL нужно добавить отдельный блок в конфигурационный файл jail.local:

Данная настройка защитит вас от перебора паролей для пользователя mysql (это очень частый брутфорс).

mysqld-auth - правило fail2ban для mysql

Правила Fail2Ban для Exim

Чтобы настроить защиту для почтового сервиса exim, внесите следующую конфигурацию:

Таким образом вы можете настроить fail2ban для работы практически со всеми популярными сервисами и ваш сервер станет максимально безопасен.

Белый список IP в Fail2Ban, разблокировка IP-адресов

Чтобы разблокировать IP, который попал в блокировку fail2ban, используйте команду:

Вы можете добавить определенные IP адреса в исключения fail2ban (белый список). Для этого в конфигурационном файле jail.conf внесите IP в строку:

Добавив свой IP-адрес в исключения, я выполнил несколько атак подобно предыдущей и блокировки не произошло.

Как вы видите, fai2ban довольно просто в настройке, но вполне эффективное средство дополнительной защиты вашего сервера от злоумышленников. Для Windows к сожалению, я не видел бесплатных программ с подобным функционалом (можно попробовать реализовать блокировку IP адресов с помощью PowerShell – см. статью Защита RDP от перебора паролей).

Fail2ban мониторит лог файлы (например, /var/log/secure и другие по вашему желанию) и при появлении в логах заранее настроенных событий (например, неверный пароль по ssh) блокирует удаленный компьютер, внося в цепочку iptables fail2ban-[что-то] IP этого удаленного компьютера. Время блокирования (вплоть до навсегда), количество неудачных попыток ввода пароля и другие параметры настраиваются вами на основании уже готовых шаблонов.

Описывая fail2ban в двух словах, можно сказать, что он позволяет на основе анализа логов блокировать тех, кто злоупотребляет доступностью сервера по сети. Например, защитить почтовые ящики от взлома путем перебора паролей или многократного запроса какого-либо ресурса.

2. Установка программы.

Первым делом установим fail2ban в систему с помощью yum.

Если не удалось, добавьте репозиторий EPEL.

3. Настройка программы.

Теперь необходимо отредактировать файл настроек, добавив туда информацию по направлению блокирования.

Открываем /etc/fail2ban/jail.conf и сморим его, в самом его верху можно прочитать:


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

Для примера настроим проверку подбора пароля ssh (из примера 3.1 этой инструкции). Для этого в файле /etc/fail2ban/jail.local найдем секцию [ssh-iptables] и установим параметры сработки правила и срок блокировки злоумышленника.

Обратите внимание на enabled = true . По умолчанию, fail2ban не банит все сервисы подряд, вызывая у вас головную боль. Только когда вы захотите контролировать что-то, вы это включаете.

На что можно обратить внимание:

enabled = true . Правило включено. filter = sshd . Будет применен фильтр /etc/fail2ban/filter.d/sshd.conf .

Перед тем, как проверять работу блокировки, не заблокируйте сами себя, тестируя работу. Лучше попытаться несколько раз неуспешно залогиниться с другого компьютера, чтобы в логе отразились эти попытки (я немного сократил лог, чтобы уместился по ширине):


Можно попробовать проверить, заблокирован ли 192.168.55.172:

В цепочке fail2ban-SSH должна быть запись о нашем неудачном хакере:


И повторная попытка соединения с 192.168.55.172 будет невозможна до истечения срока ограничения (в нашем случае 5 мин).

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

Если вы хотите посмотреть, как именно сравниваются записи в лог файле, откройте файл /etc/fail2ban/filter.d/sshd.conf . В нем указаны регулярные выражения, на соответствие которым проверяется лог файл /var/log/secure .

3.1. Блокировка SSH.

Вот маленький пример, в котором если кто-то в течении 1 часа (3600) неверно ввел 5 раз пароль при подключении по ssh, то его IP будет блокирован на 5 часов (18000 сек):

Читайте также: