Настройка Wazuh SIEM: обнаружение вторжений и анализ инцидентов

Проблема

Системные администраторы и специалисты по безопасности ежедневно сталкиваются с десятками событий, которые могут указывать на атаку: неудачные попытки SSH-подключений, подозрительные процессы, изменение критических файлов, эксплуатация уязвимостей в веб-приложениях. Штатных логов journalctl и auth.log недостаточно они не агрегируются в единую картину, не коррелируют события между собой и не предупреждают об инциденте в реальном времени. Проприетарные SIEM-системы дороги и сложны в развёртывании, а многие Open Source-решения (например, ELK с модулями безопасности) требуют ручной настройки правил и не имеют встроенной базы знаний об угрозах. SIEM Wazuh это открытая платформа, объединяющая сбор логов, обнаружение вторжений (HIDS), анализ целостности файлов, оценку уязвимостей и автоматическое реагирование на инциденты, и при этом поставляющая готовые правила и интеграцию с MITRE ATT&CK из коробки.

Решение

Развернём Wazuh в классической архитектуре «менеджер + агенты». Менеджер (сервер) будет централизованно принимать события от агентов, анализировать их и хранить результаты в Elasticsearch. Для визуализации и управления инцидентами используется веб-интерфейс Wazuh Dashboard (форк Kibana). На каждый контролируемый Linux-сервер установим лёгкий агент, который мониторит журналы, целостность файлов, запущенные процессы и отправляет всё на менеджер. Wazuh установка будет выполнена по официальной документации Wazuh Installation Guide с использованием репозиториев для Debian/Ubuntu. Для быстрой настройки воспользуемся скриптами быстрой установки, описанными в Wazuh Quickstart. После развёртывания настроим оповещения в Telegram и проверим работу типового правила обнаружения bruteforce-атаки по SSH.

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

Шаг 1. Подготовка сервера и установка менеджера Wazuh

Выделите сервер или виртуальную машину с минимум 4 ГБ ОЗУ и 2 CPU (рекомендовано 8+ ГБ для продуктивной среды). ОС Ubuntu 24.04 LTS или Debian 12.

  1. Обновите систему и установите необходимые пакеты:

bash

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget gnupg apt-transport-https -y
  1. Импортируйте GPG-ключ репозитория Wazuh и добавьте сам репозиторий:

bash

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --dearmor -o /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
  1. Установите менеджер Wazuh:

bash

sudo apt update
sudo apt install wazuh-manager -y
  1. После установки служба должна запуститься автоматически. Проверьте статус:

bash

sudo systemctl status wazuh-manager

Менеджер слушает порты 1514 (UDP/TCP) для приёма событий от агентов и 55000 (TCP) для API. Документация по установке: Installing Wazuh Manager.

Шаг 2. Установка и настройка Elasticsearch

Wazuh использует Elasticsearch как хранилище для алертов и событий.

  1. Добавьте репозиторий Elasticsearch (версии 7.x, совместимой с текущей Wazuh 4.x):

bash

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch=7.17.6 -y
  1. Настройте Elasticsearch на прослушивание localhost (по умолчанию). В файле /etc/elasticsearch/elasticsearch.yml убедитесь, что указано:

yaml

node.name: node-1
network.host: 127.0.0.1
http.port: 9200
  1. Запустите Elasticsearch и проверьте его доступность:

bash

sudo systemctl enable --now elasticsearch
curl http://127.0.0.1:9200

Официальная документация: Elasticsearch Setup.

Шаг 3. Установка Wazuh Dashboard (веб-интерфейс)

  1. Установите Wazuh Dashboard из того же репозитория:

bash

sudo apt install wazuh-dashboard -y
  1. Настройте доступ к API Wazuh. В файле /etc/wazuh-dashboard/opensearch_dashboards.yml укажите:

yaml

server.host: "0.0.0.0"
server.port: 443
opensearch.hosts: ["https://localhost:9200"]
  1. Создайте учётные данные администратора (логин/пароль) через скрипт:

bash

sudo /usr/share/wazuh-dashboard/bin/opensearch-dashboards-keystore --allow-root create
# Следуйте инструкциям мастера
  1. Перезапустите службу и проверьте статус:

bash

