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

Инструкция по сетевым взаимодействиям

Схемы, протоколы служб, подключение клиентов, кластер, связь с Microsoft AD
Документ 4 из 4 · Версия 1.7 · 10.11.2026 · соответствует HopeDC v199
Аудитория: сетевые/системные администраторы, специалисты ИБ

1. Матрица портов и протоколов

СлужбаПортТранспортИнициатор → ПриёмникНазначение
LDAP389TCPклиент/DC → HopeDCКаталог, bind (simple / SASL)
LDAPS636TCP (TLS)клиент/DC → HopeDCLDAP поверх TLS, mTLS (клиентский сертификат)
Kerberos KDC88TCP, UDPклиент → HopeDCAS‑REQ / TGS‑REQ, выдача билетов; по UDP — ответы до 1465 байт, больший → KRB_ERR_RESPONSE_TOO_BIG и повтор по TCP
kpasswd464TCP, UDPклиент → HopeDCСмена/установка пароля по Kerberos (RFC 3244), Ctrl+Alt+Del в Windows
NTP / NTS‑KE123 / 4460UDP / TCPклиент → HopeDCВремя домена (MS‑SNTP), обмен ключами NTS
RPC135, 49152TCPклиент → HopeDCEPM и данные RPC: ввод Windows в домен, Netlogon, LSA, SAMR
CLDAP netlogon389UDPклиент → HopeDCОбнаружение домена (realm discovery)
DNS53UDP, TCPклиент → HopeDCРезолвинг, SRV‑записи DC‑locator
DHCP67UDPклиент → HopeDCВыдача IP‑адресов
SMB445TCPклиент → HopeDCSYSVOL, сетевые ресурсы
Global Catalog3268TCPклиент → HopeDCФорест‑wide LDAP‑поиск по всем доменам леса
Global Catalog (TLS)3269TCP (TLS)клиент → HopeDCТот же GC поверх TLS
HTTPS веб‑панель9443TCPбраузер администратора → HopeDCВеб‑панель (SPA) и /api/ на том же origin; статику отдаёт сам бинарник (HTTPS)
HTTPS Admin API9444TCPузел кластера / API‑клиент → HopeDCBackend API: репликация кластера и прямые API‑клиенты (HTTPS)
Синхронизация с AD636 (389 — только если у DC нет LDAPS)TCPHopeDC → MS AD или Samba AD DCLDAP bind учёткой синхронизации: зеркало (постраничная выдача, v199), запись изменений, проверка пароля при первом входе, импорт DNS и доверий
Источник FreeIPA / LDAP (v198)636TCP (только LDAPS)HopeDC → FreeIPA или LDAP‑каталогИмпорт пользователей, групп и хостов, синхронизация и проверка пароля при первом входе
SYSVOL контроллера MS AD445TCP (SMB 2/3, подпись)HopeDC → MS ADФайлы групповых политик домена‑зеркала: копия из SYSVOL AD и запись правок HopeDC (v182, без агента)
Установка контроллеров по SSH (v188)22 (настраивается)TCPHopeDC (корневой сервер) → новый серверРаздел «Контроллеры»: проверка сервера, передача пакета и установщика, установка и обновление контроллеров
Обновления по манифесту443 (по адресу манифеста)TCP (HTTPS)HopeDC → сервер обновленийОнлайн‑проверка и загрузка пакетов, если задан адрес манифеста; в закрытом контуре не нужен — пакет загружается в панели
Syslog в SIEM (v164)514 / 6514 (настраивается)UDP, TCP, TLSHopeDC → SIEMЖурнал безопасности: RFC 5424, CEF или JSON (Документ 16)
DNS: форвардер и условная пересылка (v165)53UDPHopeDC → внешние DNS / DNS партнёровИмена вне своих зон: общий форвардер; для зон из «Условной пересылки» — их серверы (порт настраивается)
Метрики Prometheus (v164)9444 (и 9443), путь /metricsTCP (HTTPS)Prometheus / Zabbix → HopeDCBearer‑токен мониторинга и свой список адресов; список «Сетевой доступ → Панель» на /metrics не действует
Порты 88 (TCP и UDP) / 389 / 636 дополнительно защищены белым списком IP клиентов домена (раздел «Сетевой доступ», файл net_ldap.json): подключения не из списка отклоняются.

2. Общая топология

