| Служба | Порт | Транспорт | Инициатор → Приёмник | Назначение |
|---|---|---|---|---|
| LDAP | 389 | TCP | клиент/DC → HopeDC | Каталог, bind (simple / SASL) |
| LDAPS | 636 | TCP (TLS) | клиент/DC → HopeDC | LDAP поверх TLS, mTLS (клиентский сертификат) |
| Kerberos KDC | 88 | TCP, UDP | клиент → HopeDC | AS‑REQ / TGS‑REQ, выдача билетов; по UDP — ответы до 1465 байт, больший → KRB_ERR_RESPONSE_TOO_BIG и повтор по TCP |
| kpasswd | 464 | TCP, UDP | клиент → HopeDC | Смена/установка пароля по Kerberos (RFC 3244), Ctrl+Alt+Del в Windows |
| NTP / NTS‑KE | 123 / 4460 | UDP / TCP | клиент → HopeDC | Время домена (MS‑SNTP), обмен ключами NTS |
| RPC | 135, 49152 | TCP | клиент → HopeDC | EPM и данные RPC: ввод Windows в домен, Netlogon, LSA, SAMR |
| CLDAP netlogon | 389 | UDP | клиент → HopeDC | Обнаружение домена (realm discovery) |
| DNS | 53 | UDP, TCP | клиент → HopeDC | Резолвинг, SRV‑записи DC‑locator |
| DHCP | 67 | UDP | клиент → HopeDC | Выдача IP‑адресов |
| SMB | 445 | TCP | клиент → HopeDC | SYSVOL, сетевые ресурсы |
| Global Catalog | 3268 | TCP | клиент → HopeDC | Форест‑wide LDAP‑поиск по всем доменам леса |
| Global Catalog (TLS) | 3269 | TCP (TLS) | клиент → HopeDC | Тот же GC поверх TLS |
| HTTPS веб‑панель | 9443 | TCP | браузер администратора → HopeDC | Веб‑панель (SPA) и /api/ на том же origin; статику отдаёт сам бинарник (HTTPS) |
| HTTPS Admin API | 9444 | TCP | узел кластера / API‑клиент → HopeDC | Backend API: репликация кластера и прямые API‑клиенты (HTTPS) |
| Синхронизация с AD | 636 (389 — только если у DC нет LDAPS) | TCP | HopeDC → MS AD или Samba AD DC | LDAP bind учёткой синхронизации: зеркало (постраничная выдача, v199), запись изменений, проверка пароля при первом входе, импорт DNS и доверий |
| Источник FreeIPA / LDAP (v198) | 636 | TCP (только LDAPS) | HopeDC → FreeIPA или LDAP‑каталог | Импорт пользователей, групп и хостов, синхронизация и проверка пароля при первом входе |
| SYSVOL контроллера MS AD | 445 | TCP (SMB 2/3, подпись) | HopeDC → MS AD | Файлы групповых политик домена‑зеркала: копия из SYSVOL AD и запись правок HopeDC (v182, без агента) |
| Установка контроллеров по SSH (v188) | 22 (настраивается) | TCP | HopeDC (корневой сервер) → новый сервер | Раздел «Контроллеры»: проверка сервера, передача пакета и установщика, установка и обновление контроллеров |
| Обновления по манифесту | 443 (по адресу манифеста) | TCP (HTTPS) | HopeDC → сервер обновлений | Онлайн‑проверка и загрузка пакетов, если задан адрес манифеста; в закрытом контуре не нужен — пакет загружается в панели |
| Syslog в SIEM (v164) | 514 / 6514 (настраивается) | UDP, TCP, TLS | HopeDC → SIEM | Журнал безопасности: RFC 5424, CEF или JSON (Документ 16) |
| DNS: форвардер и условная пересылка (v165) | 53 | UDP | HopeDC → внешние DNS / DNS партнёров | Имена вне своих зон: общий форвардер; для зон из «Условной пересылки» — их серверы (порт настраивается) |
| Метрики Prometheus (v164) | 9444 (и 9443), путь /metrics | TCP (HTTPS) | Prometheus / Zabbix → HopeDC | Bearer‑токен мониторинга и свой список адресов; список «Сетевой доступ → Панель» на /metrics не действует |
net_ldap.json): подключения не из списка отклоняются.Каталог. Поддержка простого bind (проверка userPassword, bcrypt) и SASL EXTERNAL по клиентскому сертификату на LDAPS (CN сертификата → идентичность). При выдаче объектов секретные атрибуты (unicodePwd, hopeKrbKeys, ключи ЦС и др.) скрываются. Смена пароля через unicodePwd (UTF‑16LE, как от adcli/realm) декодируется в NT‑хэш и AES‑ключи.
Обработка 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).
Смена своего пароля (по первичному билету kadmin/changepw, полученному паролем) и установка пароля другой учётке её администратором. Служба есть во всех собственных доменах и в доменах, перешедших из AD (после «Принять роль KDC»).
Ответчик обнаружения домена: по запросу клиента (SSSD ad‑provider, Windows) возвращает netlogon‑данные нужного домена (выбор по FQDN из запроса).
Авторитативные зоны + форвардер. Хранит SRV/A/CNAME‑записи DC‑locator (_ldap._tcp, _kerberos, _gc, _msdcs и т.д.), по которым клиенты находят контроллер. Возможен импорт зон из MS AD и TSIG для динамических обновлений.
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).
REST‑API веб‑панели; та же точка используется узлами кластера для репликации (эндпоинты /api/replication/*).
Ввод в домен и вход как в классическом AD: DNS находит контроллер по SRV‑записям, Kerberos выдаёт билеты, LDAP отдаёт объекты, SMB — SYSVOL с политиками. Групповые политики применяются из SYSVOL (файлы GPT/registry.pol туда помещает агент — см. Документ 3).
Ввод через 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).
Модель репликации — 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.
Взаимодействие с существующим доменом Microsoft AD идёт по трём каналам:
hopeSyncUser / hopeSyncPass, IP в hopePdcIp) и зеркалирует объекты каталога. Отдельный воркер импортирует DNS‑зоны.gPLink, атрибуты) HopeDC записывает обратно в MS AD тем же LDAP‑bind. Атрибуты, начинающиеся на hope*, в AD не выгружаются (служебные). Домен для записи определяется по DN‑суффиксу целевого объекта.\\<DC>\SYSVOL по SMB 445 учёткой синхронизации (Kerberos, при недоступности — NTLMv2; подпись SMB всегда) — как консоль GPMC. Так HopeDC копирует файлы групповых политик домена‑зеркала и (в двустороннем режиме) записывает туда правки из своего редактора. На контроллер AD ничего не устанавливается (Документы 3 и 12).krbtgt для интегрированного домена и начинает обслуживать его Kerberos самостоятельно. Пока действует такой режим, клиентам достаточно связи только с HopeDC.HopeDC поддерживает иерархию доменов (лес). При создании поддомена (напр. corp.lol.local) автоматически настраивается:
LOL.LOCAL) запрашивает службу в другом (CORP.LOL.LOCAL), KDC на :88 выдаёт реферальный TGT (krbtgt/<TARGET_REALM>), зашифрованный меж‑реалмовым ключом; клиент повторяет запрос уже в целевом реалме — тому же HopeDC (мультиреалм‑KDC).configurationNamingContext/schemaNamingContext корня леса; сайты (Configuration NC) общие для всех доменов леса.3268/3269 (TLS) отдают форест‑wide поиск по объектам всех доменов из единого хранилища.| Направление | Порт/протокол | Комментарий |
|---|---|---|
| Клиенты → HopeDC | 53/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/tcp | HTTPS, только из сети управления |
| Узел HopeDC ↔ Узел HopeDC | 9444/tcp | Репликация pull + snapshot + digest, общий секрет |
| HopeDC → MS AD DC | 636/tcp (389/tcp — только без LDAPS) | Синхронизация (bind учёткой sync) |
| HopeDC → FreeIPA / LDAP | 636/tcp | Импорт и синхронизация источника (v198) |
| Корневой HopeDC → новые серверы | 22/tcp | Установка и обновление контроллеров из раздела «Контроллеры» (v188); в остальное время порт можно закрыть |
| HopeDC → сервер обновлений | 443/tcp | Только при онлайн‑обновлении по манифесту |
| HopeDC → MS AD DC | 445/tcp, 88/tcp | SYSVOL домена‑зеркала по SMB (если включена синхронизация SYSVOL); 88 — вход Kerberos |
| HopeDC → SIEM | порт сборщика (обычно 514/udp, 514/tcp или 6514/tcp) | Журнал безопасности (v164); каждый узел отправляет свои события |
| Prometheus / Zabbix → HopeDC | 9444/tcp | GET /metrics с токеном; ограничьте адресом сервера мониторинга |