В предыдущей статье была рассмотрена простая автоматическая установка Wazuh через скрипт. В данном случае рассмотрена подробная установка сервера Wazuh без использования скрипта. Такая необходимость может возникнуть, если установить сервер нужно без доступа в Интернет, или установочные файлы, полученные не напрямую с официального сайта, а например, адаптированные под местное законодательство и полученные от соответствующего представителя. В официальной документации такая пошаговая установка названа step-by-step.

Wazuh – это open-source платформа класса SIEM/XDR для централизованного мониторинга безопасности, сбора и анализа событий, обнаружения угроз, контроля целостности файлов, оценки уязвимостей и реагирования на инциденты в ИТ-инфраструктуре.

Wazuh состоит из трех центральных компонентов и получает данные логов от агентов или в безагентном варианте. Все компоненты могут быть установлены на один сервер либо распределены по нодам или кластерам.

Indexer – cервер хранения, индексации и поиска (бэкенд базы данных).

Manager – cервер анализа, корреляции и реагирования (ядро SIEM).

Dashboard – веб-интерфейс для визуализации и управления (фронтенд).

 

В предыдущей статье было определено:

-количество EPS 800 (около 400 различных сетевых устройств);

-установка All-in-one – все компоненты на одном сервере;

-параметры системы 8-12 vCPU,  RAM 16-32GB, Storage 1TB SSD;

-ОC Ubuntu 24.04 64-bit PC (AMD64) server install image;

-установлена ОС и организован удаленный доступ по SSH;

-настроена синхронизация время NTP.

Переходим непосредственно к установке Wazuh.

 

Установка Wazuh.

Установочные файлы предварительно получены от поставщика, скачены с сайта,  или получены другим путем.

Перечень необходимых для установки файлов.

wazuh-certs-tool.sh – скрипт для генерации SSL/TLS-сертификатов (обеспечивает защищённое HTTPS-взаимодействие между компонентами).

wazuh-certs-tool-config.yml – конфигурационный файл для скрипта генерации сертификатов (содержит имена узлов и IP-адреса).

wazuh-indexer.deb – пакет для установки сервера Wazuh Indexer – центрального компонента системы хранения и поиска данных на базе OpenSearch.

wazuh-manager.deb – пакет для установки менеджера Wazuh – основного сервера обработки событий.

wazuh-dashboard.deb – пакет для установки веб-интерфейса Wazuh Dashboard – визуальной оболочки на базе OpenSearch Dashboards.

wazuh-filebeat.deb – пакет для установки агента по передаче логов и событий от Manager к Indexer (через HTTPS).

wazuh-template.json – шаблон индексов OpenSearch, определяющий структуру хранения данных (поля, типы, маппинги) для индексов wazuh-alerts-*.

wazuh-filebeat-module.tar.gz – это модуль-адаптер для Filebeat, обеспечивающий сбор, парсинг и корректную маршрутизацию событий от Wazuh Manager в Wazuh Indexer. Добавляет поддержку формата логов Wazuh в Filebeat.

Файлы необходимо загрузить в Ubuntu. Наиболее удобный для загрузки способ – менеджера MobaXterm. Загружаем через менеджер или каким-то своим способом.

Создаем каталог с произвольным понятным названием.

 

Загружаем файлы в /tmp.

Затем перемещаем загруженные файлы в созданную папку /opt/wazuh-install.

Сразу загрузить в созданную папку не получится из-за отсутствия разрешений.

 

Подготовка конфигурационного файла сертификатов.

Здесь мы указываем постоянный IP-адрес сервера, который будет «зашит» в SSL-сертификаты для защищённого взаимодействия компонентов Wazuh.

Редактируем файл конфигурации.

 

Вводим IP-адрес сервера.

Указывать нужно IP-адрес своего Wazuh-сервера. IP должен быть постоянным. При смене IP сервера – перевыпуск сертификатов.

Сохраняем, выходим.

ctrl+x

y

 

Установка системных зависимостей.

Обновляем список доступных пакетов и устанавливаем минимальный набор системных утилит, необходимых для корректной установки и работы компонентов Wazuh.

Обновляем репозитории.

 

Устанавливаем дополнительные необходимые утилиты.

adduser – создание пользователей/групп.

debconf – система настройки пакетов Debian.

procps – системные утилиты (ps, top, free).

gnupg – проверка GPG-подписей репозиториев.

apt-transport-https – загрузка пакетов через HTTPS.

В онлайн-установке может потребоваться добавление GPG-ключа Elastic. В данном офлайн-сценарии этот шаг не выполняется.

 