HopeDC (Linux) LDAP 389 · LDAPS 636 Kerberos 88 · DNS 53 DHCP 67 · SMB 445 CLDAP 389/udp Admin API 9444 Windows‑клиенты DNS·Kerberos·LDAP·SMB Linux‑клиенты (SSSD) CLDAP·Kerberos·LDAP(S) Microsoft AD LDAP/LDAPS + SYSVOL :445 HopeDC — узел 2 Репликация · API 9444 Администратор (браузер) HTTP 9444
Рис. 1. Клиенты обращаются к службам HopeDC; HopeDC синхронизируется с MS AD (LDAP + SYSVOL по SMB 445); узлы HopeDC реплицируются между собой по API 9444.

3. Протоколы работы служб

LDAP / LDAPS (389 / 636)

Каталог. Поддержка простого bind (проверка userPassword, bcrypt) и SASL EXTERNAL по клиентскому сертификату на LDAPS (CN сертификата → идентичность). При выдаче объектов секретные атрибуты (unicodePwd, hopeKrbKeys, ключи ЦС и др.) скрываются. Смена пароля через unicodePwd (UTF‑16LE, как от adcli/realm) декодируется в NT‑хэш и AES‑ключи.

Kerberos KDC (88)

Обработка AS‑REQ/TGS‑REQ. Мультиреалм: реалм берётся из запроса, krbtgt и пользователь ищутся в поддереве нужного домена. Типы шифрования: RC4‑HMAC (etype 23) и AES128/256 (etype 17/18); соль по умолчанию — ВЕРХНИЙ_РЕАЛМ + principal, передаётся в padata ETYPE‑INFO2.

UDP (v139). Запрос по UDP 88 обрабатывается тем же кодом, что и по TCP. Ответ, который не помещается в датаграмму (больше DC_KRB_UDP_MAX, по умолчанию 1465 байт — обычно билеты Windows с PAC), не отправляется: клиент получает KRB_ERR_RESPONSE_TOO_BIG и сам повторяет запрос по TCP, как с AD. Белый список IP клиентов (net_ldap.json) действует и для UDP.

Блокировка учёток (v138). Если в Default Domain Policy задан порог блокировки, неверные пароли при получении билета считаются; заблокированная учётка получает KDC_ERR_CLIENT_REVOKED с NTSTATUS STATUS_ACCOUNT_LOCKED_OUT в e‑data (как у AD).

kpasswd (464/TCP, UDP)

Смена своего пароля (по первичному билету kadmin/changepw, полученному паролем) и установка пароля другой учётке её администратором. Служба есть во всех собственных доменах и в доменах, перешедших из AD (после «Принять роль KDC»).

CLDAP netlogon (389/UDP)

Ответчик обнаружения домена: по запросу клиента (SSSD ad‑provider, Windows) возвращает netlogon‑данные нужного домена (выбор по FQDN из запроса).

DNS (53/UDP)

Авторитативные зоны + форвардер. Хранит SRV/A/CNAME‑записи DC‑locator (_ldap._tcp, _kerberos, _gc, _msdcs и т.д.), по которым клиенты находят контроллер. Возможен импорт зон из MS AD и TSIG для динамических обновлений.

DHCP (67/UDP) и SMB (445)

DHCP выдаёт адреса из пулов, ведёт учёт аренд и статических резерваций MAC→IP, при необходимости регистрирует выданные адреса в DNS (A + PTR). Поддержаны сообщения DISCOVER / REQUEST / RELEASE / DECLINE / INFORM.

Выдаваемые опции (RFC 2132): маска (1), шлюз (3), DNS‑серверы (6), доменное имя (15), broadcast (28), срок аренды (51) и времена продления T1/T2 (58/59), server‑id (54). Дополнительно, если заданы в пуле и запрошены клиентом (option 55): NTP‑серверы (42, важно для синхронизации времени под Kerberos — при пустом значении подставляется IP контроллера), Time‑серверы RFC 868 (4), Log‑серверы (7), LPR/print‑серверы (9), WINS/NetBIOS name servers (44) и NetBIOS node type (46), MTU интерфейса (26), Domain Search List (119, кодирование по RFC 3397), Classless Static Routes (121 и MS‑вариант 249, кодирование по RFC 3442), WPAD proxy‑URL (252), а также PXE‑загрузка — TFTP/next‑server (66) и bootfile (67, с заполнением BOOTP‑полей siaddr/file). Опции broadcast и T1/T2 вычисляются автоматически из сети и срока аренды.

