Product SiteDocumentation Site

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

48.1. Создание нового домена
48.1.1. Установка пакетов
48.1.2. Остановка конфликтующих служб
48.1.3. Восстановление к начальному состоянию Samba
48.1.4. Установка имени контроллера домена
48.1.5. Сетевые настройки
48.1.6. Создание домена в ЦУС
48.1.7. Создание домена одной командой
48.1.8. Интерактивное создание домена
48.1.9. Запуск службы
48.1.10. Настройка Kerberos
48.1.11. Проверка работоспособности домена
48.2. Повышение уровня схемы, функционального уровня домена
48.3. Управление пользователями
48.4. Присоединение к домену в роли контроллера домена
48.5. Проверка результатов присоединения
48.6. Репликация
48.7. Подключение к домену на рабочей станции
48.7.1. Подготовка
48.7.2. Ввод в домен
Альт Домен — служба каталогов (доменная служба), позволяющая централизованно управлять компьютерами и пользователями в корпоративной сети с операционными системами (ОС) на ядре Linux и Windows по единым правилам из единого центра. В системе реализовано хранение данных о пользователях, компьютерах (рабочих станциях) и других объектах корпоративной сети, а также управление профилями пользователей и компьютеров с помощью групповых политик в доменах MS Active Directory / Samba DC.

Примечание

В данном разделе приведена краткая инструкция разворачивания Альт Домен. Подробную инструкцию можно найти по ссылке Альт Домен.
Поддерживаются следующие базовые возможности Active Directory:
  • аутентификация рабочих станций Windows и Linux и служб;
  • авторизация и предоставление ресурсов;
  • групповые политики (GPO);
  • перемещаемые профили (Roaming Profiles);
  • поддержка инструментов Microsoft для управления серверами (Remote Server Administration Tools) с компьютеров под управлением Windows;
  • поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования).

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

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

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

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

Так как Samba в режиме контроллера домена (Domain Controller, DC) использует свой сервер LDAP, свой центр распределения ключей Kerberos и свой сервер DNS (если не включен плагин BIND9_DLZ), перед установкой необходимо остановить конфликтующие службы krb5kdc и slapd, а также bind:
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done

Примечание

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

48.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

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

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

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

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

Примечание

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

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

Для корректной работы сервера должны соблюдаться следующие условия:
  • для сервера должно быть задано полное доменное имя (FQDN);
  • IP-адрес сервера не должен изменяться;
  • в настройках сетевого интерфейса должен быть указан IP-адрес 127.0.0.1 в качестве первичного DNS.
Настройку сети можно выполнить как в графическом интерфейсе, так и в консоли:
  • В Центре управления системой в модуле Ethernet-интерфейсы указать имя компьютера и DNS 127.0.0.1:
    Ethernet-интерфейсы
  • В консоли:
    • задать имя компьютера:
      # hostnamectl set-hostname dc1.test.alt
      
    • указать DNS и домен для поиска в файле /etc/systemd/network/alterator-enp0s3.network в разделе [Network]:
      [Match]
          Name = enp0s3
      [Network]
          IPv6AcceptRA = false
          Domains = test.alt
          Address = 192.168.0.122/24
          Gateway = 192.168.0.1
          DNS = 127.0.0.1
          DNS = 8.8.8.8
      
      где enp0s3 — имя интерфейса.

Примечание

После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
Для того чтобы DNS-сервер Samba управлял зоной test.alt, нужно настроить systemd-resolved для использования Samba в качестве основного DNS-сервера. По умолчанию systemd-resolved прослушивает DNS-запросы на локальном сокете. Чтобы избежать конфликтов с Samba DNS, следует отключить DNSStubListener:
  • в файле конфигурации systemd-resolved (/etc/systemd/resolved.conf) установить значение:
    DNSStubListener=no
  • перезапустить службу systemd-resolved:
    # systemctl restart systemd-resolved
    
  • убедиться в наличии следующих строк в файле /etc/resolv.conf:
    nameserver 127.0.0.1
    search test.alt
    

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

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

    Примечание

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

48.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 (см. Повышение уровня схемы, функционального уровня домена).

48.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
More than one IPv4 address found. Using 192.168.0.122
Looking up IPv6 addresses
No IPv6 address will be assigned
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
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
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 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 Samba4 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-80639820-2350372464-3293631772
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).

Примечание

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

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

Установить службу по умолчанию и запустить её:
# systemctl enable --now samba

48.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

48.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.19.9-alt3)
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.122
    
  • Проверить имена хостов:
    # 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.122
    
    Если имена не находятся, необходимо проверить выключение службы 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.12.2024 15:12:26  26.12.2024 01:12:26  krbtgt/TEST.ALT@TEST.ALT
	renew until 26.12.2024 15:12:22