Product SiteDocumentation Site

Глава 49. Альт Домен

49.1. Создание нового домена
49.1.1. Установка пакетов
49.1.2. Остановка конфликтующих служб
49.1.3. Восстановление к начальному состоянию Samba
49.1.4. Установка имени контроллера домена
49.1.5. Сетевые настройки
49.1.6. Создание домена в ЦУС
49.1.7. Создание домена одной командой
49.1.8. Интерактивное создание домена
49.1.9. Запуск службы
49.1.10. Настройка Kerberos
49.1.11. Проверка работоспособности домена
49.2. Повышение уровня схемы, функционального уровня домена
49.3. Управление пользователями
49.4. Присоединение к домену в роли контроллера домена
49.5. Проверка результатов присоединения
49.6. Репликация
49.7. Подключение к домену на рабочей станции
49.7.1. Подготовка
49.7.2. Ввод в домен
Альт Домен — программный комплекс для централизованного управления пользователями и компьютерами в корпоративной сети на базе Linux и Windows. Обеспечивает единый центр аутентификации и авторизации, хранение данных о пользователях и устройствах, а также их администрирование. Поддерживает интеграцию с MS Active Directory и Samba DC включая управление настройками и политиками безопасности.

Примечание

В данном разделе приведена краткая инструкция разворачивания Альт Домен. Подробную инструкцию можно найти по ссылке Альт Домен.

49.1. Создание нового домена

49.1.1. Установка пакетов

Для Samba DC на базе Heimdal Kerberos необходимо установить компонент samba-dc:
# alteratorctl components install samba-dc
или пакет task-samba-dc:
# apt-get install task-samba-dc

49.1.2. Остановка конфликтующих служб

Если настройка домена выполняется не сразу после установки ОС, перед установкой необходимо остановить конфликтующие службы krb5kdc и slapd, а также bind:
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done

Примечание

Выключить автозагрузку служб и отключить службы можно в ЦУС (СистемаСистемные службы).

49.1.3. Восстановление к начальному состоянию Samba

Необходимо очистить базы и конфигурацию Samba (домен, если он создавался до этого, будет удалён):
# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol

Предупреждение

Обязательно удаляйте /etc/samba/smb.conf перед созданием домена: rm -f /etc/samba/smb.conf

49.1.4. Установка имени контроллера домена

Имя домена, для разворачиваемого DC, должно состоять минимум из двух компонентов, разделённых точкой.

Предупреждение

Необходимо избегать суффиксов .local. При указании домена, имеющего суффикс .local, на сервере и подключаемых компьютерах под управлением Linux потребуется отключить службу avahi-daemon.
Для установки имени узла и домена следует выполнить команды:
# hostnamectl set-hostname <имя узла>
# domainname <имя домена>
Например:
# hostnamectl set-hostname dc1.test.alt
# domainname test.alt

Примечание

После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.

49.1.5. Сетевые настройки

Для корректной работы сервера должны соблюдаться следующие условия:
  • для сервера должно быть задано полное доменное имя (FQDN);
  • IP-адрес сервера не должен изменяться;
  • в настройках сетевого интерфейса должен быть указан IP-адрес 127.0.0.1 в качестве первичного DNS.
Настройку сети можно выполнить как в графическом интерфейсе, так и в консоли:
  • В Центре управления системой в модуле Ethernet-интерфейсы указать имя компьютера и DNS 127.0.0.1:
    Ethernet-интерфейсы
  • В консоли:
    • задать имя компьютера:
      # hostnamectl set-hostname dc1.test.alt
      
    • указать собственный IP-адрес в качестве первичного DNS. Для этого создать файл /etc/net/ifaces/enp0s3/resolv.conf со следующим содержимым:
      nameserver 127.0.0.1
      nameserver 8.8.8.8
      search test.alt
      
      где enp0s3 — имя интерфейса;
    • обновить DNS адреса:
      # resolvconf -u
    • убедиться в наличии следующих строк в файле /etc/resolv.conf:
      nameserver 127.0.0.1
      search test.alt
      

Примечание

После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.

49.1.6. Создание домена в ЦУС

При инициализации домена в веб-интерфейсе ЦУС следует выполнить следующие действия:
  1. В модуле Домен указать имя домена, отметить пункт Active Directory, указать IP-адреса внешних DNS-серверов, задать пароль администратора домена и нажать кнопку Применить:
    Создание домена в ЦУС

    Примечание

    Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль, не полностью соответствующий требованиям, это одна из причин завершения развертывания домена ошибкой.
  2. После успешного создания домена, будет выведена информация о домене:
    Создание домена в ЦУС
  3. Перезагрузить сервер.

49.1.7. Создание домена одной командой

Создание контроллера домена test.alt с паролем администратора Pa$$word:
# samba-tool domain provision --realm=test.alt --domain=test \
--adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL \
--option="dns forwarder=8.8.8.8" --server-role=dc
где
  • --realm — область Kerberos (LDAP), и DNS имя домена;
  • --domain — имя домена (имя рабочей группы);
  • --adminpass — пароль основного администратора домена;
  • dns forwarder — внешний DNS-сервер;
  • --server-role — тип серверной роли.

Примечание

