Перейти к содержанию

Обзор развертывания Wazuh на сервере

Предварительные требования и базовые условия

Перед развертыванием приложения Wazuh должны быть выполнены следующие требования:

  • Операционная система: Ubuntu с управлением пакетами через APT.

  • Привилегии: Для выполнения скриптов установки, управления службами и настройки межсетевого экрана требуются права root или привилегии sudo.

  • Настройка домена: Сервер должен быть настроен для разрешения зоны hostkey.in.

  • Порты: Должны быть доступны следующие порты:

    • Порт 443 (HTTPS) для внешнего веб-доступа через реверс-прокси.

    • Порт 8080 (HTTP) для внутреннего взаимодействия между панелью управления Wazuh и реверс-прокси.

    • Порт 9200 (HTTPS) для внутренней коммуникации кластера Wazuh Indexer.

FQDN конечной панели управления

Панель управления Wazuh доступна через следующий формат полного доменного имени (Fully Qualified Domain Name, FQDN), где <server_id> обозначает уникальный идентификатор конкретного экземпляра сервера:

wazuh<server_id>.hostkey.in:443

Структура файлов и каталогов

Компоненты приложения, файлы конфигурации и данные организованы в следующей структуре каталогов на хост-сервере:

  • /opt/wazuh: Основной каталог для файлов установки, скриптов и данных конфигурации Wazuh.

  • /opt/wazuh/wazuh-install.sh: Официальный скрипт установки Wazuh (версия 4.11).

  • /opt/wazuh/config.yml: Файл конфигурации, определяющий имена узлов и IP-адреса для индексера, сервера и панели управления.

  • /opt/wazuh/password: Файл, содержащий учетные данные администратора для индексера Wazuh.

  • /root/nginx: Каталог, содержащий конфигурацию реверс-прокси Nginx.

  • /root/nginx/compose.yml: Файл Docker Compose, определяющий сервисы Nginx и Certbot.

  • /data/nginx/user_conf.d: Каталог, содержащий конкретные файлы конфигурации сайтов Nginx (например, wazuh<server_id>.hostkey.in.conf).

  • /data/nginx/nginx-certbot.env: Файл окружения для Nginx Certbot.

  • /data/nginx/: Точка монтирования для внешних секретов и сертификатов Let's Encrypt.

Процесс установки приложения

Приложение Wazuh устанавливается с использованием официального скрипта установщика Wazuh версии 4.11. Процесс включает следующие шаги:

  1. Подготовка каталога: Создается каталог /opt/wazuh для хранения артефактов установки.

  2. Получение скрипта: Скрипт установки загружается с адреса https://packages.wazuh.com/4.11/wazuh-install.sh в /opt/wazuh.

  3. Генерация конфигурации: Файл config.yml размещается в /opt/wazuh, определяя топологию для node-1 (индексер), wazuh-1 (сервер) и dashboard. Выполняется команда ./wazuh-install.sh --generate-config-files для подготовки файлов установки.

  4. Установка Wazuh Indexer: Индексер устанавливается с помощью команды:

    ./wazuh-install.sh --wazuh-indexer node-1
    

  5. Инициализация кластера: Кластер индексера запускается с помощью:

    ./wazuh-install.sh --start-cluster
    

  6. Извлечение учетных данных: Пароль администратора извлекается из сгенерированного архива tar и сохраняется в /opt/wazuh/password.

  7. Установка Wazuh Server: Компонент сервера Wazuh устанавливается с помощью:

    ./wazuh-install.sh --wazuh-server wazuh-1
    

  8. Установка Wazuh Dashboard: Панель управления устанавливается и настраивается на прослушивание порта 8080 с помощью:

    ./wazuh-install.sh --wazuh-dashboard dashboard -p 8080
    

  9. Очистка репозитория: Репозиторий APT Wazuh отключается путем закомментиствования записи в /etc/apt/sources.list.d/wazuh.list, чтобы предотвратить автоматические обновления через менеджер пакетов.

Права доступа и безопасность

Меры безопасности, внедренные в процессе развертывания, включают:

  • Хранение паролей: Учетные данные администратора хранятся в /opt/wazuh/password с ограниченными правами доступа к файлу (0600).

  • Проверка здоровья кластера: Скрипт установки проверяет статус кластера Wazuh Indexer через HTTPS-запрос к 127.0.0.1:9200. Установка завершается ошибкой, если статус не является green (зеленым).

  • Принудительное использование HTTPS: Внешний трафик защищается с помощью Nginx с сертификатами Let's Encrypt (Certbot), обеспечивая шифрование всего веб-трафика через порт 443.

  • Внутренняя коммуникация: Внутреннее взаимодействие между панелью управления и прокси использует незашифрованный протокол http на порту 8080, как определено в конфигурации Nginx.

