Wazuh - подключение хостов
Введение
В этой статье в качестве Linux используется дистрибутив Debian 13, а в качестве Windows - Windows 10 22H2. На других системах установка и настройка может немного отличаться.
На Linux в статье показаны 2 возможных сценария:
- Отправка логов по протоколу syslog.
- Использование агента, который не просто пересылает логи, а также собирает и отправляет на сервер некоторую телеметрию для анализа.
Для Windows показан только вариант с использованием агента, хотя отправлять логи по syslog технически тоже можно.
Также в статье показана настройка отправки логов с роутеров MikroTik по протоколу syslog.
Настройка syslog на Linux
Как включить сбор логов по протоколу syslog я писал в этой статье .
Установим rsyslog:
# apt install rsyslog
Настроим отправку логов на сервер:
# nano /etc/rsyslog.d/wazuh.conf
*.* @YOUR_SERVER_IP:514
Перезапустим службу:
# systemctl restart rsyslog
После этого сервер Wazuh начнёт принимать логи. Агентом в этом случае будет считаться сам сервер Wazuh, а источником логов удалённый сервер на Debian.
Настройка агента на Linux
На сервере переходим в меню Agent management / Summary.

И нажимаем Deploy new agent:

Проходим мастер добавления нового агента:

Указываем адрес сервера Wazuh, а не хоста, на который собираемся устанавливать агента:

Придумываем имя агента (можем указать hostname хоста):