Все дополнительные опции настраиваются в отдельном окне «Дополнительные опции DHCP» — в виде компактной таблицы «опция → значение» с поиском по названию/номеру и всплывающим описанием при наведении на имя опции. В каталоге около 35 наиболее востребованных опций, сгруппированных по разделам (сеть и время, аренда, имена и поиск, NetBIOS/WINS, сервисы, маршруты, PXE): смещение времени (2), time/NTP‑серверы (4/42), IP‑TTL (23), ARP‑timeout (35), IP‑forwarding (19), router discovery (31), T1/T2 (58/59), Domain Search (119), NIS/NIS+ (40/41/64/65), WINS/NBDD/node‑type/scope (44/45/46/47), log/LPR/SMTP/POP3/WWW‑серверы (7/9/69/70/72), WPAD (252), classless‑маршруты (121/249) и классовые (33), swap‑сервер (16), TFTP/bootfile/root‑path (66/67/17) и др. Значение задаётся строкой (список IPv4 через запятую, текст, число, домены или маршруты), кодирование в байты выполняет сервер; пустое значение означает «опцию не выдавать».

Пулы можно редактировать после создания: в списке пулов у каждой записи есть действия «Опции» (открывает окно опций сразу) и «Редактировать» (полная правка пула); id пула при этом сохраняется, поэтому действующие аренды и резервации не теряются.

SMB предоставляет доступ к SYSVOL и сетевым ресурсам, участвует в аутентификации (SPNEGO/NTLMSSP).

HTTP Admin API (9444)

