MAATRIX / Блог / Wazuh на Ubuntu 24.04: пошаговая установка

Wazuh на Ubuntu 24.04: пошаговая установка

MAATRIX

Если вам нужно видеть, что происходит на серверах и рабочих станциях — кто логинился, какие файлы менялись, какие уязвимости висят непрошитыми — но покупать Splunk или QRadar бюджет не позволяет, разумный выбор один: Wazuh. Это открытая SIEM/XDR-платформа, которая собирает логи, следит за целостностью файлов, ищет уязвимости и умеет закрывать угрозы автоматически. Ниже — рабочая установка на чистой Ubuntu 24.04, без сокращений и без «магии», которая ломается через неделю.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что такое Wazuh и когда он оправдан

Wazuh вырос из форка OSSEC и сейчас закрывает сразу несколько задач: анализ логов (SIEM), мониторинг целостности файлов (FIM), обнаружение уязвимостей по установленным пакетам, контроль конфигураций (CIS-бенчмарки) и активное реагирование на инциденты (XDR). Архитектурно это три компонента:

  • Wazuh indexer — хранилище и поисковый движок на базе форка OpenSearch, здесь оседают все события;
  • Wazuh server (manager) — мозг системы: принимает данные от агентов, прогоняет их через правила корреляции, отдаёт API;
  • Wazuh dashboard — веб-интерфейс для просмотра алертов, графиков и управления агентами;
  • Wazuh agent — лёгкий клиент, который ставится на защищаемые машины и шлёт события менеджеру.

Для одного сервера или небольшой инфраструктуры (до нескольких десятков хостов) все три серверных компонента разворачиваются на одной VPS — это и называется all-in-one установкой, её и разберём. Если агентов станет много (сотни и больше), компоненты потом можно разнести по отдельным машинам — Wazuh это позволяет без переустановки с нуля.

Типичные сценарии: соответствие требованиям (PCI DSS, ГОСТ по ИБ, внутренние политики compliance), контроль целостности критичных конфигов, единая точка сбора логов с нескольких серверов, обнаружение брутфорса и подозрительной активности с автоматической блокировкой IP.

Требования к серверу и подготовка Ubuntu 24.04

Индексер — самый прожорливый компонент: он держит в памяти индексы и Java-процесс с собственной кучей. Ориентиры (не жёсткие цифры — под вашу нагрузку может понадобиться больше или меньше):

СценарийvCPURAMДиск
Тест / до 10 агентов24 ГБ40 ГБ SSD
Небольшая прод-нагрузка, 10–50 агентов48 ГБ80–100 ГБ SSD
50+ агентов, длинное хранение логов4+16 ГБ+200 ГБ+ SSD/NVMe

При 4 ГБ RAM всё поднимется, но индексер будет работать на грани — если увидите падения по OOM, либо добавляйте RAM, либо временно подключайте swap, пока не разберётесь с нагрузкой.

Дальше — подготовка системы:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg apt-transport-https lsb-release
sudo hostnamectl set-hostname wazuh-server
timedatectl set-timezone Europe/Moscow

Индексер (форк OpenSearch) требует увеличенный лимит памяти на процесс — без этого он не стартует:

echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -w vm.max_map_count=262144

Откройте нужные порты в файрволе — если ещё не настраивали ufw, сначала пройдите базовую защиту Ubuntu 24.04 от взлома и настройку ufw, затем добавьте правила под Wazuh:

sudo ufw allow 443/tcp    # дашборд
sudo ufw allow 1514/tcp   # события от агентов
sudo ufw allow 1515/tcp   # регистрация агентов
sudo ufw allow 55000/tcp  # Wazuh API (лучше ограничить по IP)
sudo ufw reload

Порт индексера (9200) наружу не открывайте — он работает на localhost, обращаться к нему извне не нужно.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Установка Wazuh: all-in-one скрипт

Официальный путь для одного сервера — установочный скрипт, который ставит и настраивает все три компонента, генерирует TLS-сертификаты и пароли за один проход:

curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash ./wazuh-install.sh --all-in-one

Процесс идёт в несколько этапов и занимает от 10 до 20 минут в зависимости от мощности сервера: сначала ставится и стартует indexer, затем server (manager) с API, в конце — dashboard. Скрипт сам добавляет официальный репозиторий Wazuh (packages.wazuh.com) и подписывающий GPG-ключ, так что вручную репозиторий подключать не нужно.

По завершении скрипт создаёт архив wazuh-install-files.tar с сертификатами и файлом паролей всех внутренних пользователей (admin дашборда, служебные аккаунты индексера). Обязательно сохраните его в безопасное место (менеджер паролей, зашифрованный бэкап) и удалите с сервера:

sudo tar -xf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt -O
# скопировали пароли — теперь чистим
sudo rm wazuh-install-files.tar

Если что-то пошло не так на середине — скрипт можно перезапускать, он идемпотентен и пропускает уже установленные шаги. Логи установки лежат в /var/log/wazuh-install.log.

Проверка сервисов и первый вход

Убедитесь, что все три сервиса запущены и добавлены в автозагрузку:

sudo systemctl status wazuh-indexer
sudo systemctl status wazuh-manager
sudo systemctl status wazuh-dashboard

Быстрая проверка индексера изнутри сервера (замените пароль на свой из файла паролей):

curl -k -u admin:ВАШ_ПАРОЛЬ https://localhost:9200

