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

Руководство по установке на Linux

Установка контроллера домена HopeDC на сервер Linux одной командой — скриптом install_hopedc.sh
Документ 1 · Версия 2.2 · 11.11.2026 · соответствует HopeDC v200+
Аудитория: системные администраторы, инженеры внедрения
Продукт: HopeDC — контроллер домена, совместимый с Active Directory

1. О продукте и составе поставки

HopeDC — это программный контроллер домена, совместимый по протоколам с Active Directory (LDAP/LDAPS, Kerberos, CLDAP netlogon, DNS, DHCP, SMB/SYSVOL, глобальный каталог), с собственным веб‑интерфейсом администрирования. Продукт может работать как самостоятельный домен, так и в режиме интеграции с существующим доменом Microsoft AD, поддерживает иерархию доменов (лес) с поддоменами, а также обслуживает Windows‑ и Linux‑клиентов.

Состав поставки

ФайлНазначение
hopedc-core_vNNN.gzПрограмма контроллера домена — один исполняемый файл: все сетевые службы (LDAP/Kerberos/DNS/DHCP/SMB/CLDAP/NTP), встроенная база каталога и веб‑панель администратора.
install_hopedc.shУстановщик: проверяет сервер, ставит программу как службу systemd, открывает порты; повторный запуск — обновление.
Все данные каталога хранятся во встроенной базе HopeDB. Отдельная установка PostgreSQL/OpenLDAP/BIND/ISC‑DHCP, nginx или других пакетов не нужна — соответствующие службы и веб‑панель встроены в программу.

2. Системные требования

ПараметрМинимумРекомендуется
ОСUbuntu 20.04/22.04/24.04, Debian 11/12, RHEL/AlmaLinux/Rocky 9, Astra Linux SE 1.8 (проверено в режиме «Смоленск» с МКЦ, МРД, ЗПС — раздел 13). Один и тот же файл hopedc-core для всех дистрибутивов; нужен glibc 2.30 и новее (проверка: ldd --version). Не поддерживаются: RHEL/CentOS/Alma/Rocky 8 и Astra 1.7 (glibc 2.28), Debian 10 (2.28), CentOS 7 (2.17) — установщик остановится с понятным сообщением
Архитектураx86‑64 (amd64)
CPU2 vCPU4 vCPU
RAM2 ГБ4–8 ГБ
Диск10 ГБSSD, 20+ ГБ (база растёт с числом объектов и историей изменений)
Праваroot или пользователь с sudo — для запуска установщика

Порты, которые открывает контроллер

ПортПротоколСлужбаНазначение
389TCPLDAPКаталог, простой bind, SASL EXTERNAL (на LDAPS)
636TCPLDAPSLDAP поверх TLS; поддержка mTLS (клиентский сертификат)
88TCP, UDPKerberos KDCAS‑REQ/TGS‑REQ, выдача билетов (RC4‑HMAC, AES128/256). По UDP ответ больше 1465 байт заменяется на KRB_ERR_RESPONSE_TOO_BIG — клиент повторяет по TCP
464TCP, UDPkpasswdСмена и установка пароля по Kerberos (RFC 3244): kpasswd, Ctrl+Alt+Del в Windows
53UDP, TCPDNSАвторитативные зоны + форвардер (служба включается в панели)
123UDPNTPВремя домена (MS‑SNTP для Windows); служба включается в панели
4460TCPNTS‑KEОбмен ключами NTS (если включён)
135, 49152TCPRPC (EPM и данные)Ввод Windows в домен, Netlogon, LSA, SAMR, DRSUAPI
389UDPCLDAPNetlogon‑ответчик для realm discovery (SSSD/Windows)
67UDPDHCPВыдача адресов
445TCPSMBДоступ к SYSVOL/сетевым ресурсам
80TCPPKI HTTPПубликация CRL и сертификата ЦС (/pki/<домен>.crl|.crt); порт меняется переменной DC_PKI_HTTP_PORT
3268TCPGlobal Catalog (LDAP)Поиск по всем доменам леса
3269TCPGlobal Catalog (LDAPS)Тот же GC поверх TLS
9443TCPВеб‑панель (HTTPS)Admin Center и API через тот же адрес
9444TCPHTTPS Admin APIAPI для узлов кластера и прямых API‑клиентов, точка репликации
Для домена‑зеркала MS AD HopeDC сам обращается к контроллерам AD (исходящие 389/636 — синхронизация, 445 — SYSVOL, 88 — Kerberos); на контроллеры AD ничего не устанавливается.

