Продолжаем серию статей на тему обеспечения безопасности сети. В этот раз мы подробно рассмотрим, как осуществляются установка и настройка Fail2ban — приложения, которое мониторит системные логи. И обнаруживает автоматизированные атаки на операционную систему или сеть.
Содержание:
- Как работает приложение Fail2ban
- Установка Fail2ban
- Настройка Fail2ban
- Удаление заблокированного IP из черного списка Fail2ban
- Выводы
Как работает приложение 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
следующие настройки:
destemail
— email-адрес, на который Вы хотите, чтобы отправлялись письма;sendername
— имя, которое будет указываться в письме;sender
— email-адрес, с которого приложение будет отправлять письма;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 с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.