Базы данных

Wazuh использует встроенный движок индексации (Wazuh Indexer) для хранения и извлечения данных.

  • Расположение хранилища: Данные хранятся локально на узле в стандартных каталогах Wazuh под /opt/wazuh.

  • Метод подключения: Сервер Wazuh и панель управления подключаются к Индексеру через 127.0.0.1:9200.

  • Аутентификация: Для доступа требуется имя пользователя admin и пароль, сгенерированный во время установки, который хранится в /opt/wazuh/password.

Контейнеры Docker и их развертывание

Реверс-прокси и решение для управления SSL развернуты с использованием Docker.

  • Метод развертывания: Для оркестрации сервисов используется Docker Compose.

  • Файл конфигурации: Развертывание определено в файле /root/nginx/compose.yml.

  • Образ сервиса: jonasal/nginx-certbot:latest.

  • Режим сети: Контейнер работает в режиме сети host.

  • Томы (Volumes):

    • nginx_secrets: Внешний том, смонтированный в /etc/letsencrypt для SSL-сертификатов.

    • /data/nginx/user_conf.d: Смонтирован в /etc/nginx/user_conf.d для пользовательских конфигураций Nginx.

  • Окружение: Сервис использует файл окружения, расположенный в /data/nginx/nginx-certbot.env, и устанавливает email CERTBOT_EMAIL=hkadm@hostkey.com.

Серверы прокси

Конфигурируется реверс-прокси Nginx для обработки входящего HTTPS-трафика и его маршрутизации к панели управления Wazuh.

  • Программное обеспечение: Nginx с Certbot (управляется через Docker).

  • SSL/TLS: Автоматически управляется Certbot с использованием Let's Encrypt.

  • Конфигурация: Для домена создается специальный файл конфигурации wazuh<server_id>.hostkey.in.conf, расположенный в /data/nginx/user_conf.d.

  • Правило прокси: Конфигурация включает блок location /, который пересылает запросы на внутреннюю панель управления Wazuh:

    proxy_pass https://wazuh<server_id>.hostkey.in:8080;
    

  • Запуск: Прокси запускается с помощью команды:

    docker compose up -d
    
    выполняемой в каталоге /root/nginx.

Настройки прав доступа

В процессе развертывания к следующим файлам и каталогам применяются следующие права доступа:

  • /opt/wazuh: Создан с правами 0755 (Владелец: root, Группа: root).

  • /opt/wazuh/wazuh-install.sh: Установлены права 0755 (Исполняемый).

  • /opt/wazuh/config.yml: Установлены права 0600 (Доступен для чтения/записи только владельцем).

  • /opt/wazuh/password: Установлены права 0600 (Доступен для чтения/записи только владельцем).

  • /root/nginx: Создан с правами 0755.

  • /root/nginx/compose.yml: Установлены права 0644.

Расположение файлов конфигурации и данных

Критически важные файлы конфигурации и данных расположены по следующим путям:

  • Топология Wazuh: /opt/wazuh/config.yml

  • Скрипт установки: /opt/wazuh/wazuh-install.sh

  • Учетные данные администратора: /opt/wazuh/password

  • Nginx Compose: /root/nginx/compose.yml

  • Конфигурация сайта Nginx: /data/nginx/user_conf.d/wazuh<server_id>.hostkey.in.conf

  • Окружение Nginx: /data/nginx/nginx-certbot.env

  • Источник APT Wazuh: /etc/apt/sources.list.d/wazuh.list (Отключен)

Доступные порты для подключения

Следующие порты настроены для сетевой коммуникации:

Порт Протокол Назначение Доступ
443 TCP HTTPS (Реверс-прокси) Внешний
8080 TCP HTTP (Wazuh Dashboard) Внутренний (только для прокси)
9200 TCP HTTPS (Wazuh Indexer) Внутренний (Локальный хост)

Запуск, остановка и обновление

Команды управления службами специфичны для скрипта установки Wazuh и контейнера Docker прокси.

  • Запуск прокси Nginx:

    cd /root/nginx
    docker compose up -d
    

  • Запуск кластера Wazuh:

    /opt/wazuh/wazuh-install.sh --start-cluster
    

  • Остановка/Перезапуск служб: Службами Wazuh управляет системный менеджер служб (systemd) под именами wazuh-indexer, wazuh-manager и wazuh-dashboard, которые можно контролировать с помощью стандартных команд systemctl (например, systemctl restart wazuh-manager).

  • Обновления: Автоматические обновления через репозиторий APT отключены. Ручное обновление требует повторного запуска скрипта установки или загрузки новых двоичных файлов.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×