Параметр --use-rfc2307 позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Если уровень домена не указан, то домен разворачивается на уровне 2008_R2. Для разворачивания домена на другом уровне, уровень необходимо явно указать, например:
# samba-tool domain provision --realm=test.alt --domain=test --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --option="dns forwarder=8.8.8.8" --option="ad dc functional level = 2016" --server-role=dc --function-level=2016

Примечание

Если необходим уровень 2012_R2, то следует сначала развернуть домен на уровне 2008_R2, а затем повысить его до 2012_R2 (см. Повышение уровня схемы, функционального уровня домена).

49.1.8. Интерактивное создание домена

Примечание

У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена.
Для интерактивного развертывания запустите samba-tool domain provision, это запустит утилиту развертывания, которая будет задавать различные вопросы о требованиях к установке. В примере показано создание домена test.alt:
# samba-tool domain provision
Realm [TEST.ALT]:
Domain [TEST]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=alt
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers and extended rights
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Repacking database from v1 to v2 format (first record CN=Address-Book-Roots2,CN=Schema,CN=Configuration,DC=test,DC=alt)
Repack: re-packed 10000 records so far
Repacking database from v1 to v2 format (first record CN=nTFRSSettings-Display,CN=407,CN=DisplaySpecifiers,CN=Configuration,DC=test,DC=alt)
Repacking database from v1 to v2 format (first record CN=Remote Desktop Users,CN=Builtin,DC=test,DC=alt)
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Repacking database from v1 to v2 format (first record DC=ForestDnsZones,DC=test.alt,CN=MicrosoftDNS,DC=DomainDnsZones,DC=test,DC=alt)
Repacking database from v1 to v2 format (first record CN=MicrosoftDNS,DC=ForestDnsZones,DC=test,DC=alt)
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf
Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
Once the above files are installed, your Samba AD server will be ready to use
Server Role:           active directory domain controller
Hostname:              dc1
NetBIOS Domain:        TEST
DNS Domain:            test.alt
DOMAIN SID:            S-1-5-21-1303430852-2161078951-3079987082
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).

Примечание

Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов. Пароль, не полностью соответствующий требованиям, это одна из причин завершения развертывания домена ошибкой.

49.1.9. Запуск службы

В файл /etc/resolvconf.conf добавить строку:
name_servers=127.0.0.1
Обновить DNS адреса:
# resolvconf -u
Установить службу по умолчанию и запустить её:
# systemctl enable --now samba

49.1.10. Настройка Kerberos

После создания домена необходимо внести изменения в файл /etc/krb5.conf. В этом файле следует раскомментировать строку default_realm и содержимое разделов realms и domain_realm и указать название домена (обратите внимание на регистр символов), в строке dns_lookup_realm должно быть установлено значение false:
includedir /etc/krb5.conf.d/

[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_kdc = true
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = TEST.ALT
# default_ccache_name = KEYRING:persistent:%{uid}

[realms]
TEST.ALT = {
  default_domain = test.alt
}

[domain_realm]
dc1 = TEST.ALT

Примечание

В момент создания домена Samba конфигурирует шаблон файла krb5.conf для домена в каталоге /var/lib/samba/private/. Можно просто заменить этим файлом файл, находящийся в каталоге /etc/:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

49.1.11. Проверка работоспособности домена

Просмотр общей информации о домене:
# samba-tool domain info 127.0.0.1
Forest           : test.alt
Domain           : test.alt
Netbios domain   : TEST
DC name          : dc1.test.alt
DC netbios name  : DC
Server site      : Default-First-Site-Name
Client site      : Default-First-Site-Name
Просмотр предоставляемых служб:
# smbclient -L localhost -Uadministrator
Password for [TEST\administrator]:

	Sharename       Type      Comment
	---------       ----      -------
	sysvol          Disk
	netlogon        Disk
	IPC$            IPC       IPC Service (Samba 4.20.8-alt1)
SMB1 disabled -- no workgroup available
Общие ресурсы netlogon и sysvol создаваемые по умолчанию нужны для функционирования сервера и создаются в smb.conf в процессе развертывания/модернизации.
Проверка конфигурации DNS:
  • Убедиться в наличии nameserver 127.0.0.1 в /etc/resolv.conf:
    # cat /etc/resolv.conf
    nameserver 127.0.0.1
    search test.alt
    
    # host test.alt
    test.alt has address 192.168.0.132
    test.alt has IPv6 address fd47:d11e:43c1:0:a00:27ff:fe49:2df
    
  • Проверить имена хостов:
    # host -t SRV _kerberos._udp.test.alt.
    _kerberos._udp.test.alt has SRV record 0 100 88 dc1.test.alt
    # host -t SRV _ldap._tcp.test.alt.
    _ldap._tcp.test.alt has SRV record 0 100 389 dc1.test.alt.
    # host -t A dc1.test.alt.
    dc1.test.alt has address 192.168.0.132
    
    Если имена не находятся, необходимо проверить выключение службы named.
Проверка Kerberos (имя домена должно быть в верхнем регистре):
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Просмотр полученного билета:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@TEST.ALT

Valid starting       Expires              Service principal
25.03.2025 12:09:59  25.03.2025 22:09:59  krbtgt/TEST.ALT@TEST.ALT
	renew until 26.03.2025 12:09:56