В предыдущей статье была рассмотрена простая автоматическая установка 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. Загружаем через менеджер или каким-то своим способом.
Создаем каталог с произвольным понятным названием.
|
1 |
mkdir -p /opt/wazuh-install |
Загружаем файлы в /tmp.
Затем перемещаем загруженные файлы в созданную папку /opt/wazuh-install.
|
1 2 3 4 5 6 7 8 |
mv /tmp/ wazuh-certs-tool.sh /opt/wazuh-install/ mv /tmp/wazuh-certs-tool-config.yml /opt/wazuh-install/ mv /tmp/wazuh-indexer.deb /opt/wazuh-install/ mv /tmp/wazuh-manager.deb /opt/wazuh-install/ mv /tmp/wazuh-dashboard.deb /opt/wazuh-install/ mv /tmp/wazuh-filebeat.deb /opt/wazuh-install/ mv /tmp/wazuh-filebeat-module.tar.gz /opt/wazuh-install/ mv /tmp/wazuh-template.json /opt/wazuh-install/ |
Сразу загрузить в созданную папку не получится из-за отсутствия разрешений.
Подготовка конфигурационного файла сертификатов.
Здесь мы указываем постоянный IP-адрес сервера, который будет «зашит» в SSL-сертификаты для защищённого взаимодействия компонентов Wazuh.
Редактируем файл конфигурации.
|
1 |
nano /opt/wazuh-install/wazuh-certs-tool-config.yml |
Вводим IP-адрес сервера.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
nodes: indexer: - name: indexer-1 ip: 192.168.5.15 server: - name: wazuh-1 ip: 192.168.5.15 dashboard: - name: dashboard ip: 192.168.5.15 |
Указывать нужно IP-адрес своего Wazuh-сервера. IP должен быть постоянным. При смене IP сервера – перевыпуск сертификатов.
Сохраняем, выходим.
ctrl+x
y
Установка системных зависимостей.
Обновляем список доступных пакетов и устанавливаем минимальный набор системных утилит, необходимых для корректной установки и работы компонентов Wazuh.
Обновляем репозитории.
|
1 |
apt update |
Устанавливаем дополнительные необходимые утилиты.
|
1 |
apt install -y adduser debconf procps gnupg apt-transport-https |
adduser – создание пользователей/групп.
debconf – система настройки пакетов Debian.
procps – системные утилиты (ps, top, free).
gnupg – проверка GPG-подписей репозиториев.
apt-transport-https – загрузка пакетов через HTTPS.
В онлайн-установке может потребоваться добавление GPG-ключа Elastic. В данном офлайн-сценарии этот шаг не выполняется.
Генерация сертификатов.
Создадим SSL/TLS-сертификаты для защищённого взаимодействия между компонентами Wazuh (Indexer, Manager, Dashboard).
|
1 |
bash /opt/wazuh-install/wazuh-certs-tool.sh -A |
Результат.
Проверка.
|
1 |
ls /opt/wazuh-install/wazuh-certificates |
Видим в папке созданные сертификаты.
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.
|
1 |
dpkg -i /opt/wazuh-install/wazuh-indexer.deb |
Настраиваем параметры Indexer в его конфигурационном файле.
|
1 |
nano /etc/wazuh-indexer/opensearch.yml |
Минимально необходимые для работы параметры.
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
Создаем каталог для сертификатов.
|
1 |
mkdir -p /etc/wazuh-indexer/certs |
Копируем нужные сертификаты в этот каталог.
|
1 2 3 4 5 |
cp /opt/wazuh-install/wazuh-certificates/indexer-1.pem /etc/wazuh-indexer/certs/indexer.pem cp /opt/wazuh-install/wazuh-certificates/indexer-1-key.pem /etc/wazuh-indexer/certs/indexer-key.pem cp /opt/wazuh-install/wazuh-certificates/root-ca.pem /etc/wazuh-indexer/certs/ cp /opt/wazuh-install/wazuh-certificates/admin.pem /etc/wazuh-indexer/certs/ cp /opt/wazuh-install/wazuh-certificates/admin-key.pem /etc/wazuh-indexer/certs/ |
Назначаем права.
|
1 2 3 |
chmod 500 /etc/wazuh-indexer/certs chmod 400 /etc/wazuh-indexer/certs/* chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs |
Приватные ключи 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. Именно этому пользователю разрешается читать сертификаты, работать с ключами, использовать каталог.
Просмотр содержимого каталога сертификатов.
|
1 |
ls -l /etc/wazuh-indexer/certs |
Перечитываем system.
|
1 |
systemctl daemon-reload |
Включаем автозапуск.
|
1 |
systemctl enable wazuh-indexer |
Запускаем службу.
|
1 |
systemctl start wazuh-indexer |
Проверяем статус.
|
1 |
systemctl status wazuh-indexer |

Статус службы Active: active (running) – работает. Wazuh Indexer успешно запустился, работает, systemd не видит критических ошибок.
Жёлтые предупреждения (WARNING) не критичны и не означают ошибку. Это внутренние предупреждения Java/OpenSearch о том, что используются устаревшие методы управления безопасностью (System::setSecurityManager). В будущих версиях Java они будут удалены. Это нормально для текущих версий Wazuh и не влияет на работу.
Инициализация безопасности Indexer.
Эту команду нужно выполнить при новой установке Wazuh, но только после того, как сервис wazuh-indexer уже запущен.
|
1 |
/usr/share/wazuh-indexer/bin/indexer-security-init.sh |
Данная команда выполняет первичную настройку встроенной системы безопасности Wazuh Indexer: создает защищённое хранилище пользователей и ролей, загружает конфигурации контроля доступа и устанавливает учётную запись администратора с паролем admin/admin, что обеспечивает возможность аутентификации при подключении к индексатору.
Более конкретно, утилита securityadmin.sh (запущенная через indexer-security-init.sh) подключилась к кластеру wazuh-cluster по сертификату администратора, создала отсутствующий индекс безопасности .opendistro_security и успешно загрузила 10 конфигураций (роли, маппинги, пользователи, action groups и др.), после чего кластер стал доступен для аутентифицированных запросов.
Можно провести проверку.
|
1 |
curl -k -u admin:admin https://192.168.5.15:9200 |
Должен прийти JSON-ответ.
Загрузка шаблона.
При офлайн-установке шаблон wazuh-template.json необходимо вручную загрузить в Indexer через API. Это делается одной командой curl с использованием локального файла, без выхода в интернет. После этого Dashboard начинает корректно отображать индексы с алармами.
|
1 2 3 4 |
curl -X PUT "https://192.168.5.15:9200/_template/wazuh" \ -H 'Content-Type: application/json' \ -d @/opt/wazuh-install/wazuh-template.json \ -u admin:admin –k |
Это гарантирует, что когда начнут поступать первые события, база данных будет готова к их приёму с правильной структурой полей.
Установка Manager.
Установочный файл загружен ранее. Выполняем команду для установки.
|
1 |
dpkg -i /opt/wazuh-install/wazuh-manager.deb |
Запускаем Manager сейчас.
|
1 |
systemctl start wazuh-manager |
Включаем автозапуск при старте системы.
|
1 |
systemctl enable wazuh-manager |
Проверяем статус.
|
1 |
systemctl status wazuh-manager |

Далее необходимо установить Filebeat. Без него не будет связи между Manager и Indexer.
Filebeat.
Filebeat используется для передачи событий и журналов безопасности от Wazuh Manager в Wazuh Indexer для последующего хранения, поиска и визуализации.
Устанавливаем Filebeat из предварительно загруженного файла.
|
1 |
dpkg -i /opt/wazuh-install/wazuh-filebeat.deb |
После установки редактируем конфигурацию.
|
1 |
nano /etc/filebeat/filebeat.yml |

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
Создаем каталог.
|
1 |
mkdir -p /etc/filebeat/certs |
И копируем туда сертификаты.
|
1 2 3 |
cp /opt/wazuh-install/wazuh-certificates/root-ca.pem /etc/filebeat/certs/ cp /opt/wazuh-install/wazuh-certificates/admin.pem /etc/filebeat/certs/filebeat.pem cp /opt/wazuh-install/wazuh-certificates/admin-key.pem /etc/filebeat/certs/filebeat-key.pem |
Пока что можно скопировать только root-ca.pem.
Назначаем владельца.
|
1 |
chown -R root:root /etc/filebeat/certs |
Ограничиваем права.
|
1 2 |
chmod 500 /etc/filebeat/certs chmod 400 /etc/filebeat/certs/* |
Настройка Filebeat (шаблон, хранилище ключей, модуль).
Шаблон.
Далее выполняется установка шаблона индексов Wazuh wazuh-template.json, который определяет структуру, типы и правила хранения данных безопасности в Wazuh Indexer/OpenSearch.
Установка шаблона здесь означает размещение файла шаблона в рабочем каталоге Filebeat, чтобы затем Filebeat/OpenSearch могли его импортировать и использовать.
Файл предварительно загружен в сервер. Копируем его в директорию filebeat.
|
1 |
cp /opt/wazuh-install/wazuh-template.json /etc/filebeat/ |
Назначаем права.
|
1 |
chmod 644 /etc/filebeat/wazuh-template.json |
Хранилище.
Выполняем настройку защищённого хранилища Filebeat для безопасного хранения учётных данных подключения к Wazuh Indexer.
Создаем keystore с явным указанием пути.
|
1 |
/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.data /var/lib/filebeat keystore create |
Добавляем имя пользователя.
|
1 |
echo "admin" | /usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.data /var/lib/filebeat keystore add output.elasticsearch.username --stdin --force |
Добавляем пароль.
|
1 |
echo "admin" | /usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.data /var/lib/filebeat keystore add output.elasticsearch.password --stdin --force |
Проверяем, что keystore создался в правильном месте.
|
1 |
ls -la /var/lib/filebeat/filebeat.keystore |
Проверяем, что ключи добавились.
|
1 |
/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.data /var/lib/filebeat keystore list |
Установка модуля.
Модуль-адаптер для Filebeat, обеспечивающий сбор, парсинг и корректную маршрутизацию событий от Wazuh Manager в Wazuh Indexer.
Создаем директорию.
|
1 |
mkdir -p /usr/share/filebeat/module |
Выполняем установку.
|
1 |
tar -xvzf /opt/wazuh-install/wazuh-filebeat-module.tar.gz -C /usr/share/filebeat/module |
Проверяем результат.
|
1 |
ls -la /usr/share/filebeat/module/wazuh/ |

Запускаем Filebeat.
Выполняем перечитывание конфигурацию systemd (на случай, если были изменения)
|
1 |
systemctl daemon-reload |
Включаем автозапуска Filebeat при старте системы.
|
1 |
systemctl enable filebeat |
Запускаем сервис сейчас.
|
1 |
systemctl start filebeat |
Проверяем статуса.
|
1 |
systemctl status filebeat |

Можно выполнить проверку. Эта команда покажет, может ли Filebeat достичь Indexer и пройти авторизацию.
|
1 |
/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml test output |

Установка Dashboard.
Устанавливаем dashboard из предварительно загруженного файла.
|
1 |
dpkg -i /opt/wazuh-install/wazuh-dashboard.deb |
После установки редактируем файл конфигурации.
|
1 |
nano /etc/wazuh-dashboard/opensearch_dashboards.yml |

server.host – IP сервера, где работает Dashboard.
server.port – порт для HTTPS (443).
opensearch.hosts – адрес Indexer (через HTTPS).
server.ssl.* – пути к сертификатам Dashboard.
ssl.certificateAuthorities – корневой сертификат для проверки Indexer.
Сохраняем, выходим.
ctrl+x
y
SSL-сертификаты Dashboard.
Создаём каталог для сертификатов Dashboard.
|
1 |
mkdir -p /etc/wazuh-dashboard/certs |
Копируем сертификаты из ранее сгенерированных.
|
1 2 3 |
cp /opt/wazuh-install/wazuh-certificates/dashboard.pem /etc/wazuh-dashboard/certs/ cp /opt/wazuh-install/wazuh-certificates/dashboard-key.pem /etc/wazuh-dashboard/certs/ cp /opt/wazuh-install/wazuh-certificates/root-ca.pem /etc/wazuh-dashboard/certs/ |
Устанавливаем права доступа.
|
1 2 3 |
chmod 500 /etc/wazuh-dashboard/certs chmod 400 /etc/wazuh-dashboard/certs/* chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs |
Назначаем владельцем пользователя wazuh-dashboard, от которого запускается сервис.
Запускаем службу.
|
1 2 3 |
systemctl daemon-reload systemctl enable wazuh-dashboard systemctl start wazuh-dashboard |
Проверяем статус.
|
1 |
systemctl status wazuh-dashboard |

Подключаемся через браузер в dashboard.
|
1 |
https://192.168.5.15 |
Подтверждаем переход на сайт с недоверенным сертификатом. Попадаем на страницу входа.
Учётные данные для входа:
Логин: admin
Пароль: admin

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