Wazuh Agentless Monitoring - безагентный мониторинг
Безагентный мониторинг в Wazuh позволяет контролировать устройства и системы без установки агента. Wazuh подключается к конечной точке по протоколу SSH, выполняет проверки и передает результаты на сервер для анализа. Этот подход применяется для мониторинга сетевого оборудования (маршрутизаторы, коммутаторы, межсетевые экраны), legacy-систем Unix/BSD и других устройств, на которые невозможно или нецелесообразно устанавливать программное обеспечение.
Принцип работы
Безагентный мониторинг функционирует следующим образом:
- Сервер Wazuh устанавливает SSH-соединение с целевым устройством
- Выполняет заданную проверку (контрольная сумма файлов, вывод команды)
- Сравнивает результат с предыдущим (при использовании
periodic_diff) - Передает данные в движок анализа для сопоставления с правилами
- Генерирует алерт при обнаружении изменений или аномалий
Безагентный мониторинг настраивается исключительно на сервере 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