Генерация сертификатов.

Создадим SSL/TLS-сертификаты для защищённого взаимодействия между компонентами Wazuh (Indexer, Manager, Dashboard).

Результат.

 

Проверка.

Видим в папке созданные сертификаты.

root-ca.pem – корневой сертификат центра доверия (CA).

root-ca.key – приватный ключ центра сертификации.

admin.pem – сертификат администратора OpenSearch/Wazuh.

admin-key.pem – приватный ключ администратора.

indexer-1.pem – сертификат Wazuh Indexer.

indexer-1-key.pem – приватный ключ Indexer.

dashboard.pem – сертификат Wazuh Dashboard.

dashboard-key.pem – приватный ключ Dashboard.

wazuh-1.pem – сертификат Wazuh Manager.

wazuh-1-key.pem – приватный ключ Manager.

 

.pem – публичный сертификат.

-key.pem – приватный ключ.

Приватные ключи нельзя передавать посторонним или хранить без защиты.

 

Установка компонентов wazuh.

Ubuntu 24 использует Ubuntu/Debian формат, поэтому используем файлы с расширением .deb.

wazuh-indexer.deb

wazuh-manager.deb

wazuh-dashboard.deb

wazuh-filebeat.deb

Файлы предварительно уже загружены в сервер.

 

 

Установка Indexer.

 

Настраиваем параметры Indexer в его конфигурационном файле.

Минимально необходимые для работы параметры.

network.host: «192.168.5.15» – IP сервера.

node.name: «indexer-1» – имя узла OpenSearch.

cluster.initial_master_nodes: «indexer-1» – главный узел кластера.

cluster.name: «wazuh-cluster» – имя кластера.

path.data: /var/lib/wazuh-indexer – хранение индексов.

path.logs: /var/log/wazuh-indexer – логи OpenSearch.

Название node.name: indexer-1 должно совпадать с сертификатом indexer-1.pem и с config.yml, который использовался при генерации сертификатов.

Сохраняем, выходим.

ctrl+x

y

 

Создаем каталог для сертификатов.

 

Копируем нужные сертификаты в этот каталог.

 

Назначаем права.

Приватные ключи admin-key.pem и indexer-key.pem должны быть доступны только сервису Wazuh/OpenSearch.

 

chmod 500 – назначение прав для каталога.

5 – чтение + выполнение.

0 – нет прав.

0 – нет прав.

То есть владелец может заходить и читать, остальные – нет.

 

chmod 400 – назначение прав для содержимого.

4 – только чтение.

0 – нет прав.

0 – нет прав.

Это значит, владелец может только читать файл, изменять/запускать нельзя, остальные доступа не имеют.

 

Chown – смена владельца.

-R – рекурсивно.

wazuh-indexer:wazuh-indexer – пользователь и группа.

Это значит что владельцем файлов и каталогов назначается системный пользователь wazuh-indexer, от имени которого работает служба Wazuh Indexer. Служба запускается не от root, а от отдельного системного пользователя wazuh-indexer. Именно этому пользователю разрешается читать сертификаты, работать с ключами, использовать каталог.

 

Просмотр содержимого каталога сертификатов.

 

Перечитываем system.

 

Включаем автозапуск.

 

Запускаем службу.

 

Проверяем статус.

Статус службы Active: active (running) – работает. Wazuh Indexer успешно запустился, работает, systemd не видит критических ошибок.

Жёлтые предупреждения (WARNING) не критичны и не означают ошибку. Это внутренние предупреждения Java/OpenSearch о том, что используются устаревшие методы управления безопасностью (System::setSecurityManager). В будущих версиях Java они будут удалены. Это нормально для текущих версий Wazuh и не влияет на работу.

 

Инициализация безопасности Indexer.

Эту команду нужно выполнить при новой установке Wazuh, но только после того, как сервис wazuh-indexer уже запущен.

Данная команда выполняет первичную настройку встроенной системы безопасности Wazuh Indexer: создает защищённое хранилище пользователей и ролей, загружает конфигурации контроля доступа и устанавливает учётную запись администратора с паролем admin/admin, что обеспечивает возможность аутентификации при подключении к индексатору.

Более конкретно, утилита securityadmin.sh (запущенная через indexer-security-init.sh) подключилась к кластеру wazuh-cluster по сертификату администратора, создала отсутствующий индекс безопасности .opendistro_security и успешно загрузила 10 конфигураций (роли, маппинги, пользователи, action groups и др.), после чего кластер стал доступен для аутентифицированных запросов.

 

