Перейти к содержимому

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

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

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

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

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

Или же:

После этого установите пакет Fail2Ban для защиты SSH, выполнив следующую команду:

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

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

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

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

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

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

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

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

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

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

Мониторинг проблемных и заблокированных IP-адресов с помощью fail2ban-client

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

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

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

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

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

Опубликовано вLinux

Ваш комментарий будет первым

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

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