REST‑API веб‑панели; та же точка используется узлами кластера для репликации (эндпоинты /api/replication/*).

4. Подключение клиентов

Клиент Win / Linux HopeDC 1 · DNS SRV (53/udp): найти контроллер 2 · CLDAP (389/udp): подтвердить домен 3 · Kerberos AS/TGS (88): получить билеты 4 · LDAP(S) 389/636: атрибуты, sudo, политики 5 · SMB 445: SYSVOL (GPO для Windows)
Рис. 2. Обобщённый порядок обращения клиента к службам контроллера.

Windows‑клиент

Ввод в домен и вход как в классическом AD: DNS находит контроллер по SRV‑записям, Kerberos выдаёт билеты, LDAP отдаёт объекты, SMB — SYSVOL с политиками. Групповые политики применяются из SYSVOL (файлы GPT/registry.pol туда помещает агент — см. Документ 3).

Linux‑клиент (SSSD, ad‑provider)

Ввод через realm join / adcli; объект компьютера по умолчанию попадает в контейнер CN=Computers, атрибут operatingSystem заполняется автоматически. SSSD настраивается на ad‑provider (обнаружение — CLDAP, аутентификация — Kerberos, данные — LDAP(S)). Особенности HopeDC: ID‑mapping в двух режимах (POSIX и SID), sudo_provider=ad (правила sudoRole читаются штатно), AES‑ключи Kerberos для входа с отключённым RC4. Политики hopeLinuxPolicy применяет отдельный агент hopedc-agent по расписанию (systemd .timer), аутентифицируясь паролем сервисной учётки или клиентским сертификатом (mTLS / SASL EXTERNAL).

5. Кластер (высокая доступность)

Узел 1 node_id, secret API 9444 Узел 2 node_id, secret API 9444 pull /api/replication/pull (secret) pull в обратную сторону
Рис. 3. Репликация «pull»: каждый узел периодически забирает изменения у пиров через API 9444 с проверкой общего секрета.

Модель репликации — pull: узел настраивается с идентификатором (node_id), общим секретом и списком пиров (базовые URL их API вида https://10.0.0.2:9444). Фоновый воркер периодически вызывает у каждого пира /api/replication/pull и применяет полученные изменения; при первом подключении выполняется бутстрап снимком через /api/replication/snapshot. Все изменения помечаются node_id источника (origin) для корректного слияния. Обмен идёт по порту API 9444 (порт бэкенда; веб‑панель отдаётся тем же бинарником на 9443) и требует совпадения секрета.

Реплицируются объекты каталога (домены, OU, пользователи, группы, ПК), DNS‑записи, доверительные отношения, доменная политика безопасности и конфигурация DHCP‑пулов (аренды остаются локальными). Конфликты (правка одного объекта на разных узлах) разрешаются по правилу «последняя запись побеждает» (по времени изменения, поэтому требуется синхронизация часов NTP). Для наблюдаемости узел ведёт журнал конфликтов и отчёты о догоне после возврата, а для проверки расхождения обменивается детерминированными дайджестами состояния через /api/replication/digest (также под секретом). Межузловые эндпоинты (все на 9444): /api/replication/pull, /api/replication/snapshot, /api/replication/digest.

Сеть кластера. Откройте между узлами только TCP 9444. Рекомендуется выделенная/доверенная сеть между узлами; секрет кластера храните в тайне.
Пошаговое создание и обслуживание кластера, модель разрешения конфликтов и вкладки наблюдаемости — в Документе 7 «Кластер HA: создание и обслуживание».

6. Связь HopeDC ↔ Microsoft AD

HopeDC воркеры sync/dns MS AD DC LDAP/LDAPS SYSVOL :445 LDAP bind (389/636) учёткой синхронизации → зеркалирование объектов, DNS‑зон push изменений (не‑hope* атрибуты, gPLink) обратно в AD SMB 445 (Kerberos/NTLMv2, подпись): файлы политик SYSVOL ⇄ HopeDC
Рис. 4. Три канала связи с MS AD: чтение (зеркалирование), запись (push изменений) и SYSVOL по SMB.

Взаимодействие с существующим доменом Microsoft AD идёт по трём каналам:

  1. Зеркалирование (чтение). Фоновый воркер синхронизации подключается к контроллеру‑источнику по LDAP (389) или LDAPS (636), выполняет bind учётной записью синхронизации (hopeSyncUser / hopeSyncPass, IP в hopePdcIp) и зеркалирует объекты каталога. Отдельный воркер импортирует DNS‑зоны.
  2. Обратная запись (push). Изменения объектов интегрированного домена (например, gPLink, атрибуты) HopeDC записывает обратно в MS AD тем же LDAP‑bind. Атрибуты, начинающиеся на hope*, в AD не выгружаются (служебные). Домен для записи определяется по DN‑суффиксу целевого объекта.
  3. SYSVOL (необязательно, v182). HopeDC подключается к общей папке \\<DC>\SYSVOL по SMB 445 учёткой синхронизации (Kerberos, при недоступности — NTLMv2; подпись SMB всегда) — как консоль GPMC. Так HopeDC копирует файлы групповых политик домена‑зеркала и (в двустороннем режиме) записывает туда правки из своего редактора. На контроллер AD ничего не устанавливается (Документы 3 и 12).
  4. Сайты (Configuration NC). Топология сайтов (`CN=Sites,CN=Configuration,…`) читается из MS AD при синхронизации и двусторонне синхронизируется: создание/изменение/удаление сайтов, подсетей и связей пишутся обратно в Configuration NC той же учёткой синхронизации по LDAP (389/636). Раздел «Сайты и службы» веб‑панели.
Сценарий вывода Windows‑DC. Через «Принять роль KDC» HopeDC генерирует собственный krbtgt для интегрированного домена и начинает обслуживать его Kerberos самостоятельно. Пока действует такой режим, клиентам достаточно связи только с HopeDC.

6a. Лес и поддомены

HopeDC поддерживает иерархию доменов (лес). При создании поддомена (напр. corp.lol.local) автоматически настраивается:

Все реалмы леса обслуживает один экземпляр HopeDC (мультиреалм‑KDC + единое хранилище), поэтому «кросс‑реалм» и «глобальный каталог» реализуются без внешней межконтроллерной репликации между доменами.

7. Сводная матрица межсетевого экрана

НаправлениеПорт/протоколКомментарий
Клиенты → HopeDC53/udp, 53/tcp, 88/tcp, 88/udp, 464/tcp, 464/udp, 123/udp, 135/tcp, 49152/tcp, 389/tcp, 389/udp, 636/tcp, 445/tcp, 67/udp, 3268/tcp, 3269/tcpОграничить кругом клиентов; 88/389/636/3268/3269 — плюс белый список net_ldap.json
Админ → HopeDC (веб‑панель)9443/tcpHTTPS, только из сети управления
Узел HopeDC ↔ Узел HopeDC9444/tcpРепликация pull + snapshot + digest, общий секрет
HopeDC → MS AD DC636/tcp (389/tcp — только без LDAPS)Синхронизация (bind учёткой sync)
HopeDC → FreeIPA / LDAP636/tcpИмпорт и синхронизация источника (v198)
Корневой HopeDC → новые серверы22/tcpУстановка и обновление контроллеров из раздела «Контроллеры» (v188); в остальное время порт можно закрыть
HopeDC → сервер обновлений443/tcpТолько при онлайн‑обновлении по манифесту
HopeDC → MS AD DC445/tcp, 88/tcpSYSVOL домена‑зеркала по SMB (если включена синхронизация SYSVOL); 88 — вход Kerberos
HopeDC → SIEMпорт сборщика (обычно 514/udp, 514/tcp или 6514/tcp)Журнал безопасности (v164); каждый узел отправляет свои события
Prometheus / Zabbix → HopeDC9444/tcpGET /metrics с токеном; ограничьте адресом сервера мониторинга