В ответ должен прийти JSON с версией кластера. Если вместо этого connection refused — скорее всего, индексер не стартовал из-за нехватки памяти или незаданного vm.max_map_count; смотрите journalctl -u wazuh-indexer -n 100.

Дашборд открывается по адресу https://IP_ВАШЕГО_СЕРВЕРА — браузер предупредит про самоподписанный сертификат (это нормально для внутреннего сервиса, сертификат можно позже заменить на Let's Encrypt через reverse-proxy). Логин — admin, пароль — из того же файла wazuh-passwords.txt. Смените пароль администратора сразу после первого входа через раздел управления пользователями индексера.

Подключение агентов

Без агентов Wazuh видит только собственные логи сервера — основная польза начинается, когда подключены защищаемые машины. Самый быстрый способ — через дашборд: раздел Agents management → Deploy new agent. Там выбираете ОС агента (Linux, Windows, macOS), архитектуру и получаете готовую команду с адресом менеджера и ключом.

Пример для Ubuntu/Debian-агента:

curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.x_amd64.deb
sudo WAZUH_MANAGER='IP_МЕНЕДЖЕРА' dpkg -i ./wazuh-agent_4.x_amd64.deb
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

Точную версию пакета и точный URL всегда берите из вывода дашборда — там подставляется актуальная на момент вашей установки ветка, вручную версию не угадывайте.

Для Windows-хостов процесс аналогичный — MSI-инсталлятор с параметрами WAZUH_MANAGER и WAZUH_REGISTRATION_SERVER, ставится через PowerShell от администратора. После установки агент появится в списке Agents дашборда со статусом Active — если статус Never connected, проверьте, что порты 1514/1515 доступны с агента до менеджера и что в файрволе на стороне агента разрешён исходящий трафик.

Если у вас уже есть VPN между офисом и сервером — сбор логов и алертинг удобно завязать на тот же канал: подробности в статье про интеграцию SIEM и логирования VPN для комплаенса.

Базовая настройка правил и оповещений

Из коробки Wazuh уже приносит несколько тысяч правил корреляции (SSH-брутфорс, изменения в /etc/passwd, подозрительные команды, известные CVE по установленным пакетам). Кастомные правила добавляются в /var/ossec/etc/rules/local_rules.xml на менеджере, не трогая системные файлы — это важно, при обновлении Wazuh системные правила перезапишутся, а local_rules.xml останется.

Пример простого кастомного правила — повышенный приоритет для неудачных SSH-логинов с конкретной подсети:

<group name="local,syslog,sshd,">
  <rule id="100001" level="10">
    <if_sid>5716</if_sid>
    <srcip>203.0.113.0/24</srcip>
    <description>Неудачный SSH-логин из подозрительной подсети</description>
  </rule>
</group>

После правки перезапустите менеджер: sudo systemctl restart wazuh-manager.

Email-оповещения настраиваются блоком <global><email_notification> в /var/ossec/etc/ossec.conf, интеграции со Slack, VirusTotal, PagerDuty — блоками <integration> там же. Активный ответ (active response) — например, автоматическая блокировка IP через iptables при повторных неудачных попытках входа — включается в том же файле секцией <active-response> с указанием команды и правила-триггера.

Если вы уже используете fail2ban для базовой защиты от брутфорса — Wazuh его не заменяет мгновенно, но дублирует и расширяет: fail2ban banит по простому счётчику совпадений в логе, Wazuh коррелирует событие с контекстом (кто, откуда, что ещё делал на хосте) и может реагировать на куда более широкий набор сценариев, не только SSH. Многие держат оба: fail2ban как быстрый первый рубеж, Wazuh — как полноценный слой видимости и compliance-отчётности.

Не забудьте и про SSH сам по себе — если ещё используете вход по паролю, самое время перейти на ключи вместо пароля для SSH на Ubuntu 24.04: Wazuh покажет попытки подбора, но лучше, чтобы им просто нечего было подбирать.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Wazuh точно бесплатный?

Да, ядро платформы (indexer, manager, dashboard, агенты) — open source под GPLv2, без лимитов по числу агентов или объёму логов. Платно — только опциональная облачная версия Wazuh Cloud, если не хотите администрировать сервер сами.

Хватит ли 4 ГБ RAM для прод-использования?

Для теста и пары агентов — да. Для реальной нагрузки с десятками агентов индексеру нужно больше памяти, иначе он будет упираться в лимиты кучи Java и падать под нагрузкой на запись. Закладывайте запас или начинайте с 8 ГБ.

Можно ли поставить компоненты на разные серверы?

Можно и для роста инфраструктуры это правильный путь: indexer, server и dashboard разносятся по отдельным нодам через distributed-установку с общим конфигом сертификатов. Для старта с одной VPS это не нужно.

Как обновить Wazuh до новой версии?

Через тот же wazuh-install.sh с флагом обновления компонентов, либо стандартным apt upgrade пакетов wazuh-indexer/wazuh-manager/wazuh-dashboard из подключённого репозитория — перед обновлением всегда делайте снапшот диска.

Wazuh подходит для мониторинга не только серверов, но и рабочих станций сотрудников?

Да, агент ставится на Windows, macOS и Linux, включая ноутбуки — это стандартный сценарий EDR/XDR-использования с контролем FIM и уязвимостей на конечных точках.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →