Fail2ban: Установка и настройка

Установка Fail2ban.

Если кратко, то: при обнаружении попытки взлома, добавляет запись с IP-адресом хакера в таблицу правил безопасности iptables (подробнее про iptables здесь) и блокирует его либо временно, либо навсегда. А еще fail2ban сообщит вам об атаке по электронной почте.

Теперь подробнее об установке и настройке fail2ban.

Обычно, fail2ban фокусируется на атаках на SSH, но его также можно настроить для защиты и других служб, которые используют логи и могут быть взломаны.

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

CentOS 7:

Установка Fail2ban:

Для отправки писем, устанавливаем Sendmail:

Запускаем Fail2ban и, если нужно, Sendmail:

Debian & Ubuntu

Устанавливаем Fail2ban:

Служба автоматически запустится.

Для email-поддержки, устанавливаем Sendmail:

Fedora

Устанавливаем Fail2ban:

Для email-поддержки, устанавливаем Sendmail:

Запускаем Fail2ban и, если нужно, Sendmail:

Настройка Fail2ban

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

Так как этот файл может быть изменен с помощью обновлений пакетов, его редактирование не рекомендуется. Вносить изменения нужно в файле jail.local, который переопределяет все параметры по умолчанию из файла jail.conf и имеет высший приоритет в исполнении.

Настройка fail2ban.local

  1. Перейдите в  /etc/fail2ban.

  1. Поскольку изменения конфигурации должны быть сделаны в файле fail2ban.local, определения в котором перезаписывают fail2ban.conf, то скопируем fail2ban.conf в fail2ban.local:

Переменные, которые можно настроить в файле fail2ban.local:

 

  • loglevel: Уровень детализации логов fail2ban. Принимает значения: CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG .
  • logtarget: Записывает логи в определенный файл. По умолчанию, все логи записываются в файл /var/log/fail2ban.log. Вы также можете изменить значение на STDOUT, которое будет выводить все данные; STDERR будет выводить все ошибки; SYSLOG; и FILE, которое записывает логи в файл FILE.
  • socket: Расположение файла сокета.
  • pidfile: Расположение файла PID для хранения ID процесса сервера fail2ban.

Базовая настройка jail.local

  1. Вернитесь в папку /etc/fail2ban и скопируйте файл jail.conf в jail.local:

      2. Если вы используете CentOS или Fedora, откройте jail.local установите значение backend:

 

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

Оповещения по email.

Если вы хотите получать оповещения по email каждый раз, когда срабатывает Fail2ban, настройте в файле jail.local:

  • destemail: email адрес, куда вы хотите отправлять письма.
  • sendername: Имя, под которым будет отправляться письмо.
  • sender: email адрес, с которого Fail2ban будет присылать письма.

Если вы не знаете, что написать в  sender, введите команду

 

где user@email.com — ваш адрес.

  • Потом проверьте email (включая папку “Спам”, если нужно) и скопируйте адрес отправителя. Именно он может быть использован для конфигурации выше.
  • action: определяет действия системы в случае превышения количества попыток получения доступа. По умолчанию, банит только пользователя. action_mw забанит и отправит email с отчетом; тогда как action_mwl забанит, отправит письмо с отчетом и все релевантные строки в файле лога.

Настройка jail2ban для различных сервисов

Кроме базовых настроек, jail.local также содержит различные настройки для большого числа распространенных сервисов, включая SSH. По умолчанию, она работает только для SSH.

Примерная конфигурация файла для защиты SSH:

Значение переменных:
  • enabled: определяет, включен фильтр или нет.
  • port: порт сервиса, на который ссылается Fail2ban. Если используется порт по умолчанию, тогда можно использовать имя сервиса. Если вы перенесли ваш SSH порт на 3456, замените ssh на 3456.
  • filter: фильтр, который будет использоваться.
  • logpath: расположение логов сервиса.
  • maxretry: перезапишет глобальное значение maxretry для определенного сервиса. Также можно добавить findtime и bantime.
  • action: это может быть дополнительной настройкой, если значение по умолчанию не подходит. Дополнительные действия можно найти в папке /etc/fail2ban/action.d .

Для защиты веб-сервера Apache можно использовать следующие настройки Fail2ban:

Не забудьте перезапускать Fail2ban после каждого редактирования конфигурационного файла!

На этом настройка Fail2ban завершена.

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

  • JAIL — название секции файла jail.local, в соответствии с правилами которой была активирована блокировка.
  • IP — адрес, который нужно разблокировать.

Например:

Надеюсь, это руководство было полезным для вас!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вверх