3. Подготовка к установке

Нужны два файла: пакет hopedc-core_vNNN.gz и установщик install_hopedc.sh. Актуальная версия, контрольная сумма SHA‑256 и ссылки на оба файла — на странице Обновления.

Если у сервера есть доступ в интернет, скачайте файлы прямо на нём (номер версии возьмите со страницы «Обновления»):

curl -fLO https://hopedc.ru/updates/hopedc/install_hopedc.sh
curl -fLO https://hopedc.ru/updates/hopedc/hopedc-core_vNNN.gz

Для закрытого контура скачайте файлы на рабочий компьютер и скопируйте на сервер, например в /tmp. С Windows это можно сделать встроенной командой scp (PowerShell):

scp .\hopedc-core_vNNN.gz .\install_hopedc.sh admin@10.0.0.5:/tmp/

Больше ничего готовить не нужно: сборка, компиляторы и дополнительные пакеты не требуются.

Если в сети уже работает другой DNS‑ или DHCP‑сервер — не беспокойтесь: на чистой установке службы DNS и DHCP HopeDC создаются выключенными и включаются в панели, когда вы будете готовы (раздел 5).

4. Установка скриптом install_hopedc.sh

На сервере выполните одну команду в папке со скачанными файлами:

sudo bash install_hopedc.sh hopedc-core_vNNN.gz

Без пути к пакету скрипт берёт самую новую hopedc-core_vNNN.gz рядом с собой или в /tmp. Журнал установки — /var/log/hopedc-install.log.

Что делает установщик

Где что лежит после установки

ПутьНазначение
/opt/hopedc/hopedc-coreпрограмма (веб‑панель встроена); рядом EULA.txt и резервные копии прежних версий
/var/lib/hopedcбаза каталога и данные служб
/var/log/hopedcжурналы с ежедневной ротацией (на Astra — /var/lib/hopedc/logs)
/etc/hopedc/master.keyмастер‑ключ шифрования базы и бэкапов — сохраните копию (раздел 8)
/etc/systemd/system/hopedc.serviceслужба контроллера
hopedc-update.path, hopedc-update.serviceслужба установки обновлений из панели (раздел 11)

Параметры установщика

Задаются переменными окружения перед командой:

ПеременнаяНазначение
DC_SELF_IPIP контроллера; по умолчанию — адрес основного интерфейса
DATA_DIRкаталог базы (по умолчанию /var/lib/hopedc)
UI_PORT / API_PORTпорты веб‑панели и API (9443 / 9444)
JOIN_CLUSTER=1новый узел кластера: не создаёт демо‑домен, а получает данные от пира (Документ 7)
HOSTED_DOMAINS=child.hope.localрегиональный сервер своих доменов
KEEP_TIMESYNC=1не отключать системную службу времени
KEEP_RESOLVED=1не отключать systemd-resolved
NO_FIREWALL=1не трогать межсетевой экран

Пример: sudo DC_SELF_IP=10.0.0.5 JOIN_CLUSTER=1 bash /tmp/install_hopedc.sh.

5. Первый вход

В конце установщик подсказывает, как войти. Откройте в браузере https://<IP сервера>:9443.

