Документация Open Defender
Установка, настройка и эксплуатация open-source инструмента для мониторинга и аудита безопасности Linux-серверов.
Быстрый старт
Разверните Open Defender на Linux-сервере за пару минут: скачайте бинарник из релизов, установите его как systemd-сервис и проверьте конфигурацию.
Скачайте бинарник
Скрипт сам определит архитектуру через uname -m (amd64, 386, arm64, arm32) и скачает нужный бинарник в /usr/bin/open-defender.
ARCH=$(uname -m) case "$ARCH" in x86_64) ARCH=amd64 ;; i386|i686) ARCH=386 ;; aarch64|arm64) ARCH=arm64 ;; armv7l|armv6l) ARCH=arm32 ;; *) echo "Неизвестная архитектура: $ARCH"; exit 1 ;; esac sudo curl -L -o /usr/bin/open-defender \ https://github.com/fridalif/open-defender/releases/latest/download/open-defender_$ARCH sudo chmod +x /usr/bin/open-defender
Хотите выбрать вручную - подставьте свою архитектуру вместо $ARCH или скачайте файл со страницы релизов.
Установите как сервис
Флаг -i устанавливает Open Defender как systemd-сервис и сразу запускает его. Требуются права root.
sudo open-defender -i
Проверьте конфигурацию
Конфигурация лежит в /etc/open-defender/config.yaml. Флаг -t проверяет её и выводит все найденные проблемы (root не нужен).
open-defender -t
Посмотрите активные мониторы
open-defender -s
Установка
Open Defender поставляется единым бинарником и интегрируется с systemd. Установка и запуск выполняются одной командой.
Получите бинарник
Тот же скрипт определяет архитектуру автоматически и кладёт бинарник в /usr/bin/open-defender. Как альтернатива - соберите из исходников (см. раздел «Сборка из исходников») или скачайте нужный файл со страницы релизов.
ARCH=$(uname -m) case "$ARCH" in x86_64) ARCH=amd64 ;; i386|i686) ARCH=386 ;; aarch64|arm64) ARCH=arm64 ;; armv7l|armv6l) ARCH=arm32 ;; *) echo "Неизвестная архитектура: $ARCH"; exit 1 ;; esac sudo curl -L -o /usr/bin/open-defender \ https://github.com/fridalif/open-defender/releases/latest/download/open-defender_$ARCH sudo chmod +x /usr/bin/open-defender
Установите сервис
Флаг -i регистрирует systemd-юнит и запускает его.
sudo open-defender -i
Управляйте сервисом через systemd
systemctl status open-defender sudo systemctl restart open-defender journalctl -u open-defender -f
Быстрый перезапуск также доступен через sudo open-defender -r.
Конфигурация
Все настройки хранятся в YAML-файле /etc/open-defender/config.yaml. Каждый монитор задаёт движок получения событий, источник и пороги срабатывания.
Режимы монитора
blocker- обнаруживает и блокирует источник атаки (бан по времени).logger- только фиксирует события, без блокировки.disabled- монитор выключен и не запускается.
Ключевые параметры
engine- источник событий:syslog,journalилиdocker.log_path/unit_name- файл лога дляsyslogили юнит дляjournal/docker.pattern- регулярное выражение с обязательной группой(?P<ip>...).tries/window_seconds/ban_seconds- порог попыток, окно и длительность бана.ip_whitelist- адреса, которые никогда не блокируются.- Для
resource_monitor- порогиwarning/alertпо CPU и RAM (нулевые значения выключают лимит).
Открыть конфигурацию
sudo nano /etc/open-defender/config.yaml
open-defender -t - конфиг только читается и никогда не перезаписывается, так что проверка безопасна на живой установке.Мониторы
Команда open-defender -s выводит включённые мониторы с их режимом, движком, источником и порогами. Выключенные (disabled) перечисляются внизу и не запускаются.
open-defender -s
/etc/open-defender/config.yaml MONITOR MODE ENGINE SOURCE TRIES ssh_monitor blocker syslog /var/log/auth.log 5 in 300s, ban 900s database_monitor logger journal postgresql 5 in 300s resource_monitor enabled - /var/log/open-defender/ cpu 60/90, ram 60/90 disabled: web_recon_monitor, web_brute_monitor
ssh_monitorАнти-брутфорс SSH по логам входа.
web_recon_monitorОбнаружение разведки веб-приложений (AntiRecon).
web_brute_monitorОбнаружение брутфорса веб-приложений (AntiBrute).
database_monitorАнти-брутфорс баз данных через syslog/journal/docker.
resource_monitorКонтроль CPU и RAM с топом процессов при перегрузке.
CLI-команды
Полный набор флагов. Команды -t, -s и -h не требуют root, остальным нужны права суперпользователя.
Usage: open-defender [options] Options: -i, --install установить open-defender как systemd-сервис и запустить -u, --update обновить бинарник до последнего релиза с GitHub -t, --test проверить текущий конфиг и выйти -s, --status показать включённые мониторы и выйти -r, --restart перезапустить сервис open-defender -h, --help показать это сообщение
-i / --installrootУстановка сервиса и запуск.
-u / --updaterootОбновление бинарника из релиза.
-r / --restartrootПерезапуск сервиса.
-t / --testПроверка конфигурации.
-s / --statusСписок активных мониторов.
-h / --helpСправка по командам.
Обновление
Флаг -u обновляет установленный бинарник до последнего релиза с GitHub. Версия берётся из version.txt репозитория, архитектура - из текущего бинарника.
sudo open-defender -u
Версия и архитектура предлагаются как подсказка: пустая строка принимает предложенное значение, ввод - переопределяет его. Если определить их не удалось, они запрашиваются явно.
Релиз скачивается из https://github.com/fridalif/open-defender/releases/download/<version>/open-defender_<arch>, затем сервис останавливается, бинарник в /usr/bin/open-defender заменяется, и сервис запускается снова.
Загрузка происходит до остановки сервиса, а прежний бинарник сохраняется и возвращается на место, если новый не стартует.
Сборка из исходников
Для сборки нужны Go 1.25+ и C-компилятор (gcc), поскольку драйвер SQLite - cgo-пакет.
Клонируйте репозиторий
git clone https://github.com/fridalif/open-defender.git cd open-defender
Соберите бинарник
Бинарник собирается в build/open-defender.
make build
Запустите тесты (опционально)
make test # все тесты make test-race # тесты под race-детектором make cover # покрытие по функциям make vet # go vet make check # go vet + тесты
Нужна помощь?
Задавайте вопросы и предлагайте улучшения через GitHub Issues или напишите нам напрямую.