# Архитектура Wazuh - компоненты, потоки данных, порты

> Архитектура платформы Wazuh 4.14 - взаимодействие агентов с сервером, индексатор OpenSearch, модели развертывания и сравнение с Splunk, ELK и QRadar

Source: https://opennix.org/docs/wazuh/getting-started/wazuh-architecture/


Wazuh использует распределенную архитектуру, состоящую из четырех основных компонентов: агент, сервер (менеджер), индексатор и дашборд. Каждый компонент выполняет определенную роль в процессе сбора, анализа, хранения и визуализации данных безопасности. Понимание архитектуры необходимо для корректного планирования развертывания и масштабирования платформы.

## Обзор архитектуры

Архитектура Wazuh построена по принципу "агент - сервер - хранилище - визуализация". Агенты, установленные на конечных точках, собирают события безопасности и передают их на центральный сервер для анализа. Результаты анализа передаются в индексатор для долгосрочного хранения и поиска, а дашборд предоставляет веб-интерфейс для работы с данными.

```
┌──────────────┐     1514/TCP      ┌──────────────┐     9200/TCP      ┌──────────────┐
│              │   (AES-256)       │              │    (TLS)          │              │
│  Wazuh Agent │ ────────────────> │ Wazuh Server │ ────────────────> │    Wazuh     │
│  (endpoint)  │                   │  (manager)   │    (Filebeat)     │   Indexer    │
│              │                   │              │                   │ (OpenSearch) │
└──────────────┘                   └──────┬───────┘                   └──────┬───────┘
                                          │                                  │
                                   55000/TCP                          9200/TCP
                                   (REST API)                          (API)
                                          │                                  │
                                          ▼                                  ▼
                                   ┌──────────────────────────────────────────┐
                                   │           Wazuh Dashboard                │
                                   │     (OpenSearch Dashboards, 443/TCP)     │
                                   └──────────────────────────────────────────┘
```

## Поток данных

Процесс обработки событий безопасности в Wazuh состоит из нескольких этапов.

### Сбор данных (агент)

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

- Системные журналы (syslog, Windows Event Log, macOS ULS)
- Изменения файловой системы (FIM)
- Результаты сканирования конфигурации (SCA)
- Данные об установленном ПО и открытых портах (Syscollector)
- Результаты проверки на руткиты
- Вывод пользовательских команд (command monitoring)

Собранные события шифруются с использованием AES-256 и передаются на сервер через TCP-порт 1514.

### Анализ (сервер)

Сервер Wazuh (менеджер) получает события от агентов и выполняет их обработку:

1. **Декодирование** - извлечение структурированных полей из сырых логов с помощью декодеров
2. **Сопоставление с правилами** - проверка декодированных событий по набору правил обнаружения
3. **Обогащение** - добавление контекста через CDB-списки, threat intelligence и MITRE ATT&CK
4. **Генерация алертов** - формирование уведомлений при срабатывании правил
5. **Активное реагирование** - выполнение автоматических действий (блокировка IP, остановка процесса)

Сервер также управляет конфигурацией агентов, их регистрацией и обновлениями через RESTful API (порт 55000).

### Индексация и хранение (индексатор)

Filebeat, установленный на сервере Wazuh, передает алерты и архивные события в индексатор по протоколу TLS (порт 9200). Индексатор на базе OpenSearch обеспечивает:

- Полнотекстовый поиск по событиям безопасности
- Агрегацию данных для аналитических запросов
- Управление жизненным циклом индексов (ISM)
- Кластеризацию для отказоустойчивости и горизонтального масштабирования

### Визуализация (дашборд)

Wazuh Dashboard (на базе OpenSearch Dashboards) предоставляет веб-интерфейс для:

- Просмотра и фильтрации алертов в реальном времени
- Визуализации данных через графики, таблицы и карты
- Управления агентами, правилами и конфигурацией
- Формирования отчетов по соответствию стандартам
- Поиска угроз через встроенные инструменты threat hunting

Дашборд обращается к серверу Wazuh через REST API (порт 55000) для получения конфигурации и к индексатору (порт 9200) для получения данных.

## Безагентный мониторинг

Для устройств, на которые невозможно установить агент (сетевые коммутаторы, маршрутизаторы, межсетевые экраны, устройства IDS/IPS), Wazuh поддерживает безагентный мониторинг:

- **Syslog** - прием логов по протоколу syslog (UDP/TCP, порт 514, отключен по умолчанию)
- **SSH** - периодический сбор данных через SSH-подключение
- **API** - интеграция через API устройств

Данные от безагентных источников поступают непосредственно на сервер Wazuh и обрабатываются тем же движком анализа.

## Модели развертывания

Wazuh поддерживает три модели развертывания в зависимости от масштаба и требований к отказоустойчивости.

### All-in-one (все на одном узле)

Все компоненты - сервер, индексатор и дашборд - устанавливаются на один хост. Подходит для лабораторных сред, тестирования и малых инфраструктур с количеством агентов до 50-100.

| Преимущество | Ограничение |
|---|---|
| Минимальные требования к ресурсам | Отсутствие отказоустойчивости |
| Простота установки и обслуживания | Ограниченная производительность |
| Быстрое развертывание для PoC | Не подходит для продуктивных сред |

### Одноузловая (single-node)

Каждый компонент устанавливается на отдельный сервер: один сервер Wazuh, один индексатор, один дашборд. Рекомендуется для сред среднего масштаба (100-500 агентов).

