Установка и настройка 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

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

Установка Fail2ban

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

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

Установка на дистрибутив CentOS 7

На компьютеры под управлением дистрибутива CentOS 7 установка Fail2ban осуществляется следующим с помощью команды yum install fail2ban:

 

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

 

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

 

 

 

Установка на дистрибутивы Debian или Ubuntu

Для установки Fail2ban на компьютеры под управлением дистрибутивов Debian или Ubuntu введите в командную строку команду apt install fail2ban(предварительно может потребоваться обновить данные о доступных пакетах ПО и установить обновления с помощью команд apt update и apt upgrade):

 

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

Для автоматизированной отправки email также устанавливаем Sendmail. Для этого введите в командную строку команду apt install sendmail-bin sendmail:

Установка на дистрибутив Fedora

Для установки Fail2ban на компьютеры под управлением дистрибутива Fedora введите в командную строку команду dnf install fail2ban:

 

Далее также устанавливаем Sendmail. Для этого введите в командную строку команду dnf install sendmail:

 

Запускаем Fail2ban и, если нужно, Sendmail. Для этого вводим в командную строку следующие команды: 

 

 

 

Настройка Fail2ban

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

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

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

Для начала перейдите в директорию /etc/fail2ban. Для этого введите в командную строку команду cd с соответствующим аргументом:

 

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

 

Далее следует открыть файл /etc/fail2ban/fail2ban.local в текстовом редакторе (мы для примера использовали nano, однако подойдет и vim). Для этого введите в командную строку команду nano с соответствующим аргументом:

 

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

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

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

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

 

Далее файл /etc/fail2ban/jail.local следует также открыть в текстовом редакторе (мы снова использовали nano). Для этого введите в командную строку команду nano с соответствующим аргументом:

 

Важно: если Вы используете 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 — введите в командную строку команду sendmail с опцией -t:

 

 

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

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

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

Пример настроек в файле для защиты SSH

Для защиты соединений по протоколу SSH следует добавить в файл jail.local следующие значения параметров:

 

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

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

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

Для защиты веб-сервера Apache следует добавить в файл jail.local следующие значения параметров:

 

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

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

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

В будущем возможны ситуации, при которых Fail2ban будет блокировать за подозрительную активность безопасные IP-адреса. Чтобы посмотреть статус работы программы — введите в командную строку команду fail2ban-client status:

 

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

 

Чтобы посмотреть статус конкретного джайла (например sshd) — введите в командную строку команду fail2ban-client status sshd:

 

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

 

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

 

Давайте проанализируем аргументы этой команды:

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

Пример реальной команды для разблокировки IP-адреса, заблокированного утилитой Fail2ban:

Выводы

Установка и настройка 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.
Вы должны согласиться с условиями для продолжения


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