Wazuh - подключение хостов

Из статьи вы узнаете, как подключить Linux, Windows и MikroTik к SIEM-системе Wazuh. Для подключения будем использовать агентов и syslog.

Введение

В этой статье в качестве 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   .