Wazuh SIEM — безплатна open-source платформа класу SIEM/XDR для моніторингу безпеки сервера: аналіз логів, контроль цілісності файлів, пошук вразливостей та автоматичне реагування на атаки. Wazuh декодує події, застосовує понад 3000 готових правил і класифікує інциденти за рівнями небезпеки від 0 до 15. Для власників VDS/VPS у Німеччині, США та Франції це спосіб побачити спробу злому в момент атаки, а не через тиждень у логах.
Що таке Wazuh SIEM і навіщо він потрібен для захисту сервера?
Wazuh SIEM вирішує те, з чим не справляється звичайне логування: записи з /var/log/auth.log, /var/log/nginx/access.log та dmesg самі по собі не показують зв'язку між подіями. Wazuh збирає дані з агентів, корелює їх на менеджері і присвоює єдиний рівень тривоги. Десять невдалих SSH-підключень за хвилину перетворюються не на десять рядків логу, а на одне оповіщення про підбір паролів.
Платформа ширша, ніж fail2ban: fail2ban реагує лише на шаблони в логах і банить IP, а Wazuh додатково контролює файли, перевіряє конфігурацію на відповідність CIS-бенчмаркам і зіставляє події з матрицею MITRE ATT&CK.
Як влаштована архітектура Wazuh: manager, агент та індексатор?
Архітектура Wazuh складається з трьох компонентів, які можна розгорнути на одному сервері або окремо для навантажених інфраструктур.
- Wazuh manager — центральний сервер, приймає події від агентів по TCP-порту 1514, застосовує декодери й правила, запускає active response.
- Wazuh agent — легкий процес на захищуваному сервері, збирає логи, стежить за файлами (FIM) і надсилає дані менеджеру зашифрованим каналом.
- Wazuh indexer — сховище на базі OpenSearch, приймає оброблені події від менеджера через порт 9200.
- Wazuh dashboard — веб-інтерфейс на порту 443 для перегляду алертів, графіків і статусу агентів.
Як встановити Wazuh-агент на VPS?
Якщо Wazuh manager уже розгорнутий (наприклад, через офіційний quick-start скрипт на окремому сервері управління), агент встановлюється на кожен захищуваний VDS/VPS однією командою.
curl -so wazuh-agent.deb https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.9.0-1_amd64.deb
WAZUH_MANAGER="10.0.0.5" dpkg -i ./wazuh-agent.deb
systemctl daemon-reload
systemctl enable wazuh-agent
systemctl start wazuh-agent
Після запуску агент з'являється у списку підключених хостів на дашборді менеджера. Варто одразу розподілити агенти за групами (веб-сервери, бази даних, пошта) — це спрощує застосування різних наборів правил FIM для кожної ролі сервера.
Як налаштувати File Integrity Monitoring (FIM) для контролю файлів?
FIM відстежує зміни важливих файлів: якщо атакувальник підмінить /etc/passwd, додасть бекдор у веб-корінь сайту або змінить /etc/ssh/sshd_config, Wazuh зафіксує це в реальному часі і покаже, що саме змінилося — права доступу, власника чи контрольну суму.
| Шлях | Режим | Що контролюється |
|---|---|---|
| /etc/passwd | realtime | Додавання та зміна облікових записів |
| /etc/ssh/sshd_config | realtime | Послаблення налаштувань SSH-доступу |
| /etc/crontab | scheduled | Впровадження шкідливих завдань планувальника |
| /var/www/html | realtime | Веб-шели та підміна файлів сайту |
| /etc/wazuh-agent/ossec.conf | scheduled | Спроби вимкнути сам моніторинг |
Налаштування — у файлі /var/ossec/etc/ossec.conf на агенті, всередині блоку syscheck:
<syscheck>
<directories realtime="yes" report_changes="yes" check_all="yes">/etc,/var/www/html</directories>
<directories check_all="yes" whodata="yes">/etc/ssh/sshd_config,/etc/passwd</directories>
<frequency>43200</frequency>
</syscheck>
Як Wazuh аналізує логи та зіставляє атаки з MITRE ATT&CK?
Аналіз логів проходить чотири кроки: збір рядка логу агентом, розбір декодером на поля (IP, користувач, код відповіді), зіставлення з правилом із бази decoder/rule і присвоєння рівня тривоги. Правила для SSH, nginx, Apache, MySQL і десятків сервісів йдуть у комплекті.
Відмінність від простого логування — правило несе мітку тактики і техніки з матриці MITRE ATT&CK. Серія невдалих спроб входу класифікується як підбір облікових даних, а правка sshd після підозрілої активності — як закріплення в системі. Про аудит системних викликів ядра, який доповнює Wazuh, — у статті про auditd.
Як налаштувати active response та алерти в Telegram і Slack?
Active response — автоматична реакція менеджера на спрацьоване правило без участі адміністратора. Частий сценарій — блокування IP після серії невдалих спроб входу по SSH.
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5712</rules_id>
<timeout>600</timeout>
</active-response>
Сповіщення про алерти налаштовуються у блоці integration файлу /var/ossec/etc/ossec.conf на менеджері: вбудовані інтеграції надсилають повідомлення в Slack, Telegram (через проксі-скрипт) і на email, передаючи рівень тривоги, правило і сервер, де відбулася подія. Адміністратор отримує повідомлення протягом секунд після інциденту, а не знаходить його під час планової перевірки логів.
Чек-лист впровадження Wazuh на сервері
- Розгорнути Wazuh manager, indexer і dashboard на окремому сервері управління.
- Встановити Wazuh agent на кожен VDS/VPS, розподілити агенти за групами.
- Увімкнути FIM realtime для /etc/passwd, /etc/ssh/sshd_config і веб-кореня сайту.
- Перевірити, що правила для nginx/Apache, MySQL і SSH активні і отримують події.
- Налаштувати active response для блокування IP при підборі паролів.
- Підключити алерти в Telegram або Slack із фільтром за рівнем тривоги від 7.
- Раз на тиждень звірятися із загальним чек-листом безпеки сервера.