sudo systemctl restart wazuh-dashboard
sudo systemctl status wazuh-dashboard
  1. Откройте браузер и зайдите на https://<IP_сервера>. Войдите под заданными учётными данными. Если страница недоступна, проверьте брандмауэр (sudo ufw allow 443/tcp).

Документация: Installing Wazuh Dashboard.

Шаг 4. Установка агентов Wazuh на целевые Linux-хосты

На каждом сервере, который нужно мониторить, установите агент.

  1. Добавьте репозиторий Wazuh и установите агент (аналогично менеджеру, но пакет другой):

bash

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo gpg --dearmor -o /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
sudo apt update
sudo apt install wazuh-agent -y
  1. Зарегистрируйте агент на менеджере. На сервере с менеджером выполните:

bash

sudo /var/ossec/bin/manage_agents -a <IP_агента> -n <имя_хоста>

Эта команда выведет ключ агента. Скопируйте его.

  1. На хосте с агентом импортируйте ключ:

bash

sudo /var/ossec/bin/manage_agents -i <ключ>
  1. Отредактируйте файл конфигурации агента /var/ossec/etc/ossec.conf, указав IP-адрес менеджера:

xml

<client>
  <server>
    <address>192.168.1.100</address>
  </server>
</client>
  1. Запустите агент:

bash

sudo systemctl start wazuh-agent
sudo systemctl enable wazuh-agent

Документация: Installing Wazuh Agents.

Шаг 5. Проверка работы и настройка оповещений

  1. В веб-интерфейсе Wazuh Dashboard перейдите на вкладку Wazuh → Agents. Вы должны увидеть подключённый хост с зелёным статусом.
  2. По умолчанию Wazuh уже содержит сотни правил обнаружения. Чтобы протестировать, попробуйте несколько раз ввести неверный пароль по SSH на хосте с агентом. В разделе Security Events вы увидите алерт «SSH brute force attack».
  3. Для настройки уведомлений в Telegram создайте скрипт в /var/ossec/integrations/custom-telegram.py, использующий Telegram Bot API, и пропишите его в конфигурации менеджера (/var/ossec/etc/ossec.conf) в секции <integration>. Подробный пример есть в Wazuh Integration with Telegram.
  4. После изменения конфигурации менеджера всегда перезапускайте его:

bash

sudo systemctl restart wazuh-manager

Устранение распространённых проблем

СимптомВероятная причинаРешение
Агент не подключается к менеджеру (статус «Disconnected»)Неправильный IP менеджера в конфигурации агента или заблокирован порт 1514Проверьте ping <IP_менеджера>. Убедитесь, что брандмауэр на менеджере разрешает UDP/TCP порт 1514 (sudo ufw allow 1514).
Dashboard показывает ошибку подключения к APIНеверный пароль или API Wazuh не запущенПроверьте статус sudo systemctl status wazuh-manager. Убедитесь, что в /var/ossec/api/configuration/api.yaml заданы корректные учётные данные.
Elasticsearch не запускается с ошибкой «vm.max_map_count too low»Недостаточный лимит виртуальной памятиВыполните sudo sysctl -w vm.max_map_count=262144 и добавьте vm.max_map_count=262144 в /etc/sysctl.conf.
Алерты не генерируются на известные атакиУровень логирования агента недостаточен или правила не включают этот тип событийВ конфигурации агента (ossec.conf) убедитесь, что секция <localfile> включает нужные журналы (например, /var/log/auth.log). Проверьте уровень алертов в менеджере: /var/ossec/etc/ossec.conf → <alerts>.
После обновления Wazuh перестают работать интеграцииИзменился формат конфигурационных файловПеред обновлением всегда читайте Release Notes. Делайте резервную копию /var/ossec/etc/ossec.conf.

SIEM Wazuh обеспечивает комплексный мониторинг безопасности, который раньше был доступен только крупным компаниям с бюджетом на коммерческие решения. После развёртывания менеджера и подключения агентов вы получаете не просто сборщик логов, а интеллектуальную систему, способную автоматически выявлять bruteforce-атаки, эксплуатацию уязвимостей, изменения в критических файлах и многое другое. Благодаря готовым правилам и интеграции с MITRE ATT&CK время реакции на инциденты сокращается с часов до минут, а накопленная база событий становится основой для аудита и расследований.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Популярные
Новые Старые

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Menu