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

12 set 2022 4 min di lettura
Как установить и настроить Fail2ban в CentOS 8
Indice dei contenuti

Введение

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

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

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

Если вы хотите установить Fail2ban на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

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

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

Установите Fail2ban на CentOS

Пакет Fail2ban зависит от пакетов, доступных только в репозитории программного обеспечения EPEL. Если репозиторий не включен в вашей системе, включите его, введя следующую команду от имени пользователя root или пользователя с привилегиями sudo:

sudo yum install epel-release

Теперь вы можете установить Fail2ban, напишите следующую команду:

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 Sat 2020-09-12 13:05:53 CEST; 5s ago
 Docs: man:fail2ban(1)
 Process: 1844 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 1845 (f2b/server)
 Tasks: 3 (limit: 12210)
 Memory: 11.0M
 CGroup: /system.slice/fail2ban.service
 └─1845 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start...

Это все. На данный момент у вас есть 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 в текстовом редакторе. В этом уроке мы используем nano, в противном случае вы можете использовать любой другой редактор, например vi/vim:

sudo yum install nano
sudo nano /etc/fail2ban/jail.local

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

IP-адреса из белого списка

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

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

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

Настройки запрета

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

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

bantime = 1d
/etc/fail2ban/jail.local

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

bantime = -1
/etc/fail2ban/jail.local

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

findtime = 10m
/etc/fail2ban/jail.local

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

maxretry = 5
/etc/fail2ban/jail.local

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

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

action = %(action_mw)s
/etc/fail2ban/jail.local

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

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

destemail = [email protected]
 sender = [email protected]
/etc/fail2ban/jail.local

Fail2ban тюрьмы

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

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

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

[sshd]
 enabled = true
 port = ssh
 logpath = %(sshd_log)s
 backend = %(sshd_backend)s
/etc/fail2ban/jail.local

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

Фильтры находятся в каталоге /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 посетите официальную документацию.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.