Wazuh в Docker: установка, агент и первое правило

0
14
Обложка статьи: Wazuh в Docker: установка, агент и первое правило

Wazuh собирает журналы и события с узлов, применяет правила обнаружения и показывает результат в веб-интерфейсе. Ниже развёртывание на одном сервере через официальный репозиторий wazuh-docker, подключение агента и первое правило. Чем это отличается от мониторинга: SOC и SIEM против Zabbix.

Требования

  • Docker и Docker Compose, не менее 4 ядер и 8 ГБ ОЗУ для single-node (индексатору нужна память).
  • Место на диске под индексы. Следите за свободным местом: без него индексатор остановится.
  • Параметр ядра для индексатора.
sudo sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' | sudo tee /etc/sysctl.d/99-wazuh.conf

Шаг 1. Получите конфигурацию

git clone https://github.com/wazuh/wazuh-docker.git -b v4.14.8 --depth 1
cd wazuh-docker/single-node

Подставьте актуальную версию из релизов. Версии менеджера, индексатора и панели должны совпадать.

Шаг 2. Сертификаты и запуск

docker compose -f generate-indexer-certs.yml run --rm generator
docker compose up -d
docker compose ps

Панель по умолчанию доступна на https://HOST. Учётные данные по умолчанию (admin / SecretPassword в примере репозитория) нужно сменить сразу, по порядку, описанному в документации wazuh-docker. До смены не открывайте панель наружу.

Шаг 3. Закройте лишние порты

Порт Назначение Кому открыть
443 Панель Администраторам (VPN или список адресов)
1514/tcp События от агентов Адресам ваших серверов
1515/tcp Регистрация агентов Адресам серверов на время подключения
55000 API менеджера Только администраторам
9200 Индексатор Никому снаружи

Правила firewall: nftables и firewalld. Помните, что Docker обходит правила хоста для опубликованных портов, и привязывайте служебные порты к 127.0.0.1 в compose-файле: безопасность Docker.

Шаг 4. Подключите агент на Linux

Добавьте репозиторий Wazuh по официальной инструкции и установите агент с адресом менеджера:

sudo WAZUH_MANAGER="wazuh.example.com" apt install wazuh-agent
sudo systemctl daemon-reload
sudo systemctl enable --now wazuh-agent

Версия агента не должна быть выше версии менеджера. В панели в разделе агентов узел должен появиться со статусом Active.

Шаг 5. Первое собственное правило

Правила пишутся в /var/ossec/etc/rules/local_rules.xml внутри контейнера менеджера (или в примонтированном каталоге). Пример: поднять уровень события при неудачном входе в SSH под учётной записью admin.

<group name="local,syslog,sshd,">
  <rule id="100100" level="10">
    <if_sid>5716</if_sid>
    <user>admin</user>
    <description>SSH: неудачный вход под учётной записью admin</description>
  </rule>
</group>

Правило 5716 из набора по умолчанию соответствует неудачной аутентификации sshd. Идентификаторы пользовательских правил начинаются со 100000.

Как проверить

Проверьте правило без реальной атаки через инструмент разбора:

docker exec -it single-node-wazuh.manager-1 /var/ossec/bin/wazuh-logtest

Вставьте строку вида Oct 11 10:00:00 host sshd[1234]: Failed password for admin from 203.0.113.5 port 5555 ssh2. В ответе должен сработать ваш 100100. Затем перезапустите менеджер (/var/ossec/bin/wazuh-control restart внутри контейнера) и вызовите событие с тестового узла. Оповещение появится в панели. Имя контейнера зависит от версии compose, найдите его в docker ps.

Оставьте свой ответ