Управління та доступ
URL сервісів
Кожен SOC сервіс має власний web UI. Доступ у двох режимах:
- Через FQDN (рекомендовано) — nginx reverse proxy на CT502 (192.168.200.5) з wildcard SSL
*.nasbu.edu.ua+ ACL обмежень (див. нижче). - Прямо до CT — IP + порт у VLAN250. Для debugging, коли nginx недоступний, або для internal automation.
| Сервіс | FQDN (через rproxy) | Прямий у VLAN250 | CT | Статус |
|---|---|---|---|---|
| Wazuh Dashboard | https://wazuh.nasbu.edu.ua |
https://10.250.0.12:443 |
CT703 | 🟢 |
| TheHive | https://thehive.nasbu.edu.ua |
http://10.250.0.30:9000 |
CT710 | 🟢 (4.1.24) |
| Cortex | https://cortex.nasbu.edu.ua |
http://10.250.0.31:9001 |
CT711 | 🟢 |
| MISP | https://misp.nasbu.edu.ua |
https://10.250.0.15 |
CT706 | 🟢 |
| Shuffle | https://shuffle.nasbu.edu.ua |
http://10.250.0.32:3443 |
CT712 | 🟢 |
| Velociraptor | https://velociraptor.nasbu.edu.ua |
https://10.250.0.33:8889 |
CT713 | 🟢 |
| Wazuh Manager API | — (REST тільки) | https://10.250.0.11:55000 |
CT702 | 🟢 |
| Wazuh Indexer REST API | — (REST тільки) | https://10.250.0.10:9200, .13, .14 |
CT701/704/705 | 🟢 |
| CrowdSec LAPI | — (API only, UI немає) | http://10.250.0.16:8080 |
CT707 | 🟢 — управління через cscli з CT707 |
| CrowdSec blocklist feed | — | http://10.250.0.16/security/blocklist |
CT707 | 🟢 — FortiGate підтягує кожну хвилину |
!!! warning "Не розгорнуто (Tier 3 планується)" - Grafana — executive dashboards, BACKLOG TASK-092e - CrowdSec Cloud Console — не використовуємо cloud service, тільки локальний LAPI
Якщо у попередніх версіях документації зустрічаєш URL типу `grafana:3000` або `crowdsec:3000` — це planning placeholder, не реальність.
ACL — хто може відкрити FQDN
Чому SOC UI недоступні з інтернету: ці субдомени (wazuh, thehive, cortex, misp, shuffle, velociraptor) існують тільки у внутрішньому FortiGate DNS — у Cloudflare їх нема. З публічного інтернету DNS не резолвиться взагалі.
Nginx ACL — другий рубіж для внутрішніх мереж (обмежує хто з internal може відкрити UI):
allow 10.99.0.0/24; # VPN клієнти (WireGuard)
allow 10.30.0.9; # admin-node (для curl-тестів з bastion)
allow 10.168.150.0/24; # офісна мережа Академії
allow 10.250.0.0/24; # SIEM VLAN250 (CT↔CT internal)
deny all; # все інше → 403 Forbidden
SSH доступ до Proxmox нод і контейнерів
SOC інфраструктура живе на 5 окремих Proxmox нодах (не кластер). SSH доступ: PC → admin-node (94.45.140.197:2223) → reverse SSH tunnel → localhost:227X (порт кожної siem-pxN ноди). Проміжних хопів (workspace, share) у цьому ланцюзі нема.
| SSH alias | Proxmox нода | Host IP (VLAN250) | SSH порт | Контейнери на ній |
|---|---|---|---|---|
siem-px1 |
siem-px1 | 10.250.0.2 | 2270 | CT701 — Wazuh Indexer primary |
siem-px2 |
siem-px2 | 10.250.0.3 | 2271 | CT702 (Wazuh Manager) · CT710 (TheHive) · CT711 (Cortex) |
siem-px3 |
siem-px3 | 10.250.0.4 | 2272 | CT703 (Wazuh Dashboard) · CT704 (Wazuh Indexer replica 1) |
siem-px4 |
siem-px4 | 10.250.0.5 | 2273 | CT706 (MISP) · CT707 (CrowdSec) · CT712 (Shuffle) |
siem-px5 |
siem-px5 | 10.250.0.6 | 2274 | CT705 (Wazuh Indexer replica 2) · CT713 (Velociraptor) |
Proxmox web UI на кожній ноді: https://10.250.0.X:8006 (тільки з VLAN250 / VPN). Публічного FQDN немає.
Типовий pattern для команд всередині CT
# Дізнатись статус сервісу
ssh siem-px2 'pct exec 710 -- systemctl status docker'
# Переглянути логи Docker контейнера
ssh siem-px2 'pct exec 710 -- docker logs thehive --tail 50'
# Виконати curl з CT до локального сервісу
ssh siem-px4 'pct exec 706 -- curl -sk https://localhost/users/login'
# Pattern "CT host level" (на самій проксмокс-ноді, не в CT)
ssh siem-px2 'dmesg -T | tail -30'
Модель управління
Єдиної control plane (як у Kubernetes) немає. Кожен сервіс — окрема web UI + окрема auth + окрема config.
Ключові моменти:
- Shuffle був задуманий як "диригент" (SOAR orchestration layer), але наразі idle: playbook'и не написані (TASK-092d subtask 22 deferred). Реальна автоматизація — через custom Python/bash скрипти на CT702:
/var/ossec/integrations/custom-thehive.py— Wazuh → TheHive Alert/var/ossec/integrations/custom-crowdsec-block.py— Wazuh → CrowdSec decision/var/ossec/integrations/custom-teams.sh— Wazuh → Teams webhook
- Proxmox управляє базовою інфраструктурою (CT/VM, storage, network) — не SOC-застосунками.
-
Централізованого SSO немає (TASK-115 заплановано). Кожна система має окремі credentials. План: Keycloak з LDAP federation → дві AD групи (обидві у
OU=AcadAdmins):SOC-Users(6 членів) — базовий доступ до SOC UISOC-Admins(2 членів: Samuel, OleksiiSt) — admin role у всіх сервісах
Обидва admin-користувачі включені і в
SOC-Usersтеж. Email у AD — в атрибутіuserPrincipalName, не вmail. - Централізоване логування існує тільки для security events (Wazuh Indexer). Логи додатків (nginx access, docker stdout, systemd journal) залишаються на окремих CT.
Патерни доступу за ролями
| Роль | Основний UI | Додатково | Примітка |
|---|---|---|---|
| SOC аналітик Tier 1 | Wazuh Dashboard + TheHive | Teams (нотифікації) | 60% часу — Wazuh Dashboard; triage — TheHive. Детально див. 006. Daily Routine - Tier 1. |
| SOC аналітик Tier 2 | TheHive (case management) | Wazuh Dashboard, MISP, Cortex | Глибокі розслідування, pivot на forensics |
| SOC аналітик Tier 3 / Threat Hunter | Velociraptor + Wazuh Indexer search | MISP, TheHive | Proactive hunts, deep forensics, threat research |
| SOC Manager / CISO | (майбутнє: Grafana) | Wazuh Dashboard executive view | Tier 3, компонент ще не розгорнуто |
| Системний адміністратор | SSH bastion chain + pct exec |
Proxmox web UI (VLAN250) | Не через SOC UI — через Proxmox/CLI |
| Автоматизація (planned) | Shuffle | всі сервіси через API | Shuffle idle; зараз працюють custom scripts на CT702 |
FortiGate policies (для reference)
| Policy ID | Призначення |
|---|---|
| 135 | SOC:RProxy→VLAN250-GUI — дозволяє nginx (CT502 у VLAN200) ходити до SOC сервісів у VLAN250 на портах 443, 9000, 9001, 3443, 8889 |
| 137 | CrowdSec:Block-Inbound — DROP IP з CrowdSec feed (external-resource feed, refresh 1 хв) |
| 119 | VLAN150→VLAN250 ALL — дозволяє офісній мережі ходити у SOC |
| 113 | SOC→Internet — VLAN250 → WAN (HTTPS/HTTP/DNS/NTP) для Docker pulls, VirusTotal/AbuseIPDB API, MISP feeds |
Останнє оновлення: 2026-04-15. Відображає стан після Tier 2 deployment (2026-04-14) та TheHive 5.5→4.1.24 downgrade (2026-04-15).