ActiveDirectory/Join

Материал из ALT Linux Wiki
< ActiveDirectory
Версия от 17:45, 13 декабря 2024; Olga kmv (обсуждение | вклад) (Новая страница: «==Ввод машины в домен== Ввод машины в домен — это процесс, в результате которого компьютер становится частью инфраструктуры Active Directory (AD) или другого домена, управляемого централизованной службой каталогов. Это действие связывает компьютер с доменом и н...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Ввод машины в домен

Ввод машины в домен — это процесс, в результате которого компьютер становится частью инфраструктуры Active Directory (AD) или другого домена, управляемого централизованной службой каталогов. Это действие связывает компьютер с доменом и наделяет его рядом характеристик и возможностей, таких как централизованная аутентификация, авторизация и управление настройками.

Для того, чтобы машина стала частью домена, необходимо выполнение следующих действий:

  1. На контроллере домена - изменение LDAP-базы домена;
  2. На клиенте (машина, которую необходимо ввести в домен) - настройка сети и системных конфигураций.

На контроллере домена

Ключевым моментом на контроллере домена является создание машинной учетной записи, к которой впоследствии будет привязана машина.

Происходит создание объекта computer с уникальным именем машины в формате MACHINE$. Учетная запись привязывается к контейнеру или определенной организационной единице (OU) в базе LDAP, что позволяет контролировать доступ машины в домен и устанавливать необходимые групповые политики. По умолчанию учетные записи компьютеров создаются в контейнере Computers.

Примечания

Длинные имена машин в домене

Рекомендации (для имен хостов, больше 15 символов) для клиентов и серверов на базе ALT:

  • Хосту задаётся два имени: длинное (dnsHostname) и короткое (sAMAccountName, NetBIOS Name).
  • Длинное имя должно совпадать с именем хоста (hostname).
  • При введении хоста в домен оба имени нужно указывать явно.
  • Оба имени должны быть уникальными.
  • Для корректной работы службы SSSD в параметре настройки ad_hostname необходимо задавать короткое имя хоста.
  • Обновление DNS записей с помощью SSSD будет выполняться только для короткого имени. По этому обновление DNS записей рекомендуется отключить (dyndns_update = false, dyndns_update_ptr = false).
  • Для введения хоста в домен в режиме с двумя именами предлагается использовать временное решение в виде распространяемого не из пакета скрипта system-auth

Для использования длинного имени необходимо дополнительно указать короткое NetBIOS имя, например:

#./system-auth write ad domain.alt super-long-hostname sub --netbiosname=short-host

В случае с коротким именем хоста поведение скрипта не меняется.

Для контроллеров домена длинные имена не допустимы.

На клиенте

Предварительно на клиенте должна быть настроена сеть. В качестве первичного DNS должен быть указан такой DNS-сервер, который который умеет разрешать DNS-имена из домена AD.

В процессе привязки машины к домену происходит создание машинной учетной записи (или нахождение уже существующей, созданной заранее) и смена ее пароля.

При добавлении Linux-машины в домен создается файл krb5.keytab, который хранит ключи для аутентификации машины в домене через Kerberos (тот самый пароль учетной записи машины). Он необходим для того, чтобы машина могла аутентифицироваться и взаимодействовать с доменом.

Просмотреть содержимое файла krb5.keytab:

# klist -ket

Таким образом можно получить следующую информацию:

  1. KVNO (Key Version Number) — номер версии ключа в системе аутентификации Kerberos. Когда ключ аутентификации учетной записи меняется (например, при ротации пароля), KVNO увеличивается. Это позволяет различать старые и новые версии ключей.
  2. Timestamp - время создания записи для ключа в keytab-файле.
  3. Principal - уникальный идентификатор объекта в Kerberos, для которого был сгенерирован ключ аутентификации. В krb5.keytab обычно хранятся Principal, которые используются для аутентификации машины или служб, работающих на ней. Они включают:
    • Машинный Principal (представляет учетную запись компьютера в домене)
      hostname$@REALM
    • Host Principal (используется для базовых служб, связанных с машиной)
      host/hostname.example.com@REALM
      host/hostname@REALM
    • Service Principal (представляет сетевые службы, которые используют Kerberos для аутентификации)
      HTTP/webserver.example.com@REALM
      ldap/server.example.com@REALM
    • Restricted Host Principal (используется для служб с дополнительными ограничениями)
      restrictedkrbhost/hostname.example.com@REALM
      restrictedkrbhost/hostname@REALM

При добавлении Windows-машины в домен пароль учетной записи машины генерируется и хранится локально в базе Security Account Manager (SAM) в зашифрованном виде.

Файл SAM находится по пути: C:\Windows\System32\config\SAM. Он недоступен для прямого чтения, так как защищен системой. Пароль используется для вычисления ключа Kerberos, необходимого для аутентификации.

Однако машина все еще остается под управлением локального пользователя, который ее ввел в домен. Для того чтобы машина была полностью интегрирована и подчинялась доменным политикам, необходимо выполнение дополнительных шагов.

Чтобы ввести машину под управление домена необходим еще ряд действий:

  • Настройка локальной аутентификации - для локальных и доменных пользователей. Эта настройка позволяет машине работать как с локальными учетными записями, так и с учетными записями из домена.
  • Настройка разрешения имен - позволяет машине правильно обрабатывать имена пользователей и групп из домена и обеспечивать доступ к ресурсам через корректную работу с именами.
  • ID-mapping - настройка, которая связывает UID/GID локальных пользователей с идентификаторами в домене (на windows-машинах не требуется).
  • Настройка ролей и привилегий - настройка управления доступом для пользователей домена на клиентских рабочих станциях.
  • Групповые политики - настройка рабочей среды.

Когда компьютер становится частью домена, он подчиняется доменным политикам и интегрируется с другими компьютерами в домене. Это позволяет использовать возможности централизованного управления учетными записями, доступом и настройками безопасности. Привязка машины к домену также упрощает аутентификацию доменных пользователей, позволяя им входить в систему с одной учетной записью и получать доступ ко всем ресурсам (Single Sign-On (SSO)).

Вход в домен AD клиентом на ALT Linux

В семействе дистрибутивов ALT рекомендуемым способом ввода машины в домен является использование модуля аутентификации alterator-auth, который использует команду net ads join.

Модуль можно использовать в ACC (Центр управления системой) и в командной строке.

Перед вводом машины в домен с помощью команды net ads join, происходит подготовка машины (данные настройки выполняются автоматически):

  1. Настройка Avahi-daemon - настройка порядка поиска имен хостов в файле nsswitch.conf, если используется домен с суффиксом .local. В таком случае поиск через DNS должен быть раньше поиска через mDNS (Multicast DNS).
  2. Проверка DNS (проверка доступности Kerberos-сервера для указанного домена)
    $ host -t SRV _kerberos._tcp.domain.alt | grep 'SRV record'
    
  3. Редактирование системных конфигураций
    • настройки kerberos в файле /etc/krb5.conf
      • Область Kerberos по умолчанию:
        default_realm = DOM.LOC
      • отключение поиска области Kerberos домена через DNS:
        dns_lookup_realm = false
      • включение поиска kerberos-настроек домена через DNS:
        dns_lookup_kdc = true
    • настройка конфигурационного файла /etc/samba/smb.conf
      В этом конфигурационном файле содержатся настройки самого сервиса Samba и службы winbind. К настройкам Samba относятся:
      • kerberos-имя домена:
        realm = DOMAIN.ALT
      • рабочая группа:
        workgroup = DOMAIN
      • имя рабочей станции в сетевом окружении:
        netbios name = CLIENT2
      • уровень безопасности Active Directory:
        security = ADS
      • метод хранения kerberos-ключей рабочей станции:
        kerberos method = system keytab
      К настройкам службы Winbind, который запущен в любом случае (при использовании и SSSD и Winbind)
      • Перечисление Winbind всех пользователей домена при вызове соответствующих команд:
        winbind enum users = no
      • Перечисление Winbind всех групп домена:
        winbind enum groups = no
      • Шаблон пути к домашним директориям пользователей домена:
        template homedir = /home/%D/%U
      • Оболочка по умолчанию, которая будет назначена доменным пользователям при их авторизации на локальной машине:
        template shell = /bin/bash
      • Формат имен пользователей при их использовании в системе
        winbind use default domain = yes
      Пример секции [global] конфигурационного файла:
       [global]
              security = ads
              realm = DOMAIN.ALT
              workgroup = DOMAIN
              netbios name = WS8
              template shell = /bin/bash
              kerberos method = system keytab
              wins support = no
              winbind use default domain = yes
              winbind enum users = no
              winbind enum groups = no
              template homedir = /home/%D/%U
              winbind refresh tickets = yes
              winbind offline logon = yes
              idmap config * : range = 10000-20000000
              idmap config * : backend = tdb
      
              machine password timeout = 0
      ;       encrypt passwords = true
      ;       dns proxy = no
      ;       socket options = TCP_NODELAY
      ;       domain master = no
      ;       local master = no
      ;       preferred master = no
      ;       os level = 0
      ;       domain logons = no
      ;       load printers = no
      ;       show add printer wizard = no
      ;       printcap name = /dev/null
      ;       disable spoolss = yes
      
    • настройка SSSD
      • Минимальный конфигурационный файл (/etc/sssd/sssd.conf) для sssd-ad выглядит следующим образом:
        [sssd]
        config_file_version = 2
        services = nss, pam
        
        # Managed by system facility command:
        ## control sssd-drop-privileges unprivileged|privileged|default
        user = _sssd
        
        # SSSD will not start if you do not configure any domains.
        
        domains = DOMAIN.ALT
        [nss]
        
        [pam]
        [domain/DOMAIN.ALT]
        id_provider = ad
        auth_provider = ad
        chpass_provider = ad
        access_provider = ad
        default_shell = /bin/bash
        fallback_homedir = /home/%d/%u
        debug_level = 0
        ; cache_credentials = false
        ad_gpo_ignore_unreadable = true
        ad_gpo_access_control = permissive
        ad_update_samba_machine_account_password = true