Резервное копирование Wazuh - защита данных SIEM
Резервное копирование Wazuh охватывает конфигурацию компонентов, пользовательские правила и декодеры, ключи агентов, настройки API и индексированные данные. Потеря любого из этих элементов приводит к необходимости полной переконфигурации платформы или утрате исторических данных об инцидентах. В этом руководстве описаны все критические элементы для резервного копирования, методы создания копий и процедуры восстановления.
Что необходимо копировать
Wazuh Server (менеджер)
| Элемент | Путь | Описание |
|---|---|---|
| Основная конфигурация | /var/ossec/etc/ossec.conf | Конфигурация менеджера |
| Пользовательские правила | /var/ossec/etc/rules/local_rules.xml | Правила обнаружения |
| Пользовательские декодеры | /var/ossec/etc/decoders/local_decoder.xml | Декодеры для парсинга логов |
| Списки CDB | /var/ossec/etc/lists/ | Списки IoC и справочные таблицы |
| Общая конфигурация агентов | /var/ossec/etc/shared/ | Централизованная конфигурация групп агентов |
| Ключи агентов | /var/ossec/etc/client.keys | Ключи аутентификации агентов |
| Конфигурация API | /var/ossec/api/configuration/ | Настройки RESTful API |
| SSL-сертификаты | /var/ossec/etc/sslmanager.* | Сертификаты для связи с агентами |
| Хранилище ключей | /var/ossec/etc/keystore/ | Сохраненные учетные данные |
| Активное реагирование | /var/ossec/active-response/bin/ | Пользовательские скрипты реагирования |
| Интеграции | /var/ossec/integrations/ | Пользовательские скрипты интеграций |
Wazuh Indexer
| Элемент | Путь | Описание |
|---|---|---|
| Конфигурация | /etc/wazuh-indexer/opensearch.yml | Основная конфигурация |
| JVM-настройки | /etc/wazuh-indexer/jvm.options | Параметры JVM |
| Конфигурация безопасности | /etc/wazuh-indexer/opensearch-security/ | Роли, пользователи, настройки безопасности |
| SSL-сертификаты | /etc/wazuh-indexer/*.pem | TLS-сертификаты |
| Данные индексов | /var/lib/wazuh-indexer/ | Индексированные данные (алерты, события) |
Wazuh Dashboard
| Элемент | Путь | Описание |
|---|---|---|
| Конфигурация | /etc/wazuh-dashboard/opensearch_dashboards.yml | Основная конфигурация |
| SSL-сертификаты | /etc/wazuh-dashboard/*.pem | TLS-сертификаты |
| Конфигурация плагина | /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml | Настройки плагина Wazuh |
Filebeat
| Элемент | Путь | Описание |
|---|---|---|
| Конфигурация | /etc/filebeat/filebeat.yml | Основная конфигурация |
| Шаблон индекса | /etc/filebeat/wazuh-template.json | Шаблон Wazuh для индексатора |
| SSL-сертификаты | /etc/filebeat/*.pem | TLS-сертификаты |
Методы резервного копирования
Резервное копирование файловой системы
Наиболее простой метод - копирование критических файлов и каталогов.
Полный бэкап конфигурации менеджера:
#!/bin/bash
BACKUP_DIR="/backup/wazuh/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
# Менеджер
tar czf "$BACKUP_DIR/manager-config.tar.gz" \
/var/ossec/etc/ossec.conf \
/var/ossec/etc/rules/ \
/var/ossec/etc/decoders/ \
/var/ossec/etc/lists/ \
/var/ossec/etc/shared/ \
/var/ossec/etc/client.keys \
/var/ossec/etc/sslmanager.* \
/var/ossec/etc/keystore/ \
/var/ossec/api/configuration/ \
/var/ossec/active-response/bin/ \
/var/ossec/integrations/ \
2>/dev/null
# Индексатор
tar czf "$BACKUP_DIR/indexer-config.tar.gz" \
/etc/wazuh-indexer/opensearch.yml \
/etc/wazuh-indexer/jvm.options \
/etc/wazuh-indexer/opensearch-security/ \
/etc/wazuh-indexer/*.pem \
2>/dev/null
# Dashboard
tar czf "$BACKUP_DIR/dashboard-config.tar.gz" \
/etc/wazuh-dashboard/opensearch_dashboards.yml \
/etc/wazuh-dashboard/*.pem \
/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml \
2>/dev/null
# Filebeat
tar czf "$BACKUP_DIR/filebeat-config.tar.gz" \
/etc/filebeat/filebeat.yml \
/etc/filebeat/wazuh-template.json \
/etc/filebeat/*.pem \
2>/dev/null
echo "Backup completed: $BACKUP_DIR"
ls -lh "$BACKUP_DIR"Снимки индексов (Snapshots)
Для резервного копирования индексированных данных (алерты, события) используйте механизм снимков OpenSearch. Этот метод значительно эффективнее копирования файлов данных и поддерживает инкрементальные снимки.
Настройка репозитория снимков:
- Определите путь к репозиторию в конфигурации индексатора (
/etc/wazuh-indexer/opensearch.yml):
path.repo: ["/mnt/snapshots"]- Создайте каталог и установите права:
mkdir -p /mnt/snapshots
chown wazuh-indexer:wazuh-indexer /mnt/snapshots- Перезапустите индексатор:
systemctl restart wazuh-indexer- Зарегистрируйте репозиторий:
curl -sk -u admin:<PASSWORD> \
-X PUT "https://localhost:9200/_snapshot/wazuh_backup" \
-H "Content-Type: application/json" \
-d '{
"type": "fs",
"settings": {
"location": "/mnt/snapshots",
"compress": true
}
}'Создание снимка:
# Снимок всех индексов Wazuh
curl -sk -u admin:<PASSWORD> \
-X PUT "https://localhost:9200/_snapshot/wazuh_backup/snapshot_$(date +%Y%m%d)" \
-H "Content-Type: application/json" \
-d '{
"indices": "wazuh-alerts-*,wazuh-archives-*,wazuh-monitoring-*,wazuh-statistics-*",
"ignore_unavailable": true,
"include_global_state": false
}'Проверка статуса снимка:
curl -sk -u admin:<PASSWORD> \
"https://localhost:9200/_snapshot/wazuh_backup/snapshot_$(date +%Y%m%d)?pretty"Список доступных снимков:
curl -sk -u admin:<PASSWORD> \
"https://localhost:9200/_snapshot/wazuh_backup/_all?pretty"Резервное копирование через API
Wazuh API позволяет экспортировать конфигурацию и данные программно.
Экспорт списка агентов:
TOKEN=$(curl -sk -u wazuh-wui:<PASSWORD> \
-X POST "https://localhost:55000/security/user/authenticate?raw=true")
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/agents?limit=500" \
| jq '.data.affected_items' > /backup/wazuh/agents.jsonЭкспорт конфигурации групп:
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/groups" \
| jq '.data.affected_items' > /backup/wazuh/groups.jsonЭкспорт пользовательских правил:
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/rules/files?status=custom" \
| jq '.data.affected_items' > /backup/wazuh/custom-rules.jsonВосстановление из резервных копий
Восстановление конфигурации менеджера
- Остановите сервис менеджера:
systemctl stop wazuh-manager- Распакуйте резервную копию:
tar xzf /backup/wazuh/20250101_120000/manager-config.tar.gz -C /- Проверьте конфигурацию:
/var/ossec/bin/wazuh-control config-test- Запустите сервис:
systemctl start wazuh-managerВосстановление индексов из снимка
- Закройте целевой индекс (если он существует):
curl -sk -u admin:<PASSWORD> \
-X POST "https://localhost:9200/wazuh-alerts-4.x-2025.01.01/_close"- Восстановите снимок:
curl -sk -u admin:<PASSWORD> \
-X POST "https://localhost:9200/_snapshot/wazuh_backup/snapshot_20250101/_restore" \
-H "Content-Type: application/json" \
-d '{
"indices": "wazuh-alerts-*",
"ignore_unavailable": true,
"include_global_state": false
}'- Проверьте статус восстановления:
curl -sk -u admin:<PASSWORD> \
"https://localhost:9200/_cat/recovery?v&active_only=true"Восстановление конфигурации индексатора
- Остановите сервис:
systemctl stop wazuh-indexer- Распакуйте конфигурацию:
tar xzf /backup/wazuh/20250101_120000/indexer-config.tar.gz -C /- Восстановите конфигурацию безопасности:
systemctl start wazuh-indexer
/usr/share/wazuh-indexer/bin/indexer-security-init.shПлан аварийного восстановления
При полной потере сервера Wazuh выполните следующие шаги:
- Установите все компоненты Wazuh с нуля (см. установка )
- Остановите все сервисы
- Восстановите конфигурацию из резервных копий (менеджер, индексатор, Dashboard, Filebeat)
- Запустите компоненты в штатном порядке: индексатор, менеджер, Filebeat, Dashboard
- Восстановите данные индексов из снимков
- Проверьте подключение агентов - при восстановлении
client.keysагенты подключатся автоматически
Для восстановления в другом окружении (другой IP-адрес):
- Обновите IP-адреса в конфигурации каждого компонента
- Переоформите SSL-сертификаты при необходимости
- Обновите конфигурацию агентов с новым адресом менеджера
Автоматизация резервного копирования
Скрипт ежедневного резервного копирования
Создайте скрипт /usr/local/bin/wazuh-backup.sh:
#!/bin/bash
set -euo pipefail
BACKUP_BASE="/backup/wazuh"
RETENTION_DAYS=30
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="$BACKUP_BASE/$DATE"
ADMIN_PASS="<PASSWORD>"
mkdir -p "$BACKUP_DIR"
# Конфигурация менеджера
tar czf "$BACKUP_DIR/manager-config.tar.gz" \
/var/ossec/etc/ossec.conf \
/var/ossec/etc/rules/ \
/var/ossec/etc/decoders/ \
/var/ossec/etc/lists/ \
/var/ossec/etc/shared/ \
/var/ossec/etc/client.keys \
/var/ossec/etc/sslmanager.* \
/var/ossec/api/configuration/ \
2>/dev/null || true
# Конфигурация индексатора
tar czf "$BACKUP_DIR/indexer-config.tar.gz" \
/etc/wazuh-indexer/opensearch.yml \
/etc/wazuh-indexer/jvm.options \
/etc/wazuh-indexer/opensearch-security/ \
2>/dev/null || true
# Снимок индексов
curl -sk -u admin:"$ADMIN_PASS" \
-X PUT "https://localhost:9200/_snapshot/wazuh_backup/snapshot_$DATE" \
-H "Content-Type: application/json" \
-d '{
"indices": "wazuh-alerts-*,wazuh-archives-*",
"ignore_unavailable": true,
"include_global_state": false
}' > /dev/null 2>&1
# Удаление старых резервных копий
find "$BACKUP_BASE" -maxdepth 1 -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;
# Удаление старых снимков
for snap in $(curl -sk -u admin:"$ADMIN_PASS" \
"https://localhost:9200/_snapshot/wazuh_backup/_all" \
| jq -r '.snapshots[] | select(.start_time < "'$(date -d "-${RETENTION_DAYS} days" +%Y-%m-%dT%H:%M:%S)'") | .snapshot'); do
curl -sk -u admin:"$ADMIN_PASS" \
-X DELETE "https://localhost:9200/_snapshot/wazuh_backup/$snap" > /dev/null 2>&1
done
echo "$(date): Backup completed successfully" >> /var/log/wazuh-backup.logНастройка cron
chmod +x /usr/local/bin/wazuh-backup.sh
# Ежедневное резервное копирование в 02:00
echo "0 2 * * * root /usr/local/bin/wazuh-backup.sh" > /etc/cron.d/wazuh-backupУстранение проблем
Снимок не создается
Проверьте регистрацию репозитория:
curl -sk -u admin:<PASSWORD> \
"https://localhost:9200/_snapshot/wazuh_backup?pretty"Убедитесь, что каталог снимков существует и доступен для записи пользователем wazuh-indexer.
Восстановление из снимка завершается ошибкой
Типичная причина - индекс с таким именем уже открыт. Закройте или удалите существующий индекс перед восстановлением:
curl -sk -u admin:<PASSWORD> \
-X POST "https://localhost:9200/wazuh-alerts-4.x-2025.01.01/_close"Агенты не подключаются после восстановления
Проверьте, что файл client.keys восстановлен корректно и содержит записи для всех агентов:
wc -l /var/ossec/etc/client.keysПри необходимости повторно зарегистрируйте агенты через API управления агентами .
Связанные разделы
- Обновление Wazuh - создание бэкапа перед обновлением
- Устранение неполадок - диагностика проблем после восстановления
- Кластер индексатора - снимки в кластерной конфигурации