Офлайн-установка Wazuh 4.14 - изолированные сети

Офлайн-установка предназначена для развертывания Wazuh 4.14 в изолированных сетях (air-gapped) без доступа в интернет. Все необходимые пакеты, зависимости и скрипты загружаются заранее на хосте с интернетом, переносятся на целевые серверы и устанавливаются из локального хранилища.

Обзор процедуры

Процесс офлайн-установки состоит из следующих этапов:

  1. Загрузка пакетов и зависимостей на хосте с интернетом
  2. Перенос файлов на целевые серверы
  3. Настройка локального репозитория
  4. Генерация TLS-сертификатов
  5. Установка компонентов в правильном порядке
  6. Проверка работоспособности

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

Хост для загрузки (с интернетом)

  • Любая Linux-система с доступом в интернет
  • Утилиты: curl, tar, gpg
  • Минимум 5 ГБ свободного дискового пространства

Целевые серверы (без интернета)

  • 64-битная ОС из списка поддерживаемых
  • Минимум 4 ядра CPU и 8 ГБ RAM для all-in-one
  • Открытые порты между узлами: 1514, 1515, 9200, 443, 55000
  • Способ передачи файлов (USB, SCP через локальную сеть, NFS)

Загрузка пакетов

Автоматическая загрузка

Wazuh предоставляет скрипт для автоматической загрузки всех необходимых файлов:

curl -sO https://packages.wazuh.com/4.14/wazuh-offline.tar.gz

Этот архив содержит:

  • Пакеты Wazuh Indexer, Manager, Dashboard для поддерживаемых ОС
  • GPG-ключи репозитория
  • Конфигурационные файлы
  • Скрипт установки

Ручная загрузка пакетов

Для выборочной загрузки скачайте только нужные пакеты.

Для Debian/Ubuntu:

mkdir -p wazuh-offline/deb

# Wazuh Indexer
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-indexer/wazuh-indexer_4.14.3-1_amd64.deb \
  -o wazuh-offline/deb/

# Wazuh Manager
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-manager/wazuh-manager_4.14.3-1_amd64.deb \
  -o wazuh-offline/deb/

# Wazuh Dashboard
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-dashboard/wazuh-dashboard_4.14.3-1_amd64.deb \
  -o wazuh-offline/deb/

# Filebeat
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/f/filebeat/filebeat-oss-7.10.2-amd64.deb \
  -o wazuh-offline/deb/

Для RHEL/CentOS:

mkdir -p wazuh-offline/rpm

curl -sO https://packages.wazuh.com/4.x/yum/wazuh-indexer-4.14.3-1.x86_64.rpm \
  -o wazuh-offline/rpm/

curl -sO https://packages.wazuh.com/4.x/yum/wazuh-manager-4.14.3-1.x86_64.rpm \
  -o wazuh-offline/rpm/

curl -sO https://packages.wazuh.com/4.x/yum/wazuh-dashboard-4.14.3-1.x86_64.rpm \
  -o wazuh-offline/rpm/

Загрузка GPG-ключа

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH -o wazuh-offline/GPG-KEY-WAZUH

Загрузка конфигурации Filebeat

curl -sO https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.4.tar.gz \
  -o wazuh-offline/wazuh-filebeat-0.4.tar.gz

Перенос на целевые серверы

Упакуйте все загруженные файлы:

tar czf wazuh-offline-bundle.tar.gz wazuh-offline/

Перенесите архив на целевые серверы любым доступным способом:

  • USB-носитель: скопируйте на USB, перенесите физически
  • SCP по локальной сети: scp wazuh-offline-bundle.tar.gz user@target:/tmp/
  • NFS-монтирование: скопируйте в общий каталог

На целевом сервере распакуйте архив:

tar xzf /tmp/wazuh-offline-bundle.tar.gz -C /tmp/

Настройка локального репозитория

Для Debian/Ubuntu

Создайте локальный APT-репозиторий:

mkdir -p /var/local/wazuh-repo

