← Документация Hope·HopeDChopedc.ru
HopeDC · Документация

Журнал безопасности, SIEM и мониторинг

События входа, блокировок, паролей и изменений; выгрузка в SIEM по syslog; метрики Prometheus и шаблон Zabbix
Документ 16 · Версия 1.3 · 10.11.2026 · соответствует HopeDC v199
Аудитория: администраторы безопасности, эксплуатации и мониторинга
Раздел панели: «Безопасность → Журнал безопасности»

Содержание

  1. 1. Назначение
  2. 2. Какие события записываются
  3. 3. Хранение, поиск и выгрузка
  4. 4. Настройки журнала
  5. 5. Выгрузка в SIEM
  6. 6. Метрики Prometheus
  7. 7. Шаблон Zabbix
  8. 8. Права доступа
  9. 9. Нагрузка и ограничения
  10. 10. Диагностика

1. Назначение

Каждый узел HopeDC (v164 и новее) ведёт журнал безопасности: входы по Kerberos, LDAP, NTLM и в панель (успешные и неудачные), блокировки и разблокировки учётных записей, смену и сброс паролей, изменения каталога и групп, действия администраторов в панели и изменения настроек аудита. Коды событий совпадают с журналом безопасности Windows (4624, 4625, 4740 …), поэтому правила корреляции SIEM, написанные для Active Directory, применимы без переделки.

События можно смотреть в панели, выгружать в CSV/JSON и отправлять в SIEM по syslog. Отдельно узел отдаёт метрики в формате Prometheus — для Prometheus, VictoriaMetrics, Grafana и Zabbix (готовый шаблон).

2. Какие события записываются

КодСобытиеПротоколКогда
4768Выдан / отказ в билете Kerberos (TGT)kerberosAS‑REQ: билет выдан; отказ — учётка не найдена, отключена, заблокирована, пароль истёк, вход с этого компьютера запрещён
4771Неверный пароль (Kerberos)kerberosПредварительная проверка не прошла (KDC_ERR_PREAUTH_FAILED)
4769Выдан служебный билет KerberoskerberosTGS‑REQ — по умолчанию не пишется (очень много событий), включается в настройках
4624 / 4625Успешный / неудачный входldap, panelLDAP bind (простой, SASL GSSAPI/GSS‑SPNEGO, EXTERNAL); вход в панель. Причина неудачи — в поле «Подробности» (неверный пароль, учётка отключена или заблокирована, пароль истёк …)
4776Проверка учётных данных NTLMntlmВход по NTLM (SMB, Windows): подтверждены / отклонены с причиной
4740Учётная запись заблокированаpolicyДостигнут порог неверных паролей политики домена (число попыток, порог, длительность)
4767Учётная запись разблокированаpanelСнятие блокировки администратором
4723 / 4724Смена пароля пользователем / сброс пароляkpasswd, ldapСмена по Kerberos (kpasswd, Ctrl+Alt+Del) и по LDAP (unicodePwd); отказы — нет прав, пароль не соответствует политике
5136 / 5137 / 5141Объект каталога изменён / создан / удалёнldapЗапись по LDAP: кто, какой объект, имена изменённых атрибутов (значения не пишутся); отказы в доступе. С v165 5141 с протоколом dns — удаление устаревшей динамической записи DNS очисткой
4728 / 4729Участник добавлен в группу / удалён из группыldapИзменение member группы по LDAP
9100Изменение через панельpanelЛюбой изменяющий запрос администратора к API панели: метод, раздел, HTTP‑код и текст ошибки
9101Отказ в доступе к разделу панелиpanelНе хватает прав роли или раздел вне области доменного администратора
9110Второй фактор (MFA) привязан / отказ в привязкеportalv184: пользователь привязал приложение-аутентификатор на портале /password или ввёл неверный код при привязке
4741Создана групповая управляемая учётная запись службы (gMSA)panelСоздание gMSA в панели: кто создал, имя учётной записи
4713Изменены настройки входа по смарт‑картам (PKINIT)panelВключение, выключение и перевыпуск сертификата KDC для PKINIT, добавление и удаление доверенных ЦС — кто и что изменил
4719Изменены настройки журнала безопасностиpanelКто и что изменил (включение/выключение журнала, SIEM, срок хранения, состав событий)

Поля события: время (мс), код, категория (logon, account, directory, panel, audit), результат (success/failure), протокол, кто (учётка или DN вошедшего), объект (DN), IP клиента, домен, узел, подробности.

Изменения через панель записываются кодом 9100 (кто, что, результат), а изменения по LDAP — кодами 5136/5137/5141. Пароли и значения атрибутов в журнал не попадают.

3. Хранение, поиск и выгрузка

Журнал узла — файлы <каталог данных>/seclog/ГГГГ-ММ-ДД.jsonl (по строке JSON на событие, права 0600, каталог 0700). Файлы старше срока хранения (по умолчанию 90 дней) удаляются раз в час. Каждый узел кластера ведёт свой журнал — для сводной картины используйте SIEM.

