Как настроить Fail2Ban для обычных служб

Fail2Ban - это бесплатный инструмент предотвращения вторжений с открытым исходным кодом. Он написан на языке программирования Python и используется для защиты вашего Linux-сервера от атак перебора логинов. Если какая-либо служба требует аутентификации в вашей системе, то злоумышленники и боты пытаются сломать вашу систему аутентификации, постоянно аутентифицируясь с помощью различных учетных данных. SSH является хорошим примером такого типа сервиса, который является первым выбором злоумышленников и ботов для атак методом грубой силы.

Как работает Fail2Ban?

Fail2Ban отслеживает файлы журналов сервера (такие как /var/log/auth.log, /var/log/apache/access.log) на предмет попыток вторжения и другой подозрительной активности. После того, как с удаленного узла было обнаружено заданное количество отказов, Fail2Ban автоматически блокирует его IP-адрес на определенное время. Fail2Ban может найти любые удаленные IP-адреса, которые пытаются сделать слишком много попыток входа в систему. После обнаружения неправомерного IP-адреса, Fail2Ban может выполнить несколько действий, таких как обновление правил брандмауэра Iptable, добавление IP-адреса в таблицу hosts.deny TCP Wrapper, отправка уведомления по электронной почте и любое другое действие, определенное пользователем.

Fail2Ban обеспечивает защиту различных сервисов, таких как FTP, SSH, Apache, Webmin, Docker, WordPress и, по сути, любого сервиса, который записывает информацию в лог-файлы, от атак грубой силы.

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

Как установить Fail2Ban

По умолчанию Fail2Ban установлен в стеке Webdock LAMP/LEMP. Если он не установлен, вы можете установить его с помощью следующей команды:

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

sudo systemctl status fail2ban

Как настроить Fail2Ban?

Файлы конфигурации Fail2Ban находятся в каталоге /etc/fail2ban. Вы можете проверить их с помощью следующей команды:

Вы должны увидеть следующий результат:

sudo ls -l /etc/fail2ban/

Где jail.conf является основным конфигурационным файлом со всеми доступными опциями. В jail.conf содержится конфигурация jail для многих сервисов, таких как HTTP, FTP, SSH, Squid, Monit, Horde, Drupal и других. Вам просто нужно добавить "enabled = true" под каждым разделом конфигурации jail, чтобы включить конкретный jail.

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

  • port: Определите имя службы или порт службы.
  • logpath: Определите имя файла журнала, который проверяет fail2ban.
  • bantime: Определите количество секунд, в течение которых хост будет заблокирован fail2ban.
  • maxretry: Определите максимальное количество неудачных попыток входа в систему, которое разрешается хосту, прежде чем он будет заблокирован.
  • ignoreip: Определите IP-адреса, которые fail2ban будет игнорировать.

Рекомендуется настраивать Fail2Ban путем создания нового конфигурационного файла с именем конкретной службы /etc/fail2ban/jail.d/ вместо редактирования существующего файла jail.conf.

Настройка Fail2Ban для SSH

В Ubuntu Fail2Ban для SSH должен быть автоматически включен после установки Fail2Ban, но вы можете проверить, действительно ли он включен в основном файле jail.conf или проверив состояние jail с помощью CLI, как показано в разделах ниже.

Чтобы вручную настроить Fail2Ban для SSH, вам нужно создать файл jail.local:

Добавьте следующие строки:

Сохраните и закройте файл, когда закончите, затем перезапустите службу Fail2Ban, чтобы применить изменения.

Приведенная выше конфигурация будет блокировать удаленные IP после трех неудачных попыток входа на ваш сервер через SSH. IP удаленного узла будет заблокирован на 120 секунд.

Настройка Fail2Ban для Webmin

Чтобы защитить Webmin с помощью Fail2Ban, отредактируйте файл jail.local, как показано ниже:

Добавьте следующие строки:

Сохраните и закройте файл, когда закончите, затем перезапустите службу Fail2Ban, чтобы применить изменения.

Эта конфигурация будет отслеживать файлы /var/log/auth на предмет неудачных попыток входа в Webmin и блокировать их на 120 секунд.

Настройка Fail2Ban для WordPress

Чтобы защитить админ-панель WordPress с помощью Fail2Ban, вам нужно загрузить файл конфигурации фильтра Fail2ban для WordPress. Вы можете загрузить его с помощью следующей команды:

Затем создайте джейл для WordPress, отредактировав файл jail.local:

Добавьте следующие строки:

Сохраните и закройте файл, когда закончите, перезапустите службу Fail2Ban, чтобы применить изменения.

Настройка Fail2Ban для ProFTP

Чтобы настроить Fail2Ban для ProFTP, отредактируйте файл jail.local:

Добавьте следующие строки:

Сохраните и закройте файл, когда закончите, перезапустите службу Fail2Ban, чтобы применить изменения.

Как проверить состояние ловушки

Вы можете получить список всех активированных джейлов Fail2Ban, выполнив следующую команду:

Вы должны получить все активированные jail в следующем выводе:

состояние ловушки

Если вы хотите проверить статус запрета конкретной тюрьмы Fail2Ban (SSH), выполните следующую команду:

Вы должны увидеть все IP, запрещенные Fail2Ban, в следующем выводе:

 sudo fail2ban-client status sshd

Вы также можете проверить журнал Fail2Ban на наличие запрещенных IP:

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

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

Как снять запрет с IP-адресов, забаненных Fail2Ban

По умолчанию Fail2ban автоматически снимает запрет с запрещенных IP через заданный интервал времени, который вы указали в файле jail.local.

Чтобы снять запрет с запрещенного IP вручную, выполните следующую команду:

Вы также можете добавить доверенные удаленные IP-адреса в файл jail.local, чтобы Fail2Ban игнорировал эти IP-адреса.

Добавьте следующие строки в верхней части файла:

Сохраните и закройте файл. Затем перезапустите Fail2Ban, чтобы применить конфигурацию.

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий