Поиск по сайту:

Как установить Fail2Ban для защиты SSH на CentOS/RHEL 8


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

Читайте также: первоначальная настройка сервера с CentOS/RHEL 8

В этой статье мы объясним, как установить и настроить fail2ban для защиты SSH и улучшения безопасности сервера SSH от атак методом перебора на . CentOS/RHEL 8.

Установка Fail2ban на CentOS/RHEL 8

Пакета fail2ban нет в официальных репозиториях, но он доступен в репозитории EPEL. После входа в свою систему получите доступ к интерфейсу командной строки, затем включите репозиторий EPEL в своей системе, как показано.

dnf install epel-release
OR
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

После этого установите пакет Fail2ban, выполнив следующую команду.

dnf install fail2ban

Настройка Fail2ban для защиты SSH

Файлы конфигурации fail2ban расположены в каталоге /etc/fail2ban/, а фильтры хранятся в каталоге /etc/fail2ban/filter.d/. каталог (файл фильтра для sshd — /etc/fail2ban/filter.d/sshd.conf).

Глобальный файл конфигурации сервера Fail2ban — /etc/fail2ban/jail.conf, однако не рекомендуется изменять этот файл напрямую, так как он, вероятно, будет перезаписан или улучшен в случае пакета. модернизировать в будущем.

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

В этой статье мы создадим отдельный файл с именем jail.local в каталоге /etc/fail2ban/, как показано.

vi /etc/fail2ban/jail.local

После открытия файла скопируйте и вставьте в него следующую конфигурацию. Раздел [DEFAULT] содержит глобальные параметры, а [sshd] содержит параметры для тюрьмы sshd.


[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

Давайте кратко объясним параметры в приведенной выше конфигурации:

  • ignoreip: указывает список IP-адресов или имен хостов, которые не следует блокировать.
  • bantime: указано количество секунд, на которое хост заблокирован (т. е. эффективная продолжительность бана).
  • maxretry: указывает количество неудачных попыток, прежде чем хост будет заблокирован.
  • findtime: Fail2ban забанит хост, если он сгенерировал «maxretry» в течение последних «findtime» секунд.
  • запрет: действие, запрещающее действие.
  • серверная часть: указывает серверную часть, используемую для получения изменений в файле журнала.

Таким образом, приведенная выше конфигурация означает, что если IP-адрес дал сбой 3 раза за последние 5 минут, заблокируйте его на 6 часов и игнорируйте IP-адрес 192.168.56.2.

Затем запустите и включите службу fail2ban и проверьте, запущена ли она, с помощью следующей команды systemctl.

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Мониторинг неудачных и запрещенных IP-адресов с помощью Fail2ban-client

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

fail2ban-client status

Чтобы контролировать тюрьму sshd, запустите.

fail2ban-client status sshd

Чтобы разблокировать IP-адрес в Fail2ban (во всех клетках и базе данных), выполните следующую команду.

fail2ban-client unban 192.168.56.1

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

man jail.conf
man fail2ban-client

Это подводит итог этому руководству! Если у вас есть какие-либо вопросы или мысли, которыми вы хотите поделиться по этой теме, не стесняйтесь обращаться к нам через форму обратной связи ниже.