cp /tmp/wazuh-offline/deb/*.deb /var/local/wazuh-repo/

cd /var/local/wazuh-repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Добавьте репозиторий в APT:

echo "deb [trusted=yes] file:///var/local/wazuh-repo ./" > /etc/apt/sources.list.d/wazuh-local.list
apt-get update

Для RHEL/CentOS

Создайте локальный YUM-репозиторий:

mkdir -p /var/local/wazuh-repo

cp /tmp/wazuh-offline/rpm/*.rpm /var/local/wazuh-repo/

createrepo /var/local/wazuh-repo/

Если createrepo не установлен, установите его заранее или включите в офлайн-пакет:

yum install createrepo_c

Добавьте репозиторий:

cat > /etc/yum.repos.d/wazuh-local.repo << 'EOF'
[wazuh-local]
name=Wazuh Local Repository
baseurl=file:///var/local/wazuh-repo/
enabled=1
gpgcheck=0
EOF

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

Загрузка скрипта генерации

На хосте с интернетом скачайте скрипт и конфигурацию:

curl -sO https://packages.wazuh.com/4.14/wazuh-certs-tool.sh
curl -sO https://packages.wazuh.com/4.14/config.yml

Настройка config.yml

Отредактируйте config.yml, указав имена и IP-адреса всех узлов:

nodes:
  indexer:
    - name: wazuh-indexer-1
      ip: 192.168.1.10
  server:
    - name: wazuh-manager-1
      ip: 192.168.1.20
  dashboard:
    - name: wazuh-dashboard-1
      ip: 192.168.1.30

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

nodes:
  indexer:
    - name: wazuh-indexer-1
      ip: 192.168.1.10
    - name: wazuh-indexer-2
      ip: 192.168.1.11
    - name: wazuh-indexer-3
      ip: 192.168.1.12
  server:
    - name: wazuh-manager-master
      ip: 192.168.1.20
      node_type: master
    - name: wazuh-manager-worker
      ip: 192.168.1.21
      node_type: worker
  dashboard:
    - name: wazuh-dashboard-1
      ip: 192.168.1.30

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

bash wazuh-certs-tool.sh -A

Скрипт создаст каталог wazuh-certificates/ со всеми необходимыми сертификатами. Перенесите его на целевые серверы вместе с пакетами.

Распределение сертификатов

На каждом целевом сервере скопируйте соответствующие сертификаты:

# На узле индексатора
mkdir -p /etc/wazuh-indexer/certs
cp wazuh-certificates/root-ca.pem /etc/wazuh-indexer/certs/
cp wazuh-certificates/wazuh-indexer-1.pem /etc/wazuh-indexer/certs/indexer.pem
cp wazuh-certificates/wazuh-indexer-1-key.pem /etc/wazuh-indexer/certs/indexer-key.pem
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs

Пошаговая установка

Порядок установки компонентов строго определен. Нарушение порядка приведет к ошибкам.

1. Установка Wazuh Indexer

# Debian/Ubuntu
apt-get install wazuh-indexer

# RHEL/CentOS
yum install wazuh-indexer

Настройте /etc/wazuh-indexer/opensearch.yml:

cluster.name: wazuh-cluster
node.name: wazuh-indexer-1
network.host: 0.0.0.0
node.master: true
node.data: true

plugins.security.ssl.transport.pemcert_filepath: /etc/wazuh-indexer/certs/indexer.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/wazuh-indexer/certs/indexer-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/wazuh-indexer/certs/root-ca.pem

plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/wazuh-indexer/certs/indexer.pem
plugins.security.ssl.http.pemkey_filepath: /etc/wazuh-indexer/certs/indexer-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/wazuh-indexer/certs/root-ca.pem

Запустите и инициализируйте:

systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer

/usr/share/wazuh-indexer/bin/indexer-security-init.sh

Проверка:

curl -sk -u admin:admin https://localhost:9200/_cluster/health?pretty

2. Установка Wazuh Manager

# Debian/Ubuntu
apt-get install wazuh-manager

# RHEL/CentOS
yum install wazuh-manager

Установите Filebeat:

# Debian/Ubuntu
dpkg -i /tmp/wazuh-offline/deb/filebeat-oss-*.deb

# RHEL/CentOS
rpm -ivh /tmp/wazuh-offline/rpm/filebeat-oss-*.rpm

Настройте Filebeat для отправки данных в индексатор:

cp /tmp/wazuh-offline/wazuh-filebeat-0.4.tar.gz /tmp/
tar xzf /tmp/wazuh-filebeat-0.4.tar.gz -C /usr/share/filebeat/module/

Отредактируйте /etc/filebeat/filebeat.yml:

output.elasticsearch:
  hosts: ["https://192.168.1.10:9200"]
  username: admin
  password: admin
  ssl.certificate_authorities:
    - /etc/filebeat/certs/root-ca.pem
  ssl.certificate: /etc/filebeat/certs/filebeat.pem
  ssl.key: /etc/filebeat/certs/filebeat-key.pem

Запустите сервисы:

systemctl daemon-reload
systemctl enable wazuh-manager filebeat
systemctl start wazuh-manager filebeat

3. Установка Wazuh Dashboard

# Debian/Ubuntu
apt-get install wazuh-dashboard

# RHEL/CentOS
yum install wazuh-dashboard

Настройте /etc/wazuh-dashboard/opensearch_dashboards.yml:

server.host: 0.0.0.0
server.port: 443
opensearch.hosts: ["https://192.168.1.10:9200"]
opensearch.ssl.certificateAuthorities: ["/etc/wazuh-dashboard/certs/root-ca.pem"]
server.ssl.enabled: true
server.ssl.certificate: "/etc/wazuh-dashboard/certs/dashboard.pem"
server.ssl.key: "/etc/wazuh-dashboard/certs/dashboard-key.pem"

Запустите сервис:

systemctl daemon-reload
systemctl enable wazuh-dashboard
systemctl start wazuh-dashboard

Откройте https://<IP-адрес>:443 для доступа к дашборду.

Установка агентов в офлайн-режиме

Загрузка пакета агента

На хосте с интернетом загрузите пакет для нужной ОС:

# Linux DEB
curl -sO https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.3-1_amd64.deb

# Linux RPM
curl -sO https://packages.wazuh.com/4.x/yum/wazuh-agent-4.14.3-1.x86_64.rpm

# Windows
curl -sO https://packages.wazuh.com/4.x/windows/wazuh-agent-4.14.3-1.msi

Установка на целевом хосте

# Debian/Ubuntu
WAZUH_MANAGER="192.168.1.20" dpkg -i wazuh-agent_4.14.3-1_amd64.deb

# RHEL/CentOS
WAZUH_MANAGER="192.168.1.20" rpm -ivh wazuh-agent-4.14.3-1.x86_64.rpm

Запустите агент:

systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent

Обновление в офлайн-режиме

Подготовка обновления

  1. На хосте с интернетом загрузите пакеты новой версии
  2. Перенесите пакеты на целевые серверы
  3. Обновите локальный репозиторий

Порядок обновления

Обновление выполняется в обратном порядке:

  1. Агенты
  2. Менеджер
  3. Индексатор
  4. Дашборд

Обновление компонента

# Debian/Ubuntu
apt-get install --only-upgrade wazuh-indexer
systemctl restart wazuh-indexer

# RHEL/CentOS
yum update wazuh-indexer
systemctl restart wazuh-indexer

Перед обновлением индексатора создайте резервную копию данных:

curl -sk -u admin:admin \
  -X PUT "https://localhost:9200/_snapshot/backup/pre-upgrade" \
  -H "Content-Type: application/json" \
  -d '{"indices":"wazuh-*"}'

Решение проблем

Пакет не устанавливается из локального репозитория

Симптомы: ошибка Unable to locate package или No package available.

Решение:

  1. Проверьте содержимое репозитория:
ls -la /var/local/wazuh-repo/
  1. Для Debian/Ubuntu пересоздайте индекс пакетов:
cd /var/local/wazuh-repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
apt-get update
  1. Для RHEL/CentOS пересоздайте метаданные:
createrepo --update /var/local/wazuh-repo/
yum clean all && yum makecache

Ошибки сертификатов при подключении компонентов

Симптомы: в логах ошибки ssl_exception, компоненты не могут установить TLS-соединение.

Решение:

  1. Убедитесь, что все компоненты используют сертификаты от одного CA:
openssl x509 -in /etc/wazuh-indexer/certs/root-ca.pem -text -noout | grep Issuer
  1. Проверьте, что SAN в сертификате соответствует IP-адресу узла:
openssl x509 -in /etc/wazuh-indexer/certs/indexer.pem -text -noout | grep -A1 "Subject Alternative Name"
  1. Проверьте права доступа к файлам сертификатов

Индексатор не запускается

Симптомы: сервис wazuh-indexer не стартует, в логах ошибки JVM или файловой системы.

Решение:

  1. Проверьте vm.max_map_count:
sysctl vm.max_map_count

Если значение меньше 262144, увеличьте:

sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
  1. Проверьте владельца каталога данных:
chown -R wazuh-indexer:wazuh-indexer /var/lib/wazuh-indexer
  1. Проверьте логи:
journalctl -u wazuh-indexer -n 100

Filebeat не отправляет данные в индексатор

Симптомы: алерты не появляются в дашборде, хотя менеджер работает.

Решение:

  1. Проверьте статус Filebeat:
systemctl status filebeat
filebeat test output
  1. Убедитесь, что адрес индексатора в /etc/filebeat/filebeat.yml корректен

  2. Проверьте подключение вручную:

curl -sk -u admin:admin https://192.168.1.10:9200

Дополнительные материалы

Last updated on