Ниже увидим команду, которую нужно будет выполнить на хосте:
$ wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.7-1_amd64.deb \
&& sudo WAZUH_MANAGER='<IP-SRV-WAZUH>' \
WAZUH_AGENT_NAME='srv-debian' \
dpkg -i ./wazuh-agent_4.14.7-1_amd64.deb
- В команде подставьте IP-адрес вашего сервера Wazuh.
Запустим службу:
$ sudo systemctl daemon-reload
$ sudo systemctl enable wazuh-agent
$ sudo systemctl start wazuh-agent
Проверим статус агента:
$ systemctl status wazuh-agent
● wazuh-agent.service - Wazuh agent
Loaded: loaded (/usr/lib/systemd/system/wazuh-agent.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-09-01 09:47:17 MSK; 43s ago
Invocation: 890e0e73fdbc402db2969a315fc03a88
Process: 926702 ExecStart=/usr/bin/env /var/ossec/bin/wazuh-control start (code=exited, status=0/SUCCESS)
Process: 927402 ExecReload=/usr/bin/env /var/ossec/bin/wazuh-control reload (code=exited, status=0/SUCCESS)
Tasks: 35 (limit: 4655)
Memory: 572M (peak: 573.1M)
CPU: 16.679s
CGroup: /system.slice/wazuh-agent.service
├─926732 /var/ossec/bin/wazuh-agentd
├─927469 /var/ossec/bin/wazuh-execd
├─927480 /var/ossec/bin/wazuh-syscheckd
├─927490 /var/ossec/bin/wazuh-logcollector
├─927506 /var/ossec/bin/wazuh-modulesd
├─927995 sh -c -- "/bin/ps -p 642 > /dev/null 2>&1"
└─927996 /bin/ps -p 642
После этого возвращаемся в веб-интерфейс Wazuh и нажимаем Back to agent list.

- В моём случае уже был один агент на Ubuntu 18, и только что подключили Debian 13.
Настройка агента на Windows
На сервере Wazuh переходим в меню Agent management / Summary и нажимаем Deploy new agent. Проходим мастер:

Указываем адрес сервера Wazuh, а не хоста, на который собираемся устанавливать агента:

Придумываем имя агента (можем указать hostname хоста):

Ниже видим команду, которую нужно запустить на Windows в PowerShell:
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.14.7-1.msi -OutFile $env:tmp\wazuh-agent; msiexec.exe /i $env:tmp\wazuh-agent /q WAZUH_MANAGER='<IP-SRV-WAZUH>' WAZUH_AGENT_NAME='srv-win10'
❗ У меня по какой-то причине не сработало скачивание с помощью Invoke-WebRequest. Я скачал установщик в браузере, затем выполнил:
msiexec.exe /i "$env:USERPROFILE\Downloads\wazuh-agent-4.14.7-1.msi" /q WAZUH_MANAGER="<IP-SRV-WAZUH>" WAZUH_AGENT_NAME="srv-win10"
Запустим агента:
NET START Wazuh
После установки вы можете найти в меню Пуск приложение Manage Agent, статус агента должен быть Running:

Возвращаемся в веб-интерфейс Wazuh и нажимаем Back to agent list.

- Видим только что добавленного агента.
Настройка syslog на MikroTik
Подключаемся к MikroTik с помощью Winbox и переходим в меню System / Logging. Затем на вкладке Actions добавляем новый Action.

- Name - можете придумать сами, у меня wazuh;
- Target - remote;
- Remote Address - адрес сервера Wazuh;
- Remote Port - порт для syslog (по умолчанию 514).
Затем на вкладке Rules создадим правила отправки логов на Wazuh:

После этого логи начнут передаваться на сервер. Но в веб-интерфейсе мы увидим только те логи, для которых сработали алерты. А так как для MikroTik нет предустановленных правил, то мы почти ничего не увидим (разве что неудачные попытки входа - это стандартный алерт для Syslog). Поэтому создадим декодеры и правила для MikroTik.
Создаём декодеры /var/ossec/etc/decoders/local_decoder.xml:
<!-- ==================== MIKROTIK ==================== -->
<!-- MikroTik successful login -->
<decoder name="mikrotik-login">
<prematch>^\w+,\w+,\w+ user \S+ logged in from</prematch>
<regex>^\w+,\w+,\w+ user (\S+) logged in from (\S+) via (\S+)</regex>
<order>srcuser,srcip,mikrotik.login_method</order>
</decoder>
<!-- Logout -->
<decoder name="mikrotik-logout">
<prematch>^\w+,\w+,\w+ user \S+ logged out</prematch>
<regex>^\w+,\w+,\w+ user (\S+) logged out</regex>
<order>srcuser</order>
</decoder>
<!-- Базовый MikroTik decoder -->
<decoder name="mikrotik">
<prematch>^\w+,\w+</prematch>
</decoder>
Создаём правила /var/ossec/etc/rules/local_rules.xml:
<group name="mikrotik,syslog,">
<!-- Успешный вход -->
<rule id="100101" level="5">
<decoded_as>mikrotik-login</decoded_as>
<description>Mikrotik: User $(srcuser) logged in from $(srcip) via $(mikrotik.login_method)</description>
<group>authentication_success,</group>
</rule>
<!-- Выход -->
<rule id="100102" level="3">
<decoded_as>mikrotik-logout</decoded_as>
<description>Mikrotik: User $(srcuser) logged out</description>
<group>authentication_logout,</group>
</rule>
<!-- Изменение конфигурации -->
<rule id="100105" level="7">
<decoded_as>mikrotik</decoded_as>
<match>changed by|configuration changed</match>
<description>Mikrotik: Configuration changed</description>
<group>config_change,</group>
</rule>
</group>
Перезапускаем сервер:
# systemctl restart wazuh-manager.service
Что такое декодер и правило
Так как я для MikroTik создавал отдельные декодеры и правила, то расскажу про это подробнее. Удобно воспринимать это как цепочку:
MikroTik
│
│ Syslog
▼
Wazuh Manager
│
▼
ДЕКОДЕР
Расспазнаёт структуру сообщения и извлекает из него отдельные поля
│
▼
ПРАВИЛО
Анализирует события, определяет тип и уровень важности, создаёт алерт
│
▼
ALERT
Событие безопасности Wazuh
Decoder (декодер) отвечает за распознавание структуры входящего сообщения и извлечение из него отдельных полей.
sep/01/2026 10:20:15 router1,info,account user admin logged in from 192.168.1.50 via winbox
|
| После работы декодера
▼
srcuser = admin
srcip = 192.168.1.50
mikrotik.login_method = winbox
Правило отвечает: «Что мне делать с этим сообщением?» Если декодер определил событие как mikrotik-login, считать его событием уровня 5 и создать понятное описание.
В результате Wazuh получает уже не просто Syslog:
user admin logged in from 192.168.1.50 via winbox
а нормализованное событие:
Rule ID: 100101
Level: 5
Mikrotik: User admin logged in from 192.168.1.50 via winbox
И это уже можно искать и анализировать в Wazuh. В моём случае:
Успешный вход → level 5
Выход пользователя → level 3
Изменение конфигурации → level 7
Декодеры разбирают исходные Syslog-сообщения и извлекают из них полезные поля. Правила анализируют полученные события, определяют их тип и уровень важности и формируют алерты.
Если понравилась статья, подпишись на мой канал в VK или Telegram .