| Преимущество | Ограничение |
|---|---|
| Разделение нагрузки между компонентами | Каждый компонент - точка отказа |
| Возможность независимого масштабирования | Требуется больше серверов |
| Подходит для продуктивных сред | Нет кластеризации |

### Распределенная (multi-node)

Кластерная конфигурация с несколькими экземплярами серверов и индексаторов. Один дашборд подключается к кластерам сервера и индексатора. Предназначена для крупных инфраструктур (более 500 агентов) с требованиями к высокой доступности.

| Преимущество | Ограничение |
|---|---|
| Высокая доступность всех компонентов | Сложность настройки и обслуживания |
| Горизонтальное масштабирование | Повышенные требования к ресурсам |
| Балансировка нагрузки | Требуется опыт кластерного администрирования |

Кластер серверов Wazuh использует порт 1516/TCP для межузловой синхронизации. Кластер индексаторов использует порты 9300-9400/TCP для внутрикластерного взаимодействия.

## Протоколы и порты

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

| Порт | Протокол | Компонент | Назначение |
|---|---|---|---|
| 1514/TCP | AES-256 | Агент - Сервер | Передача событий от агентов |
| 1514/UDP | AES-256 | Агент - Сервер | Передача событий (опционально) |
| 1515/TCP | TLS | Агент - Сервер | Регистрация (enrollment) агентов |
| 1516/TCP | TLS | Сервер - Сервер | Синхронизация кластера серверов |
| 514/UDP,TCP | Syslog | Внешние источники - Сервер | Прием syslog (отключен по умолчанию) |
| 55000/TCP | HTTPS | Дашборд - Сервер | REST API управления |
| 9200/TCP | HTTPS | Сервер/Дашборд - Индексатор | API индексатора (Filebeat, запросы) |
| 9300-9400/TCP | TLS | Индексатор - Индексатор | Внутрикластерное взаимодействие |
| 443/TCP | HTTPS | Пользователь - Дашборд | Веб-интерфейс |

## Сравнение с альтернативными SIEM-решениями

Архитектура Wazuh имеет общие принципы с другими SIEM-платформами, но отличается в реализации.

### Wazuh и Splunk

| Аспект | Wazuh | Splunk |
|---|---|---|
| Агент сбора | Wazuh Agent | Universal Forwarder / Heavy Forwarder |
| Обработка данных | Wazuh Server (декодеры + правила) | Indexer (search-time/index-time) |
| Хранение | Wazuh Indexer (OpenSearch) | Splunk Indexer (проприетарный) |
| Визуализация | Wazuh Dashboard | Search Head |
| Лицензирование | Open source (GPLv2) | Коммерческая лицензия (по объему данных) |
| Кластер | Нативная кластеризация сервера и индексатора | Indexer Cluster + Search Head Cluster |

Splunk использует проприетарный формат хранения и тарифицируется по объему индексируемых данных. Wazuh использует OpenSearch и не имеет ограничений по объему данных на уровне лицензии.

### Wazuh и ELK Stack (Elastic Security)

| Аспект | Wazuh | ELK Stack |
|---|---|---|
| Агент сбора | Wazuh Agent | Elastic Agent / Beats |
| Обработка данных | Wazuh Server | Logstash / Elasticsearch Ingest Pipelines |
| Хранение | Wazuh Indexer (OpenSearch) | Elasticsearch |
| Визуализация | Wazuh Dashboard | Kibana |
| Правила обнаружения | Wazuh Rules (XML) | Detection Rules (KQL/EQL) |
| Лицензирование | Open source (GPLv2) | Elastic License 2.0 / SSPL |

Wazuh изначально создавался как форк OSSEC и ориентирован на задачи безопасности. ELK Stack - универсальная платформа для работы с логами, в которой функции безопасности появились позднее через Elastic Security.

### Wazuh и IBM QRadar

| Аспект | Wazuh | QRadar |
|---|---|---|
| Сбор данных | Wazuh Agent + Syslog | Event Collectors / Flow Collectors |
| Обработка | Wazuh Server | Event Processors / Flow Processors |
| Корреляция | Правила с уровнями (0-15) | Offense Engine |
| Визуализация | Wazuh Dashboard | QRadar Console |
| Лицензирование | Open source (GPLv2) | Коммерческая лицензия (по EPS) |
| Развертывание | On-premise, Docker, Kubernetes | On-premise, виртуальные appliance |

QRadar использует концепцию Offenses для корреляции событий и тарифицируется по количеству событий в секунду (EPS). Wazuh использует систему правил с уровнями критичности от 0 до 15 и не имеет ограничений EPS.

## Рекомендации по выбору модели развертывания

При планировании развертывания Wazuh следует учитывать следующие факторы:

- **Количество агентов** - определяет требования к вычислительным ресурсам сервера
- **Объем событий** - влияет на размер хранилища индексатора и пропускную способность сети
- **Требования к доступности** - для продуктивных сред рекомендуется кластерная конфигурация
- **Срок хранения данных** - определяет объем дискового пространства индексатора
- **Сетевая топология** - влияет на размещение компонентов и настройку межсетевых экранов

Для первоначального ознакомления с платформой рекомендуется начать с [развертывания в Docker](/docs/wazuh/deployment/wazuh-docker-deployment/), которое позволяет быстро запустить все компоненты на одном хосте. Подробное описание каждого компонента доступно в разделе [Компоненты Wazuh](/docs/wazuh/getting-started/wazuh-components/).

