Как установить и настроить 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-адреса в белый список

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

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

/etc/fail2ban/jail.local
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

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

Значения bantimefindtimeи 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@infoit.com.ua

sender = root@infoit.com.ua

Fail2ban Jails

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

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

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

sudo systemctl restart fail2ban

Fail2ban Client

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 посетите официальную документацию .