Как защитить Linux-сервер: легковесный, бесплатный, простой EDR-агент Open Defender

Подробный обзор лёгкого open-source агента: мониторинг, реакция на атаки, eBPF-аудит и планы развития

Логотип Open Defender

Зачем серверу постоянный мониторинг

Новый VPS почти сразу попадает в поле зрения автоматических сканеров. Они перебирают SSH-пароли, ищут открытые панели, проверяют веб-пути, версии сервисов и доступные базы данных. Для небольшого сервера это часто выглядит как шум в логах, пока не наступает перегрузка, утечка или компрометация.

Полноценный SIEM или сложные EDR-агенты полезны, но требуют отдельной инфраструктуры, времени на настройку и сопровождение. На одном сервере или в небольшой команде это нередко оказывается непропорционально задачам. В результате между обычными логами и дорогой платформой остаётся пустое место.

Open Defender занимает именно это место. Это бесплатный open-source инструмент мониторинга и аудита Linux-серверов. Он устанавливается 1 командой, запускается как systemd-сервис, может работать полностью локально и потребляет совсем малое количество ресурсов.

Цели проекта

Open Defender строится вокруг трёх идей. Первая: защита должна быть простой в развёртывании. Агент не требует обязательных базы данных, очереди сообщений, облачного аккаунта или отдельного сервера для панели. Вторая: защита должна иметь возможность работать локально. Если сеть недоступна, мониторинг и блокировка на хосте продолжают работать. Третья: автоматизацию нужно включать постепенно, после наблюдения за реальной средой.

Open Defender осуществляет мониторинг и реализует базовые блокировки, но не заменяет обновления ПО, резервные копии, безопасную настройку SSH, сегментацию, WAF и контроль привилегий. Его задача: заметить отклонение, сохранить контекст события и автоматизировать блокировку там, где правило достаточно надёжно.

Такой подход особенно полезен там, где ложная блокировка опаснее лишней пропущенного сканирования. Сначала администратор смотрит реальные события, настраивает пороги и белые списки. Затем переводит проверенные сценарии в автоматическое блокирование.

Однако стандартные правила для некоторых сценариев уже встроены, а адреса самой системы автоматически добавляются в белый список, для повышения удобства и скорости настройки.

Мониторы, доступные сейчас

SSH-антибрутфорс

SSH-монитор анализирует неудачные авторизации. Для него задаются число попыток, временное окно и длительность блокировки. Когда один адрес превышает порог, агент создаёт событие. В режиме blocker источник атаки блокируется через межсетевой экран. Доверенные адреса и сети можно исключить из проверки.

Веб-сервисы и базы данных

Веб-мониторы ищут признаки разведки и перебора учётных данных по журналам веб-сервера. Монитор базы данных умеет получать события из syslog, systemd journal или Docker-логов. Источник событий и пороги задаются в конфигурации, поэтому правила можно адаптировать под конкретный стек, а не привязываться к одному сервису.

Контроль нагрузки

Ресурсный монитор следит за CPU и памятью. При превышении заданных уровней он сохраняет сведения о наиболее нагруженных процессах. Это помогает отличить последствия атаки от проблем приложения, обновления или неудачной фоновой задачи. Вместо догадок у администратора остаётся снимок состояния в момент перегрузки.

eBPF-мониторинг

eBPF позволяет получать часть событий близко к ядру Linux без написания модуля ядра. Сейчас направление eBPF используется для обнаружения сетевой разведки. Оно дополняет логи приложений: попытки просканировать сервисы зачастую не видны в журналах, однако отлично видны в трафике.

Режимы реакции

У каждого монитора свой режим. На одном сервере можно автоматически блокировать очевидный SSH-брутфорс, но только логировать подозрительные запросы к новому веб-приложению.

  • logger фиксирует событие без блокировки. Это безопасный режим для аудита и подбора порогов.
  • blocker фиксирует событие и автоматически блокирует источник атаки.
  • disabled выключает монитор полностью. Он не запускается и не потребляет ресурсы.

