Приложение Fail2ban

Приложение Fail2ban: установка и настройка от ИТ-специалиста

Новости

Продолжаем серию постов об обеспечении безопасности сети. В этот раз поговорим про приложение fail2ban, которое мониторит системные логи на предмет автоматизированных атак на систему.

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

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

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

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

Установка Fail2ban

CentOS 7:

  1. Установка Fail2ban:
    yum install fail2ban

  2. Для отправки писем, устанавливаем Sendmail:
    yum install sendmail

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

systemctl start fail2ban

systemctl enable fail2ban

systemctl start sendmail

systemctl enable sendmail

Debian & Ubuntu

  1. Устанавливаем Fail2ban:
    apt-get install fail2ban

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

  2. Для email-поддержки, устанавливаем Sendmail:  
    apt-get install sendmail-bin sendmail

Fedora

  1. Устанавливаем Fail2ban:
    dnf install fail2ban

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

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

systemctl start fail2ban

systemctl enable fail2ban

systemctl start sendmail

systemctl enable sendmail

Настройка Fail2ban

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

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

Настройка приложения fail2ban.local

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

cd /etc/fail2ban

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

sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

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

fail2ban config screenshot

  • 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:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

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

backend=systemd

screenshot-jail-conf

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

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

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

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

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

 

sendmail -t [email protected]

где [email protected] — ваш адрес.

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

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

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

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

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

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

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

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3

[apache-multiport]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 3

[apache-noscript]
enabled = true
port= http,https
filter = apache-noscript
logpath = /var/log/apache2/error.log
maxretry = 3

[apache-overflows]
enabled = true
port= http,https
filter = apache-overflows
logpath = /var/log/apache2/error.log
maxretry = 2

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

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

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

sudo fail2ban-client set JAIL unbanip IP 

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

Например:

sudo fail2ban-client set ssh-iptables unbanip 63.127.107.213

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, регистрируйтесь на курсы Cisco и Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню