Обнаружение и предотвращение вторжений
Настройте системы обнаружения вторжений (IDS), такие как Fail2Ban, и изучите принципы работы систем предотвращения вторжений (IPS), чтобы активно защищать сервер.
«Обнаружение и предотвращение вторжений» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
За пределами межсетевых экранов: активная защита
Добро пожаловать на последний урок по безопасности серверов! Мы рассмотрели межсетевые экраны и аудит — важнейшие средства предотвращения атак. Но что, если решительный злоумышленник попытается обойти эту защиту?
В этом уроке рассматриваются системы обнаружения вторжений (IDS) и системы предотвращения вторжений (IPS). Эти инструменты обеспечивают дополнительный уровень активной защиты, помогая обнаруживать и останавливать вредоносную активность на сервере.
Что такое IDS
Система обнаружения вторжений (IDS) подобна охраннику, который постоянно следит за подозрительной активностью. Она отслеживает сетевой трафик сервера или системные журналы в поисках признаков атаки.
- Пассивный мониторинг: IDS обнаруживает угрозы и сообщает о них.
- Без блокировки: система не блокирует и не предотвращает вторжение напрямую. Её задача — только уведомить Вас.
- Примеры: такие инструменты, как Snort или Suricata, могут работать как сетевые IDS, анализируя входящие и исходящие данные.
Что такое IPS
Система предотвращения вторжений (IPS) развивает концепцию IDS. Вместо простого оповещения IPS активно вмешивается, чтобы остановить обнаруженные угрозы.
- Активная защита: система может автоматически блокировать вредоносные IP-адреса, завершать подозрительные подключения или отбрасывать опасные пакеты.
- Ориентация на предотвращение: цель состоит в том, чтобы в реальном времени не дать вторжению завершиться успешно.
- Fail2Ban: популярный пример IPS на уровне узла, которому посвящён этот урок.
Знакомство с Fail2Ban
Fail2Ban — мощная IPS с открытым исходным кодом, работающая на уровне узла. Она сканирует журнальные файлы (например, журналы SSH, веб-серверов или почтовых серверов) в поисках повторяющихся неудачных попыток входа и других подозрительных признаков.
Обнаружив слишком много неудачных попыток с одного IP-адреса за заданный промежуток времени, Fail2Ban автоматически обновляет правила межсетевого экрана сервера, временно или навсегда блокируя этот IP-адрес.
Как работает Fail2Ban
Fail2Ban использует три основных понятия:
- Фильтры: регулярные выражения, задающие признаки, которые нужно искать в журнальных файлах (например, «failed password for root»).
- Тюрьмы: тюрьма объединяет фильтр и действие. Она определяет, какой журнальный файл отслеживать, какой фильтр использовать и какое действие выполнять при выполнении условий фильтра.
- Действия: команды, выполняемые при блокировке IP-адреса; обычно они изменяют правила межсетевого экрана (например,
iptablesилиufw), чтобы заблокировать исходный IP-адрес.
Установка Fail2Ban
Fail2Ban доступен в стандартных репозиториях большинства дистрибутивов Linux. Установим его в системе на основе Debian, например Ubuntu.
Сначала обновите список пакетов, затем установите пакет fail2ban:
sudo apt update
sudo apt install fail2banБазовая настройка: jail.local
Основной файл конфигурации Fail2Ban — /etc/fail2ban/jail.conf. Однако никогда не редактируйте этот файл напрямую, поскольку он может быть перезаписан во время обновлений.
Вместо этого создайте копию с именем /etc/fail2ban/jail.local и вносите изменения в неё. Этот файл переопределяет настройки из jail.conf.
Ниже приведены некоторые основные глобальные настройки, которые можно задать в jail.local:
bantime: длительность блокировки IP-адреса (например,10m— 10 минут).findtime: период, в течение которого подсчитываются неудачные попытки (например,10m).maxretry: число неудачных попыток до блокировки IP-адреса (например,5).
Включение защиты SSH
Один из самых распространённых вариантов применения Fail2Ban — защита SSH от атак методом перебора. В файле /etc/fail2ban/jail.local Вы найдёте разделы для разных сервисов, называемые «тюрьмами».
Чтобы включить тюрьму SSH, обычно достаточно задать enabled = true в разделе [sshd]. Также можно настроить значения bantime, findtime и maxretry.
После редактирования перезапустите Fail2Ban, чтобы изменения вступили в силу:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
sudo systemctl restart fail2banМониторинг Fail2Ban
После настройки и запуска Fail2Ban проверьте его состояние и убедитесь, что он действительно блокирует IP-адреса. Для этого можно использовать команду fail2ban-client.
Чтобы проверить общее состояние Fail2Ban:
sudo systemctl status fail2banБыстрая проверка конфигурации Fail2Ban
Вы настроили Fail2Ban для защиты SSH-сервиса. Вы задали maxretry = 3 и bantime = 1h.
Злоумышленник пытается войти через SSH:
- Неудачный вход в 10:00:00
- Неудачный вход в 10:00:30
- Неудачный вход в 10:01:00
- Неудачный вход в 10:01:30
Предположим, что для findtime задано значение 10 минут. Что произойдёт с IP-адресом злоумышленника?
Повторение: IDS, IPS и Fail2Ban
Отличная работа! Вы научились добавлять к серверу активный уровень защиты:
- IDS (система обнаружения вторжений) обнаруживает подозрительную активность и сообщает о ней.
- IPS (система предотвращения вторжений) обнаруживает угрозы, сообщает о них и активно блокирует их.
- Fail2Ban — IPS на уровне узла, которая сканирует журналы в поисках вредоносных признаков и блокирует IP-адреса нарушителей, обновляя правила межсетевого экрана.
- Вы научились устанавливать Fail2Ban, настраивать глобальные параметры в
jail.local, включать отдельные тюрьмы (например, SSH) и отслеживать состояние системы.
Использование Fail2Ban значительно повышает устойчивость сервера к атакам методом перебора и другим автоматизированным угрозам. Продолжайте практиковаться, чтобы создавать действительно надёжные и защищённые системы!
Часто задаваемые вопросы
Урок «Обнаружение и предотвращение вторжений» бесплатный?
Да — полный текст урока «Обнаружение и предотвращение вторжений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Обнаружение и предотвращение вторжений»?
Настройте системы обнаружения вторжений (IDS), такие как Fail2Ban, и изучите принципы работы систем предотвращения вторжений (IPS), чтобы активно защищать сервер. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Обнаружение и предотвращение вторжений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Аудит безопасности сервера
- Расширенные правила брандмауэра (IPTables)
- Обнаружение и предотвращение вторжений
- Централизованное журналирование и интеграция с SIEM