Перед включением blocker стоит поработать в режиме logger. В любой инфраструктуре сначала нужно проверить, какой IP-адрес попадает в журнал, и добавить доверенные сети в исключения. Это помогает не принять адрес промежуточного узла за адрес клиента и не заблокировать полезный трафик.

Установка и эксплуатация

Для быстрого старта есть сценарий по адресу /get. Он определяет архитектуру сервера, загружает подходящий файл в /usr/bin/open-defender, выдаёт ему права на выполнение и устанавливает сервис. Скрипт открыт и доступен по тому же адресу, поэтому его содержимое можно проверить до запуска.

curl -sSL https://light-defender.ru/get | sudo bash

Основная конфигурация находится в /etc/open-defender/config.yaml. После изменений сначала проверьте её. Команда только читает файл, показывает проблемы и ничего не перезаписывает:

open-defender -t

Команда ниже выводит включённые мониторы, их режимы, источники событий и настроенные пороги:

open-defender -s

Для обновления установленного файла используется sudo open-defender -u, для перезапуска сервиса: sudo open-defender -r. Полные примеры конфигураций и параметры доступны в документации.

Безопасный порядок первого запуска

  1. Установите агент и выполните open-defender -t.
  2. Включите только мониторы, для которых на сервере действительно есть нужные журналы или сервисы.
  3. Оставьте новые правила в режиме logger и наблюдайте за ними несколько дней.
  4. Добавьте в белый список адреса администраторов, VPN, балансировщиков и доверенные подсети.
  5. Уточните пороги по реальной нагрузке, затем включите blocker для подтверждённых сценариев.

Готовых универсальных значений не существует. Пять ошибок аутентификации SSH за пять минут могут быть брутфорсом на одном сервере и ошибкой в настройках автоматизации на другом. Правила защиты желательно настраивать с учётом особенностей узла, на котором оно устанавливается.

Опциональный экспорт событий в Dashboard

Open Defender может работать на одном сервере и никуда не подключаться. Если в config.yaml нет секции exporter (или она помечена как disabled), агент не отправляет события во внешний сервис. Даже при включённом экспорте недоступный Dashboard не задерживает локальное обнаружение и блокировку.

Light Defender Dashboard удобен как одного сервера, так и для нексольких: события не нужно искать в консоли и журналах, а уведомление о подозрительной активности сразу приходит на телефон. В панели можно смотреть историю событий и менять конфигурацию без отдельного входа по SSH.

Передача выполняется через зашифрованное алгоритмом RSA WebSocket-соединение которое вдобавок передаётся через TLS.

Куда развивается Open Defender

Долгосрочная цель проекта: объединить мониторинг, реагирование на распространённые атаки и аудит состояния Linux-сервера в простой инструмент.

Также планируется расширение eBPF-аудита. Планируются наблюдение за запуском команд, появлением новых модулей ядра, cron-задач и systemd-сервисов, а также за изменениями в .profile, rc-файлах и других точках автоматического запуска. Такие события важны для поиска закрепления и неожиданных действий на уже работающем сервере. Для части сценариев предполагается автоматическая блокировка.

Второе крупное направление: Security Audit Mode. Он должен проверять саму конфигурацию хоста и подсвечивать слабые настройки сервисов, небезопасные конфигурации и слабые пароли до того, как ими воспользуются. Ближайшие открытые задачи проекта: поддержка nftables и firewalld как движков блокировки, импорт конфигураций из нескольких файлов и увеличение тестового покрытия.

Где полезен инструмент?

Open Defender подойдёт владельцам VPS, разработчикам, системным администраторам и небольшим командам, которым нужен легковесный агент без тяжёлого внедрения.

При этом он не заменяет расследование инцидентов, резервное копирование, централизованный сбор логов и процессы реагирования. Если сервер уже скомпрометирован, сначала сохраните артефакты и локализуйте угрозу.

Исходный код, релизы, открытые задачи и технические детали доступны в репозитории Open Defender на GitHub. Это позволяет свериться с реальным состоянием проекта, изучить его поведение и предложить улучшения.