Вкладка «События»: быстрые фильтры (все события, неудачные входы, блокировки, пароли, группы, изменения каталога, действия в панели, все входы), период (час, сутки, 7 и 30 дней, всё время), поиск по пользователю, объекту, IP и тексту (несколько слов — все должны встретиться), обновление каждые 10 секунд. Новые события — сверху, по 200 строк («Показать ещё»). Строка открывает карточку события. Кнопки CSV (для Excel, разделитель «;») и JSON (по строке на событие) выгружают события по текущему фильтру, до 100 000.

API: GET /api/security/events?from=&to=&ids=4625,4771&outcome=failure&cat=logon&proto=ldap&q=alice&limit=200 (время — мс UNIX), выгрузка — /api/security/events/export?…&format=csv|jsonl.

4. Настройки журнала

Вкладка «Настройки и SIEM» → «Журнал на узле»:

Счётчики «Записано событий» и «Потеряно (переполнение)» — с момента запуска службы. Настройки узла — файл seclog.json в каталоге данных (зашифрован, как остальные настройки).

5. Выгрузка в SIEM

«Отправлять события в SIEM»: сервер, порт, протокол, формат и facility. Каждый узел отправляет свои события; настройте одинаково на всех узлах кластера.

ПараметрЗначения
ПротоколUDP (514, без гарантии доставки), TCP (514/601, строка на событие), TLS (6514; сервер проверяется по сертификату ЦС SIEM, вставленному в настройки, и по имени из поля «Сервер»)
ФорматCEF — MaxPatrol SIEM, KUMA, ArcSight, Splunk, Wazuh, QRadar; JSON — Elastic, Graylog, OpenSearch, Loki
Facilityauthpriv (10, по умолчанию), auth (4), log audit (13), local0–local7 (16–23). Важность syslog: успех — informational, неудача — warning
Не отправлять успешные входыТолько неудачи, блокировки и изменения — меньше нагрузка на SIEM; в журнале узла успешные входы остаются

Обёртка — syslog RFC 5424: <PRI>1 ВРЕМЯ УЗЕЛ hopedc - КОД - СООБЩЕНИЕ. Пример CEF:

<84>1 2026-10-28T16:58:27.845+03:00 dc01 hopedc - 4625 - CEF:0|HopeDC|HopeDC Domain Controller|164|4625|Неудачный вход|5|rt=1793195907845 outcome=failure app=ldap cat=logon suser=alice@corp.local src=10.10.0.15 dvchost=dc01 msg=invalid credentials

Поля CEF: rt — время (мс), outcome, app — протокол, cat — категория, suser — кто, duser — объект (DN), src — IP клиента, dvchost — узел HopeDC, cs1 (метка domain) — домен, msg — подробности. Важность CEF: блокировка — 7, неудачи — 5, сброс пароля, изменение групп и настроек аудита — 5, остальное — 3.

Пример JSON (после заголовка syslog): {"id":4740,"name":"Учётная запись заблокирована","outcome":"success","cat":"account","proto":"policy","user":"alice","target":"CN=alice,CN=Users,DC=corp,DC=local","domain":"corp.local","node":"dc01","msg":"5 неверных попыток (порог 5), блокировка 30 мин","ts":1793195907845}

«Проверить связь с SIEM» отправляет тестовое событие 9199 с текущими (несохранёнными) настройками и показывает ошибку подключения или проверки сертификата. Статистика — отправлено, ошибок, не доставлено, последняя ошибка. При обрыве TCP/TLS узел переподключается не чаще раза в 10 секунд; события, которые за это время не удалось отправить, остаются только в журнале узла (счётчик «Не доставлено»).

Приём на rsyslog (пример для проверки):

module(load="imtcp")
input(type="imtcp" port="514" ruleset="hopedc")
ruleset(name="hopedc") { action(type="omfile" file="/var/log/hopedc-security.log") }

6. Метрики Prometheus

Вкладка «Мониторинг (Prometheus, Zabbix)»: «Отдавать метрики» — узел отвечает на GET https://<узел>:9444/metrics (и на порту панели 9443). Доступ — заголовок Authorization: Bearer <токен>; токен выпускается в панели («Новый токен» — прежний перестаёт действовать). Можно ограничить адреса сборщиков (IP или подсеть IPv4). Список «Сетевой доступ → Панель» на /metrics не действует — у метрик свой токен и свой список. Выключено — ответ 404, неверный токен или адрес — 401. Настройки узла — metrics.json.

МетрикаТипЧто показывает
hopedc_build_info{release}, hopedc_uptime_secondsgaugeВерсия, время работы службы
hopedc_auth_total{protocol,result}counterПроверки учётных данных: kerberos (TGT), kerberos_tgs, ldap, ntlm, panel; success/failure
hopedc_account_lockouts_total, hopedc_password_changes_total{result}, hopedc_directory_changes_total{result}counterБлокировки, смены паролей, изменения каталога по LDAP
hopedc_ldap_operations_total{op}, hopedc_ldap_connections_totalcounterОперации LDAP (bind, search, add, modify, delete, compare, extended), подключения
hopedc_dns_queries_total, hopedc_api_requests_total, hopedc_linux_agent_reports_totalcounterЗапросы DNS, API панели, отчёты агентов Linux
hopedc_seclog_events_total, …_dropped_total, …_write_errors_totalcounterЖурнал безопасности: записано, потеряно, ошибки записи
hopedc_siem_sent_total, …_errors_total, …_dropped_totalcounterОтправка в SIEM
hopedc_directory_objects{domain,type}, hopedc_users_locked{domain}, hopedc_users_disabled{domain}gaugeПользователи, компьютеры, группы; заблокированные и отключённые учётки (по каждому домену, в том числе нули)
hopedc_process_resident_memory_bytes, hopedc_process_open_fds, hopedc_data_disk_free_bytes, hopedc_data_disk_size_bytesgaugeПамять и дескрипторы процесса, место на диске каталога данных

