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

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

Рубрики:

Linux, Новости

Метки:

, , , , ,

Продолжаем серию статей про обеспечение безопасности сети. В этот раз темой учебного материала станет установка и настройка Fail2ban — приложения, которое мониторит системные логи. И обнаруживает автоматизированные атаки на вашу систему.

Содержание:

  1. Как работает приложение Fail2ban
  2. Установка Fail2ban
    1. CentOS 7
    2. Debian или Ubuntu
    3. Fedora
  3. Настройка Fail2ban
    1. Настройка файла fail2ban.local
    2. Базовая настройка файла jail.local
    3. Оповещения от приложения Fail2ban об атаках на ваш email
    4. Настройка jail.local для различных сервисов
      1. Пример конфигурации файла для защиты SSH
      2. Пример настроек для защиты веб-сервера Apache
  4. Удаление заблокированного IP из черного списка Fail2ban
  5. Выводы

Как работает приложение Fail2ban

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

Установка Fail2ban

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

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

CentOS 7

Установка Fail2ban осуществляется следующим набором команд:

 

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

 

Теперь попробуем запустить Fail2ban и, если нужно, Sendmail:

 

 

 

Debian или Ubuntu

Устанавливаем Fail2ban, используя следующие команды:

 

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

Для автоматизированной отправки email устанавливаем Sendmail

Fedora

Также сначала устанавливаем Fail2ban:

 

Потом, если нужно, устанавливаем Sendmail:

 

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

 

 

 

Настройка Fail2ban

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

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

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

Для начала перейдите в директорию /etc/fail2ban.

 

Поскольку изменения конфигурации должны быть сделаны в файле 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 — записывает логи в заданный вами файл;
  • socketрасположение файла сокета;
  • pidfile — расположение файла PID для хранения ID процесса сервера Fail2ban.

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

Теперь вернитесь в каталог /etc/fail2ban и скопируйте файл jail.conf в jail.local. Это делается следующим набором команд:

 

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

 

Также нужно будет определить несколько дополнительных параметров работы программы:

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

Оповещения от приложения Fail2ban об атаках на ваш email

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

  • destemailemail-адрес, на который вы хотите, чтобы отправлялись письма;
  • sendernameимя, которое будет указываться в письме;
  • senderemail-адрес, с которого приложение будет отправлять письма;
  • actionопределяет действия системы в случае превышения количества попыток получения доступа (по умолчанию просто банит пользователя, с настройкой action_mw забанит и отправит email с отчетом, тогда как с action_mwl забанит, отправит письмо с отчетом и все релевантные строки в файле лога).

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

 

 

В этой команде [email protected] — ваш email-адрес. Потом проверьте свой почтовый ящик (включая папку «Спам», если нужно) и скопируйте адрес отправителя в найденном письме. Именно он может быть использован для настройки этого параметра.

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

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

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

 

Значения переменных:

  • enabled — определяет, включен фильтр или нет;
  • portпорт сервиса, на который ссылается Fail2ban (если используется порт по умолчанию — можно указать имя сервиса, если вы перенесли его на порт 3456 — замените ssh на 3456);
  • filter — фильтр, который будет использоваться;
  • logpath — расположение логов сервиса;
  • maxretry — перезапись глобального значения maxretry для определенного сервиса (также можно добавить findtime и bantime);
  • action — дополнительная настройка, если значение по умолчанию не подходит (дополнительные действия можно найти в каталоге /etc/fail2ban/action.d).

Пример настроек для защиты веб-сервера Apache

 

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

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

Удаление заблокированного IP из черного списка Fail2ban

Чтобы посмотреть статус работы fail2ban выполните команду:

 

Пример вывода:

 

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

 

Пример вывода:

 

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

 

Значения переменных:

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

Пример введенной команды:

Выводы

Установка и настройка Fail2ban оказалась довольно простой задачей. Потому практически каждый может обзавестись мощным инструментом защиты своей сети. Надеюсь, это руководство было полезным для вас!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

 

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Новости

Метки:

, , , , ,

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

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

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

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

Поиск по сайту
Лучшее
Популярное
Рубрики

Свежие комментарии

Меню