При первом старте на пустой базе контроллер автоматически создаёт домен hope.local и служебные объекты. Ход запуска виден в журнале journalctl -u hopedc -f:

🚀 Запуск системного ядра HopeDC...
✅ База данных HopeDB (WAL) инициализирована. Путь: /var/lib/hopedc ...
✅ Структура домена, Administrator и krbtgt успешно созданы!
LDAP TCP слушает на 0.0.0.0:389
Kerberos TCP слушает на 0.0.0.0:88
🔒 HTTPS API слушает на 0.0.0.0:9444 (TLS); 🔒 веб‑панель — на 0.0.0.0:9443
🔐 Шифрование данных на диске включено. Мастер-ключ: /etc/hopedc/master.key (отпечаток …)

Учётные данные по умолчанию

ЧтоЛогинПарольПримечание
Веб‑панель (Admin Center)adminAdmin123!e‑mail admin@hope.local, роль «Администратор»
Доменный администраторAdministratorAdmin123!в домене hope.local
Пароли Admin123! предназначены только для первичного входа. Панельный admin при первом входе обязан задать новый пароль — без этого панель не пустит дальше. Пароль доменного Administrator смените сами: Домены → hope.local → Структура домена.
Контроллер, установленный из раздела «Контроллеры». На таком узле пароль панельного admin не заводской, а случайный: корневой сервер генерирует его при установке и один раз показывает в журнале установки. Доменные учётки, в том числе Administrator, такой узел не создаёт, а получает от кластера.
DNS и DHCP на чистом старте — остановлены. На пустой базе службы DNS (:53) и DHCP (:67) создаются в состоянии «Остановлено» и портов не занимают: в свежем домене ещё нет зон и пулов, а запущенная служба могла бы конфликтовать со штатным DNS/DHCP в сети. Включите их после настройки — в разделе «Службы: DNS и DHCP» веб‑панели. Демо‑зона hope.local и демо‑пул засеиваются как данные, но не раздаются, пока служба выключена. При обновлении состояние служб не меняется.
Служба времени (NTP). HopeDC содержит сервер точного времени домена (UDP 123) и сам держит часы контроллера по внешним источникам; установщик отключает штатную службу времени сервера, чтобы две службы не боролись за часы. Настройка и включение — в панели, раздел Службы → NTP Сервер (по умолчанию служба выключена).

6. Дополнительные контроллеры — из панели

Второй и следующие контроллеры (полная реплика или региональный сервер своих доменов) можно не ставить вручную: в панели первого сервера откройте раздел Контроллеры главного меню (под «Доменами») → «Добавить контроллер», укажите адрес и доступ по SSH (пароль или закрытый ключ, пароль sudo), нажмите «Проверить», затем «Установить». Панель сама передаст пакет и этот же установщик, запустит его в режиме присоединения к кластеру и настроит сопряжение. Требования к серверу те же (раздел 2), плюс вход по SSH с правами root или sudo. Там же контроллеры потом обновляются.

Добавлять, менять и обновлять контроллеры могут только администраторы домена (Domain Admins); делегаты видят список только для просмотра. Пароль admin нового узла показывается один раз в журнале установки — сохраните его.

Вручную дополнительный узел ставится тем же скриптом с параметром JOIN_CLUSTER=1 (Документ 7).

7. Управление службой и настройки

sudo systemctl status hopedc      # состояние
sudo systemctl restart hopedc     # перезапуск
journalctl -u hopedc -f           # журнал в реальном времени
/opt/hopedc/hopedc-core --version # установленная версия

Тонкие настройки задаются переменными окружения службы. Изменить их можно командой sudo systemctl edit hopedc (секция [Service], строки вида Environment=ИМЯ=значение), затем перезапустите службу.

ПеременнаяНазначение
DC_SELF_IPIP этого контроллера для записей DNS/DHCP при первичном засеве.
DC_DATA_DIRКаталог базы (ставит установщик).
DC_LOG_DIRКаталог журналов с ежедневной ротацией (hopedc.log.ГГГГ‑ММ‑ДД).
DC_UI_PORT / DC_API_PORTПорты веб‑панели и API (9443 / 9444).
DC_MASTER_KEY_FILEПуть к файлу мастер‑ключа (по умолчанию /etc/hopedc/master.key).
DC_MASTER_KEYСам мастер‑ключ (64 hex‑символа) — для внешних хранилищ секретов. Имеет приоритет над файлом. Не указывайте его в unit‑файле открытым текстом.
DC_KRB_UDP_MAXНаибольший ответ KDC по UDP, байт (по умолчанию 1465, как MaxDatagramReplySize у AD); больший ответ клиент получает по TCP.
DC_WAL_COMPACT_MBПорог размера журнала базы, при превышении которого раз в 15 минут выполняется фоновая компактизация (по умолчанию 64).
DC_PKI_HTTP_PORTПорт публикации CRL и сертификата ЦС (по умолчанию 80).

8. Резервное копирование и мастер‑ключ

Сразу после установки сохраните копию мастер‑ключа вне сервера: веб‑панель → Резервное копирование → «Скачать мастер‑ключ (под паролем)» или sudo /opt/hopedc/hopedc-core key export --out /root/dc.hdckey --data-dir /var/lib/hopedc. Без ключа база и бэкапы не восстанавливаются (подробно — Документ 2, раздел «Шифрование данных на диске и мастер‑ключ»).

Автобэкапы выполняются самим контроллером — настройка в разделе «Резервное копирование» веб‑панели (Документ 2). Для холодной копии остановите службу и скопируйте каталог данных:

sudo systemctl stop hopedc
sudo tar czf /backup/hopedc_data_$(date +%F).tgz -C /var/lib hopedc
sudo systemctl start hopedc

Каталог данных и архивы бэкапов зашифрованы мастер‑ключом, который не входит ни в каталог данных, ни в архив. Копия каталога без ключа бесполезна — храните копию ключа (.hdckey под паролем) отдельно от бэкапов.

Перенос на другой сервер

Установите HopeDC на новый сервер скриптом (раздел 4), остановите службу, распакуйте холодную копию в /var/lib/hopedc и импортируйте ключ исходного сервера:

sudo systemctl stop hopedc
sudo /opt/hopedc/hopedc-core key import dc.hdckey --force --data-dir /var/lib/hopedc
sudo /opt/hopedc/hopedc-core key info --data-dir /var/lib/hopedc
sudo systemctl start hopedc

Команда key info должна показать одинаковый отпечаток у ключа и у базы. Для восстановления из ZIP‑архива бэкапа на сервере с собственным ключом импорт не нужен: в панели при восстановлении укажите файл .hdckey исходного сервера.

Откат на версию ниже v106 не поддерживается: старая версия не прочитает зашифрованную базу.

9. Межсетевой экран

Установщик сам открывает порты в ufw или firewalld. Если вы запускали его с NO_FIREWALL=1 или используете другой межсетевой экран, откройте порты вручную.

ufw (Debian/Ubuntu):

for p in 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 9443/tcp 9444/tcp 80/tcp; do sudo ufw allow $p; done
sudo ufw reload

firewalld (RHEL):

for p in 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 9443/tcp 9444/tcp 80/tcp; do
  sudo firewall-cmd --permanent --add-port=$p; done
sudo firewall-cmd --reload
Подробные схемы сетевых взаимодействий и матрица «кто с кем» — в Документе 4 «Инструкция по сетевым взаимодействиям».

10. Проверка работоспособности

# служба работает?
systemctl is-active hopedc

# LDAP отвечает? (пакет ldap-utils)
ldapsearch -x -H ldap://127.0.0.1:389 -b "dc=hope,dc=local" -s base

# Kerberos и панель слушают?
ss -ltnp | grep -E ':88|:9443'

# DNS резолвит зону? (после включения службы DNS в панели)
nslookup hope.local 127.0.0.1

После этого откройте веб‑панель https://<IP сервера>:9443 и войдите как admin / Admin123!.

11. Обновление

Из панели

Версии ставятся из веб‑панели: Настройки → Обновления (Документ 2, п.7). Пакет загружается в панели (закрытый контур) или скачивается по манифесту с сервера обновлений. Применяет его системная служба hopedc-update, которую ставит установщик: она заменяет программу, перезапускает службу и при неудаче откатывает прежнюю версию.

Скриптом

Скопируйте новый hopedc-core_vNNN.gz в /tmp и снова запустите установщик — данные и ключ сохранятся, прежняя программа останется рядом как .prev/.bak:

sudo bash /tmp/install_hopedc.sh /tmp/hopedc-core_vNNN.gz

Откат

sudo install -m 0755 /opt/hopedc/hopedc-core.prev /opt/hopedc/hopedc-core && sudo systemctl restart hopedc

На Astra Linux после этого верните программе метку МКЦ: sudo pdpl-file 0:63:0:0 /opt/hopedc/hopedc-core.

Перед обновлением рекомендуется сделать резервную копию (раздел 8). Контроллеры кластера удобно обновлять из раздела «Контроллеры» панели.

Лицензионное соглашение

Установщик кладёт рядом с программой /opt/hopedc/EULA.txt (его же выводит hopedc-core --eula). При первом входе в панель полный администратор принимает соглашение (Документ 8); службы контроллера работают и до принятия. Для автоматизированных стендов принятие можно зафиксировать переменной окружения службы HOPEDC_EULA_ACCEPTED=1 — она означает принятие условий организацией, которая разворачивает сервер.

12. Диагностика типичных проблем

СимптомПричинаРешение
Установщик остановился с сообщением о glibcОС старше поддерживаемой (glibc ниже 2.30)использовать ОС из раздела 2
Установщик остановился на проверке пакетафайл повреждён при копировании или это не пакет HopeDCскопировать пакет заново; подробности — /var/log/hopedc-install.log
«Address already in use»порт занят (другой DNS на :53, Samba на :445)освободить порт; при KEEP_RESOLVED=1 — systemctl disable --now systemd-resolved
Служба не стартует: журнал зашифрован другим мастер-ключомна сервере не тот ключ (база перенесена с другого сервера)установить ключ исходного сервера: hopedc-core key import файл.hdckey --force; сверить отпечатки hopedc-core key info (раздел 8)
Веб‑панель не открываетсяпорт 9443 закрыт или служба не запущенаsystemctl status hopedc, ss -ltnp | grep 9443, проверить межсетевой экран (раздел 9)

13. Astra Linux SE 1.8 (МКЦ, МРД, ЗПС)

Та же сборка (требует glibc 2.30+, в Astra 1.8 — 2.36) работает на Astra 1.8 без пересборки и ставится тем же скриптом install_hopedc.sh. Установщик определяет Astra Linux и учитывает её особенности:

  1. Запускайте установщик из сессии администратора с высоким уровнем целостности (pdp-id показывает Уровень целостности=63).
  2. Служба работает от root; программа, данные и ключ получают высокую метку целостности МКЦ; журналы пишутся в /var/lib/hopedc/logs (каталог /var/log в Astra — низкой целостности). Новые файлы служба помечает сама, см. Документ 2, раздел 9.
  3. ЗПС. В строгом режиме запустится только сборка со встроенной подписью ключом, заверенным ГК «Астра». До её выпуска — мягкий режим: DIGSIG_ELF_MODE=2 в /etc/digsig/digsig_initramfs.conf, sudo update-initramfs -u -k all, перезагрузка.
  4. Межсетевой экран в Astra по умолчанию не установлен (ufw/firewalld нет); если он включён — откройте порты из раздела 9.