Счётчики — с момента запуска службы (как принято в Prometheus: используйте rate()). Пример настройки Prometheus — на вкладке «Мониторинг» (кнопка «Копировать»):

scrape_configs:
  - job_name: hopedc
    scheme: https
    tls_config: { ca_file: /etc/prometheus/hopedc-ca.pem }   # ЦС сертификата узла (или insecure_skip_verify: true)
    authorization: { type: Bearer, credentials: hdcm_… }
    static_configs:
      - targets: ['dc01.corp.local:9444', 'dc02.corp.local:9444']

Полезные запросы: sum by (protocol) (rate(hopedc_auth_total{result="failure"}[5m])) — неудачные входы в секунду; increase(hopedc_account_lockouts_total[1h]) — блокировки за час.

7. Шаблон Zabbix

«Скачать шаблон Zabbix» — файл zabbix_template_hopedc.yaml (формат Zabbix 6.0; проверен импортом в Zabbix 7.0). Импорт: «Настройка» (в Zabbix 7 — «Сбор данных») → «Шаблоны» → «Импорт». Затем создайте узел (хост) Zabbix на каждый узел HopeDC, привяжите шаблон «HopeDC by HTTP» и задайте макросы:

МакросПо умолчаниюНазначение
{$HOPEDC.URL}https://dc01.example.local:9444/metricsАдрес метрик узла
{$HOPEDC.TOKEN}— (секретный текст)Токен мониторинга из панели
{$HOPEDC.INTERVAL}1mПериод опроса
{$HOPEDC.AUTH.FAIL.MAX}5Порог неудачных входов в секунду (5 минут подряд)
{$HOPEDC.LOCKOUT.MAX}10Порог блокировок учётных записей за 10 минут
{$HOPEDC.DISK.FREE.MIN}2GМинимум свободного места на диске данных

Один HTTP‑элемент получает метрики, 26 зависимых элементов разбирают их (предобработка «Шаблон Prometheus», скорость в секунду). Триггеры (12): служба перезапущена; нет данных метрик 5 минут; версия изменилась; много неудачных входов (Kerberos, LDAP, NTLM, панель — отдельно); массовые блокировки учётных записей; журнал безопасности теряет события; ошибки записи журнала; SIEM не принимает события; мало места на диске данных. Проверка сертификата HTTPS в шаблоне выключена (сертификат узла может быть самоподписанным); если сертификат узла выпущен доверенным для Zabbix ЦС, включите проверку в элементе «получение метрик».

8. Права доступа

ДействиеПраво роли
Просмотр и выгрузка событий, просмотр настроек журнала«Журнал безопасности: просмотр» (seclog.view)
Изменение настроек журнала и SIEM, проверка связи, токен и настройки метрик, шаблон Zabbix«Журнал безопасности: изменение» (seclog.edit)

v184: у раздела своё право в матрице ролей (раньше — права «Логирование»); роли с правами «Логирование» получили его при обновлении автоматически. Доменно‑ограниченным администраторам раздел недоступен: журнал — общий для всех доменов узла.

9. Нагрузка и ограничения

10. Диагностика

СимптомПричина и решение
«Проверить связь»: TLS: invalid peer certificate: UnknownIssuerВставлен не тот ЦС или у сервера SIEM цепочка от другого ЦС — вставьте корневой ЦС, которым подписан сертификат сборщика.
«Проверить связь»: certificate not valid for name …Имя в поле «Сервер» не совпадает с именем в сертификате SIEM — укажите DNS‑имя из сертификата.
«…: нет ответа за 5 с» / Connection refusedСборщик не слушает порт или его закрывает межсетевой экран (Документ 4, раздел 7).
UDP «отправлено», но в SIEM пустоUDP без подтверждения: проверьте приём на стороне SIEM (порт, фильтр по источнику).
Растёт «Потеряно (переполнение)»Событий больше, чем успевает записать диск: выключите служебные билеты (4769) и, при необходимости, успешные входы; проверьте диск.
/metrics отвечает 404Метрики выключены на этом узле — включите на вкладке «Мониторинг» (настройка своя у каждого узла).
/metrics отвечает 401Неверный токен (выпущен новый) или адрес сборщика не в списке разрешённых.
Zabbix: элементы «Не поддерживается»Проверьте макросы {$HOPEDC.URL} и {$HOPEDC.TOKEN} и ответ элемента «получение метрик» (Последние данные).