Проблема
Системные администраторы и специалисты по безопасности ежедневно сталкиваются с десятками событий, которые могут указывать на атаку: неудачные попытки 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.
- Обновите систему и установите необходимые пакеты:
bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget gnupg apt-transport-https -y
- Импортируйте 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
- Установите менеджер Wazuh:
bash
sudo apt update
sudo apt install wazuh-manager -y
- После установки служба должна запуститься автоматически. Проверьте статус:
bash
sudo systemctl status wazuh-manager
Менеджер слушает порты 1514 (UDP/TCP) для приёма событий от агентов и 55000 (TCP) для API. Документация по установке: Installing Wazuh Manager.
Шаг 2. Установка и настройка Elasticsearch
Wazuh использует Elasticsearch как хранилище для алертов и событий.
- Добавьте репозиторий 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
- Настройте Elasticsearch на прослушивание localhost (по умолчанию). В файле
/etc/elasticsearch/elasticsearch.ymlубедитесь, что указано:
yaml
node.name: node-1
network.host: 127.0.0.1
http.port: 9200
- Запустите Elasticsearch и проверьте его доступность:
bash
sudo systemctl enable --now elasticsearch
curl http://127.0.0.1:9200
Официальная документация: Elasticsearch Setup.
Шаг 3. Установка Wazuh Dashboard (веб-интерфейс)
- Установите Wazuh Dashboard из того же репозитория:
bash
sudo apt install wazuh-dashboard -y
- Настройте доступ к API Wazuh. В файле
/etc/wazuh-dashboard/opensearch_dashboards.ymlукажите:
yaml
server.host: "0.0.0.0"
server.port: 443
opensearch.hosts: ["https://localhost:9200"]
- Создайте учётные данные администратора (логин/пароль) через скрипт:
bash
sudo /usr/share/wazuh-dashboard/bin/opensearch-dashboards-keystore --allow-root create
# Следуйте инструкциям мастера
- Перезапустите службу и проверьте статус:
bash
sudo systemctl restart wazuh-dashboard
sudo systemctl status wazuh-dashboard
- Откройте браузер и зайдите на
https://<IP_сервера>. Войдите под заданными учётными данными. Если страница недоступна, проверьте брандмауэр (sudo ufw allow 443/tcp).
Документация: Installing Wazuh Dashboard.
Шаг 4. Установка агентов Wazuh на целевые Linux-хосты
На каждом сервере, который нужно мониторить, установите агент.
- Добавьте репозиторий 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
- Зарегистрируйте агент на менеджере. На сервере с менеджером выполните:
bash
sudo /var/ossec/bin/manage_agents -a <IP_агента> -n <имя_хоста>
Эта команда выведет ключ агента. Скопируйте его.
- На хосте с агентом импортируйте ключ:
bash
sudo /var/ossec/bin/manage_agents -i <ключ>
- Отредактируйте файл конфигурации агента
/var/ossec/etc/ossec.conf, указав IP-адрес менеджера:
xml
<client>
<server>
<address>192.168.1.100</address>
</server>
</client>
- Запустите агент:
bash
sudo systemctl start wazuh-agent
sudo systemctl enable wazuh-agent
Документация: Installing Wazuh Agents.
Шаг 5. Проверка работы и настройка оповещений
- В веб-интерфейсе Wazuh Dashboard перейдите на вкладку Wazuh → Agents. Вы должны увидеть подключённый хост с зелёным статусом.
- По умолчанию Wazuh уже содержит сотни правил обнаружения. Чтобы протестировать, попробуйте несколько раз ввести неверный пароль по SSH на хосте с агентом. В разделе Security Events вы увидите алерт «SSH brute force attack».
- Для настройки уведомлений в Telegram создайте скрипт в
/var/ossec/integrations/custom-telegram.py, использующий Telegram Bot API, и пропишите его в конфигурации менеджера (/var/ossec/etc/ossec.conf) в секции<integration>. Подробный пример есть в Wazuh Integration with Telegram. - После изменения конфигурации менеджера всегда перезапускайте его:
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 время реакции на инциденты сокращается с часов до минут, а накопленная база событий становится основой для аудита и расследований.