Можно провести проверку.

Должен прийти JSON-ответ.

 

Загрузка шаблона.

При офлайн-установке шаблон wazuh-template.json необходимо вручную загрузить в Indexer через API. Это делается одной командой curl с использованием локального файла, без выхода в интернет. После этого Dashboard начинает корректно отображать индексы с алармами.

Это гарантирует, что когда начнут поступать первые события, база данных будет готова к их приёму с правильной структурой полей.

 

Установка Manager.

Установочный файл загружен ранее. Выполняем команду для установки.

 

Запускаем Manager сейчас.

 

Включаем автозапуск при старте системы.

 

Проверяем статус.

Далее необходимо установить Filebeat. Без него не будет связи между Manager и Indexer.

 

Filebeat.

Filebeat используется для передачи событий и журналов безопасности от Wazuh Manager в Wazuh Indexer для последующего хранения, поиска и визуализации.

Устанавливаем Filebeat из предварительно загруженного файла.

 

После установки редактируем конфигурацию.

hosts – адрес Wazuh Indexer.

username/password – учётная запись OpenSearch.

certificate_authorities – доверенный CA.

# ssl.certificate – сертификат Filebeat.

# ssl.key – приватный ключ Filebeat.

На базовом этапе Filebeat использует только корневой сертификат центра сертификации для проверки подлинности Wazuh Indexer, без применения клиентских сертификатов. И по сути дела настройки ssl.certificate и ssl.key не нужны, поэтому закомментированы. Так проще, быстрее, меньше ошибок TLS. Позже можно включить клиентские сертификаты и взаимную аутентификацию.

Сохраняем, выходим.

ctrl+x

y

 

Создаем каталог.

 

И копируем туда сертификаты.

Пока что можно скопировать только root-ca.pem.

 

Назначаем владельца.

 

Ограничиваем права.

 

Настройка Filebeat (шаблон, хранилище ключей, модуль).

Шаблон.

Далее выполняется установка шаблона индексов Wazuh wazuh-template.json, который определяет структуру, типы и правила хранения данных безопасности в Wazuh Indexer/OpenSearch.

Установка шаблона здесь означает размещение файла шаблона в рабочем каталоге Filebeat, чтобы затем Filebeat/OpenSearch могли его импортировать и использовать.

Файл предварительно загружен в сервер. Копируем его в директорию filebeat.

 

Назначаем права.

 

Хранилище.

Выполняем настройку защищённого хранилища Filebeat для безопасного хранения учётных данных подключения к Wazuh Indexer.

Создаем keystore с явным указанием пути.

 

Добавляем имя пользователя.

 

Добавляем пароль.

 

Проверяем, что keystore создался в правильном месте.

 

Проверяем, что ключи добавились.

 

Установка модуля.

Модуль-адаптер для Filebeat, обеспечивающий сбор, парсинг и корректную маршрутизацию событий от Wazuh Manager в Wazuh Indexer.

Создаем директорию.

 

Выполняем установку.

 

Проверяем результат.

Запускаем Filebeat.

Выполняем перечитывание конфигурацию systemd (на случай, если были изменения)

 

Включаем автозапуска Filebeat при старте системы.

 

Запускаем сервис сейчас.

 

Проверяем статуса.

 

Можно выполнить проверку. Эта команда покажет, может ли Filebeat достичь Indexer и пройти авторизацию.

 

Установка Dashboard.

Устанавливаем dashboard из предварительно загруженного файла.

 

После установки редактируем файл конфигурации.

server.host – IP сервера, где работает Dashboard.

server.port – порт для HTTPS (443).

opensearch.hosts – адрес Indexer (через HTTPS).

server.ssl.* – пути к сертификатам Dashboard.

ssl.certificateAuthorities – корневой сертификат для проверки Indexer.

Сохраняем, выходим.

ctrl+x

y

 

SSL-сертификаты Dashboard.

Создаём каталог для сертификатов Dashboard.

 

Копируем сертификаты из ранее сгенерированных.

 

Устанавливаем права доступа.

Назначаем владельцем пользователя wazuh-dashboard, от которого запускается сервис.

 

Запускаем службу.

 

Проверяем статус.

 

Подключаемся через браузер в dashboard.

Подтверждаем переход на сайт с недоверенным сертификатом. Попадаем на страницу входа.

Учётные данные для входа:

Логин: admin

Пароль: admin

На этом самая простая часть работы с Wazuh завершается.