Wazuh Agentless Monitoring - безагентный мониторинг

Безагентный мониторинг в Wazuh позволяет контролировать устройства и системы без установки агента. Wazuh подключается к конечной точке по протоколу SSH, выполняет проверки и передает результаты на сервер для анализа. Этот подход применяется для мониторинга сетевого оборудования (маршрутизаторы, коммутаторы, межсетевые экраны), legacy-систем Unix/BSD и других устройств, на которые невозможно или нецелесообразно устанавливать программное обеспечение.

Принцип работы

Безагентный мониторинг функционирует следующим образом:

  1. Сервер Wazuh устанавливает SSH-соединение с целевым устройством
  2. Выполняет заданную проверку (контрольная сумма файлов, вывод команды)
  3. Сравнивает результат с предыдущим (при использовании periodic_diff)
  4. Передает данные в движок анализа для сопоставления с правилами
  5. Генерирует алерт при обнаружении изменений или аномалий

Безагентный мониторинг настраивается исключительно на сервере Wazuh - на целевых устройствах не требуется установка дополнительного ПО, кроме SSH-сервера.

Предварительные требования

Настройка SSH-аутентификации

Для безагентного мониторинга необходима аутентификация по SSH-ключу. Создайте ключевую пару и распространите открытый ключ:

# Генерация ключа (на сервере Wazuh)
sudo -u wazuh ssh-keygen -t ed25519 -f /var/ossec/.ssh/id_ed25519 -N ""

# Копирование открытого ключа на целевое устройство
sudo -u wazuh ssh-copy-id -i /var/ossec/.ssh/id_ed25519.pub admin@192.168.1.1

Регистрация хоста

Зарегистрируйте устройство для безагентного мониторинга:

/var/ossec/agentless/register_host.sh add admin@192.168.1.1 NOPASS

Параметр NOPASS указывает на аутентификацию по ключу. При использовании пароля укажите его вместо NOPASS.

Включение безагентного мониторинга

В файле ossec.conf на сервере Wazuh включите модуль:

<agentless>
  <type>ssh_integrity_check_linux</type>
  <frequency>3600</frequency>
  <host>admin@192.168.1.1</host>
  <state>periodic_diff</state>
  <arguments>/etc /usr/bin /usr/sbin</arguments>
</agentless>

Конфигурация

Структура блока agentless

<agentless>
  <type>check_type</type>
  <frequency>seconds</frequency>
  <host>user@hostname</host>
  <state>periodic|periodic_diff</state>
  <arguments>arguments</arguments>
</agentless>

Параметры конфигурации

ПараметрОписание
typeТип проверки (см. поддерживаемые типы ниже)
frequencyИнтервал между проверками в секундах
hostУчетные данные и адрес: user@hostname
stateРежим анализа: periodic или periodic_diff
argumentsАргументы проверки (пути, команды)

Параметр state

  • periodic - результат проверки анализируется правилами при каждом выполнении
  • periodic_diff - текущий результат сравнивается с предыдущим, алерт генерируется при обнаружении различий

Поддерживаемые типы проверок

ssh_integrity_check_linux

Проверка целостности файлов на Linux-системах. Вычисляет контрольные суммы MD5 для указанных файлов и директорий.

<agentless>
  <type>ssh_integrity_check_linux</type>
  <frequency>3600</frequency>
  <host>admin@10.0.0.10</host>
  <state>periodic_diff</state>
  <arguments>/etc /usr/bin /usr/sbin</arguments>
</agentless>

При режиме periodic_diff Wazuh генерирует алерт при изменении контрольной суммы любого файла в указанных директориях.

ssh_integrity_check_bsd

Аналогичная проверка для BSD-систем (FreeBSD, OpenBSD, NetBSD). Использует команды, совместимые с BSD-утилитами.

<agentless>
  <type>ssh_integrity_check_bsd</type>
  <frequency>3600</frequency>
  <host>admin@10.0.0.20</host>
  <state>periodic_diff</state>
  <arguments>/etc /usr/local/bin</arguments>
</agentless>

ssh_generic_diff

Выполнение произвольной команды на удаленном устройстве и отслеживание изменений в выводе. Наиболее гибкий тип проверки.

<agentless>
  <type>ssh_generic_diff</type>
  <frequency>1800</frequency>
  <host>admin@10.0.0.30</host>
  <state>periodic_diff</state>
  <arguments>netstat -tulnp</arguments>
</agentless>

Дополнительные примеры:

<!-- Мониторинг таблицы маршрутизации -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>600</frequency>
  <host>admin@router-core.local</host>
  <state>periodic_diff</state>
  <arguments>ip route show</arguments>
</agentless>

<!-- Мониторинг ARP-таблицы -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>300</frequency>
  <host>admin@switch-access.local</host>
  <state>periodic_diff</state>
  <arguments>arp -a</arguments>
</agentless>

<!-- Мониторинг пользователей -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>3600</frequency>
  <host>admin@legacy-unix.local</host>
  <state>periodic_diff</state>
  <arguments>cat /etc/passwd</arguments>
</agentless>

ssh_pixconfig_diff

Специализированная проверка для маршрутизаторов Cisco PIX/ASA. Отслеживает изменения в конфигурации устройства.

<agentless>
  <type>ssh_pixconfig_diff</type>
  <frequency>3600</frequency>
  <host>enable_password:admin@10.0.0.1</host>
  <state>periodic_diff</state>
</agentless>

Для Cisco-устройств формат host включает enable-пароль перед именем пользователя: enable_password:user@host.

Практические сценарии

Мониторинг маршрутизаторов

Отслеживание изменений конфигурации и таблицы маршрутизации сетевых маршрутизаторов:

<!-- Конфигурация маршрутизатора -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>1800</frequency>
  <host>admin@router-01.local</host>
  <state>periodic_diff</state>
  <arguments>show running-config</arguments>
</agentless>

<!-- Таблица маршрутизации -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>600</frequency>
  <host>admin@router-01.local</host>
  <state>periodic_diff</state>
  <arguments>show ip route</arguments>
</agentless>

Мониторинг коммутаторов

<!-- Состояние портов -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>900</frequency>
  <host>admin@switch-01.local</host>
  <state>periodic_diff</state>
  <arguments>show interfaces status</arguments>
</agentless>

<!-- MAC-адресная таблица -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>300</frequency>
  <host>admin@switch-01.local</host>
  <state>periodic_diff</state>
  <arguments>show mac address-table</arguments>
</agentless>

Мониторинг legacy Unix-систем

Для систем, на которые невозможно установить агент (устаревшие версии ОС, ограниченные ресурсы):

<!-- Проверка целостности системных файлов -->
<agentless>
  <type>ssh_integrity_check_linux</type>
  <frequency>7200</frequency>
  <host>root@legacy-solaris.local</host>
  <state>periodic_diff</state>
  <arguments>/etc /usr/local/etc</arguments>
</agentless>

<!-- Мониторинг запущенных процессов -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>600</frequency>
  <host>root@legacy-solaris.local</host>
  <state>periodic_diff</state>
  <arguments>ps -ef</arguments>
</agentless>

<!-- Мониторинг crontab -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>3600</frequency>
  <host>root@legacy-solaris.local</host>
  <state>periodic_diff</state>
  <arguments>crontab -l 2>/dev/null; cat /etc/crontab</arguments>
</agentless>

Мониторинг межсетевых экранов

<agentless>
  <type>ssh_generic_diff</type>
  <frequency>1800</frequency>
  <host>admin@firewall.local</host>
  <state>periodic_diff</state>
  <arguments>iptables -L -n</arguments>
</agentless>

Мониторинг нескольких устройств

Для каждого устройства создается отдельный блок <agentless>. Множественные проверки одного устройства также допускаются:

<!-- Устройство 1: маршрутизатор -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>1800</frequency>
  <host>admin@10.0.0.1</host>
  <state>periodic_diff</state>
  <arguments>show running-config</arguments>
</agentless>

<!-- Устройство 2: коммутатор -->
<agentless>
  <type>ssh_generic_diff</type>
  <frequency>900</frequency>
  <host>admin@10.0.0.2</host>
  <state>periodic_diff</state>
  <arguments>show interfaces status</arguments>
</agentless>

<!-- Устройство 3: сервер Linux -->
<agentless>
  <type>ssh_integrity_check_linux</type>
  <frequency>3600</frequency>
  <host>root@10.0.0.3</host>
  <state>periodic_diff</state>
  <arguments>/etc /usr/bin</arguments>
</agentless>

Ограничения

Безагентный мониторинг имеет ряд ограничений по сравнению с агентным подходом:

ОграничениеОписание
Нет реального времениПроверки выполняются периодически, минимальный интервал ограничен
Нет Active ResponseНевозможно выполнить автоматическое реагирование
Нет FIMМониторинг целостности ограничен контрольными суммами
Нет SyscollectorИнвентаризация системы недоступна
Нет SCAОценка конфигурации безопасности недоступна
Зависимость от SSHТребуется доступ по SSH и предварительная настройка ключей
Нагрузка на серверВсе SSH-соединения инициируются с сервера Wazuh
Ограниченная масштабируемостьБольшое количество устройств нагружает сервер

Рекомендация: используйте агентный мониторинг для всех систем, где это возможно. Безагентный мониторинг является резервным вариантом для устройств, не поддерживающих установку агента.

Подробнее о возможностях агента: Установка агента Wazuh

Устранение неполадок

SSH-подключение не устанавливается

  • Проверьте сетевую доступность устройства: ping и ssh с сервера Wazuh
  • Убедитесь, что SSH-ключ скопирован на целевое устройство
  • Проверьте, что пользователь wazuh может подключиться: sudo -u wazuh ssh admin@device
  • Убедитесь, что хост зарегистрирован: проверьте /var/ossec/agentless/.passlist
  • Проверьте /var/ossec/logs/ossec.log на наличие ошибок модуля agentless

Изменения не обнаруживаются

  • Убедитесь, что <state> установлено в periodic_diff
  • Дождитесь минимум двух циклов проверки для формирования базовой линии
  • Проверьте, что команда в <arguments> возвращает ожидаемый вывод
  • Для проверки целостности убедитесь, что указанные пути существуют на целевом устройстве

Ошибка аутентификации на Cisco

  • Проверьте формат <host>: enable_password:user@host
  • Убедитесь, что enable-пароль корректен
  • Проверьте, что SSH включен на устройстве Cisco
  • Убедитесь, что пользователь имеет привилегии уровня 15

Высокая нагрузка на сервер Wazuh

  • Увеличьте <frequency> для снижения частоты проверок
  • Распределите проверки по времени, чтобы избежать одновременных подключений
  • Сократите количество путей в <arguments> для проверок целостности
  • Рассмотрите установку агента на устройства, где это возможно

Подробнее об архитектуре: Архитектура Wazuh

Подробнее о сборе логов: Сбор логов Wazuh

Last updated on