Как установить и настроить Fail2ban на CentOS 8

Установить Fail2ban на CentOS 8

Все серверы, подключенные к Интернету, подвержены риску атак вредоносного ПО. Например, если ваше программное обеспечение подключено к публичной сети, злоумышленники могут использовать метод подбора паролей, чтобы получить доступ к приложению.

Fail2ban — это инструмент с открытым исходным кодом, который помогает защитить ваш Linux-компьютер от атак методом подбора и других автоматизированных атак, отслеживая журналы служб на наличие вредоносной активности. Он использует регулярные выражения для сканирования файлов журналов. Все записи, соответствующие шаблонам, подсчитываются, и когда их количество достигает заданного порогового значения, Fail2ban блокирует нарушающий IP-адрес на определённый период времени. Для блокировки используется системный брандмауэр по умолчанию. По истечении срока блокировки IP-адрес удаляется из списка заблокированных.

В этой статье объясняется, как установить и настроить Fail2ban на CentOS 8.

Установка Fail2ban на CentOS

Пакет Fail2ban входит в стандартные репозитории CentOS 8. Чтобы установить его, выполните следующую команду от имени пользователя root или пользователя с правами sudo :

 sudo dnf install fail2ban

После завершения установки включите и запустите службу Fail2ban:

 sudo systemctl enable --now fail2ban

Чтобы проверить, запущен ли сервер Fail2ban, введите:

 sudo systemctl status fail2ban
 ● fail2ban.service - Fail2Ban Service Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-09-10 12:53:45 UTC; 8s ago ...

Вот и всё. На этом этапе Fail2Ban запущен на вашем сервере CentOS.

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

Стандартная установка Fail2ban включает два файла конфигурации: /etc/fail2ban/jail.conf и /etc/fail2ban/jail.d/00-firewalld.conf . Эти файлы не следует изменять, так как они могут быть перезаписаны при обновлении пакета.

Fail2ban считывает файлы конфигурации в следующем порядке:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

Каждый файл .local переопределяет настройки из файла .conf .

Самый простой способ настроить Fail2ban — скопировать файл jail.conf в jail.local и изменить файл .local . Более опытные пользователи могут создать файл конфигурации .local с нуля. Файл .local не обязательно должен содержать все настройки из соответствующего файла .conf , достаточно только тех, которые вы хотите переопределить.

Создайте файл конфигурации .local из файла jail.conf по умолчанию:

 sudo cp /etc/fail2ban/jail.{conf,local}

Чтобы начать настройку сервера Fail2ban, откройте файл jail.local в текстовом редакторе :

 sudo nano /etc/fail2ban/jail.local

Файл содержит комментарии, описывающие назначение каждого параметра конфигурации. В этом примере мы изменим базовые настройки.

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

IP-адреса, диапазоны IP-адресов или хосты, которые вы хотите исключить из блокировки, можно добавить в директиву ignoreip . Здесь необходимо указать IP-адрес вашего локального компьютера и всех остальных машин, которые вы хотите добавить в белый список.

Раскомментируйте строку, начинающуюся с ignoreip , и добавьте свои IP-адреса, разделив их пробелом:

/etc/fail2ban/jail.local

 ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

Настройки бана

Значения параметров bantime , findtime и maxretry определяют время и условия бана.

bantime — это время, на которое IP-адрес заблокирован. Если суффикс не указан, по умолчанию оно составляет несколько секунд. По умолчанию bantime равен 10 минутам. Как правило, большинство пользователей предпочитают установить более длительный срок блокировки. Измените значение по своему усмотрению:

/etc/fail2ban/jail.local

 bantime = 1d

Чтобы навсегда заблокировать IP-адрес, используйте отрицательное число.

findtime — это интервал между неудачными попытками до наложения бана. Например, если Fail2ban настроен на блокировку IP-адреса после пяти неудачных попыток ( maxretry , см. ниже), эти неудачные попытки должны произойти в течение интервала findtime .

/etc/fail2ban/jail.local

 findtime = 10m

maxretry — это количество неудачных попыток, после которого IP-адрес будет заблокирован. Значение по умолчанию — пять, что должно подойти большинству пользователей.

/etc/fail2ban/jail.local

 maxretry = 5

Уведомления по электронной почте

Fail2ban может отправлять оповещения по электронной почте о блокировке IP-адреса. Для получения сообщений по электронной почте необходимо установить SMTP-сервер на сервере и изменить действие по умолчанию, которое блокирует только IP-адрес, на %(action_mw)s , как показано ниже:

/etc/fail2ban/jail.local

 action = %(action_mw)s

%(action_mw)s заблокирует подозрительный IP-адрес и отправит электронное письмо с отчётом WHOIS. Если вы хотите включить в письмо соответствующие логи, выберите действие %(action_mwl)s .

Вы также можете настроить адреса электронной почты отправителя и получателя:

/etc/fail2ban/jail.local

 destemail = admin@linuxgazette.ru sender = root@linuxgazette.ru

Тюрьмы Fail2ban

Fail2ban использует концепцию тюрем. «Жильё» описывает сервис и включает в себя фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении предопределённого условия выполняются соответствующие действия.

Fail2ban поставляется с несколькими джейлами для различных сервисов. Вы также можете создавать собственные конфигурации джейлов.

По умолчанию в CentOS 8 ни один джейл не включен. Чтобы включить джейл, необходимо добавить enabled = true после названия джейла. В следующем примере показано, как включить джейл sshd :

/etc/fail2ban/jail.local

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

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

/etc/fail2ban/jail.local

 [sshd] enabled = true port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s maxretry = 3 findtime = 1d bantime = 4w ignoreip = 127.0.0.1/8 23.34.45.56

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

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

 sudo systemctl restart fail2ban

Клиент Fail2ban

Fail2ban поставляется с инструментом командной строки fail2ban-client , который можно использовать для взаимодействия со службой Fail2ban.

Чтобы просмотреть все доступные параметры команды fail2ban-client , вызовите ее с параметром -h :

 fail2ban-client -h

Этот инструмент можно использовать для блокировки/разблокировки IP-адресов, изменения настроек, перезапуска сервиса и многого другого. Вот несколько примеров:

  • Проверьте статус тюрьмы:

     sudo fail2ban-client status sshd
  • Разбанить IP:

     sudo fail2ban-client set sshd unbanip 23.34.45.56
  • Запретить IP:

     sudo fail2ban-client set sshd banip 23.34.45.56

Заключение

Мы показали вам, как установить и настроить Fail2ban на CentOS 8. Для получения дополнительной информации о настройке Fail2ban посетите официальную документацию .

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

fail2ban centos security Не используете CentOS 8?
Выберите другую ОС:
дебиан 10 убунту 20.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *