Присоединение к домену в роли участника

Участниками домена Эллес могут быть серверы и рабочие станции под управлением ОС Windows и дистрибутивов Linux.

Участникам доступны следующие возможности:

  • использование имен доменных пользователей и групп в локальных списках управления доступом (ACL) к файлам и каталогам;

  • настройка общих ресурсов для работы в качестве файлового сервера;

  • настройка службы печати для работы в качестве сервера печати;

  • настройка механизма PAM для обеспечения входа доменных пользователей в систему локально и аутентификации доменных пользователей в работающих локально службах (например, ssh).

Примеры в данном разделе основаны на следующих допущениях:

  1. В сети доступен полностью настроенный контроллер домена Эллес, который также выступает в роли DNS-сервера, со следующими параметрами:

    • статический IP-адрес — 10.0.9.100;

    • домен — domain.name;

    • полное доменное имя (FQDN) — dc-name.domain.name.

  2. В домен добавляются рабочие станции под управлением ОС Astra Linux 1.7.x и рядовые серверы под управлением Ubuntu 22.04 LTS. В примерах ниже для

  3. Для использования аутентификации на базе Kerberos между всеми участниками домена обеспечивается синхронизация времени.

  4. Для выполнения операций присоединения используется учетная запись и пароль администратора домена (administrator).

  5. В домене создана учетная запись рядового пользователя domain-user в группе Domain Users.

Основные инструменты ввода рядовых участников в домен Эллес:

  • SSSD (System Security Services Daemon) — группа служб, которые являются частью ядра ОС Linux и работают вместе для обеспечения аутентификации, поиска удостоверений и возможностей управления доступом для системы Linux; может взаимодействовать с Active Directory, FreeIPA, Samba DC или любыми другими стандартными реализациями сервера LDAP и/или Kerberos;

  • Winbind — компонент Эллес, отвечающий за разрешения имен компьютеров и пользователей через доменные службы Active Directory; обеспечивает авторизацию в домене различных служб, реализуя интерфейс между модулями Privileged Access Management (PAM) и контроллером домена; присутствует в виде службы winbindd как на клиенте, так и на сервере Эллес.

Данный раздел содержит примеры инструментов для ввода клиентов в домен Эллес с минимальным набором настроек. Фактический состав устанавливаемых пакетов и настроек зависит от условий реальной эксплуатации и определяется администратором домена. В общем случае рекомендуется следовать инструкциям по вводу клиентов в домен Samba, приводимым в официальной документации на используемый дистрибутив Linux.

Подготовка клиента

Во всех вариантах присоединения выполните следующие шаги по подготовке к присоединению:

  1. Обновите пакеты операционной системы с помощью стандартной команды.

    Например:

    sudo apt update -y
  2. Выберите для машины имя хоста длиной не более 15 символов (ограничение протокола NetBIOS) и назначьте его.

    Например:

    sudo hostnamectl set-hostname computer-name
  3. В файле /etc/hosts сопоставьте полное доменное имя (FQDN) и короткое имя хоста с IP-адресом клиентской машины (в примере ниже используется статический IP-адрес — 10.0.9.121).

    Например:

    127.0.0.1     localhost
    10.0.9.121    computer-name.domain.name     computer-name

    При использовании статического IP-адреса требуется настроить его аренду для данного хоста на DHCP-сервере.

    Если для управления настройками DNS клиентских машин используется DHCP-сервер, требуется сконфигурировать его для использования соответствующего DNS-сервера.

  4. Задайте IP-адрес контроллера домена в качестве DNS-сервера.

    После внесенных изменений файл /etc/resolv.conf должен содержать следующие настройки:

    search domain.name
    nameserver 10.0.9.100
  5. Проверьте корректность разрешения DNS-имен:

    Например:

    ping dc-name.domain.name -c 10

    Или (если на машине установлен пакет dnsutils):

    nslookup dc-name.domain.name

Клиент на ОС Astra Linux

Операционная система Astra Linux предоставляет следующие инструменты для ввода рабочих станций и серверов в домен Эллес:

  • пакет astra-winbind и графическая утилита fly-admin-ad-client;

  • пакет astra-ad-sssd-client и графическая утилита fly-admin-ad-sssd-client.

См. подробное описание процедуры ввода и доступных параметров в официальной документации Astra Linux.

Присоединение с использованием Winbind

Для ввода рабочей станции на ОС Astra Linux 1.7.x в домен Эллес:

  1. Установите пакет astra-winbind, требуемый для присоединения к домену с помощью Winbind:

    sudo apt install astra-winbind
  2. Выполните присоединение к домену:

    sudo astra-winbind -dc dc-name.domain.name -u administrator -px

    Описание параметров присоединения:

    • -dc — имя контроллера домена;

      Если, как в примере, передается полное доменное имя (FQDN), указывать домен с помощью ключа -d не требуется.
    • -u — имя учетной записи справами администратора домена;

    • -px — указание на получение пароля указанной учетной записи из stdin.

    В случае успешного присоединения в конце вывода команды отобразится строка:

    Joined 'COMPUTER-NAME' to dns domain 'domain.name'
  3. Для проверки корректности присоединения:

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

      astra-winbind -i
      checking the NETLOGON for domain[DOMAIN-NAME] dc connection to "dc-name.domain.name" succeeded
    • убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;

      Например:

      samba-tool computer list
      ...
      COMPUTER-NAME$
      ...
    • выполните вход на машину под учетной записью доменного пользователя domain-user:

      su - domain-user
    • убедитесь, что для пользователя создан домашний каталог:

      pwd
      /home/DOMAIN-NAME/domain-user
      Формат пути задается параметром template homedir в файле /etc/samba/smb.conf (по умолчанию — /home/%D/%U).
    • проверьте, что членство в доменных группах разрешается корректно:

      id
      uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)

Присоединение с использованием SSSD

Для ввода рабочей станции на ОС Astra Linux 1.7.x в домен Эллес:

  1. Установите пакет astra-ad-sssd-client, требуемый для присоединения к домену с помощью SSSD:

    sudo apt install astra-ad-sssd-client
  2. Выполните присоединение к домену:

    sudo astra-ad-sssd-client -dc dc-name.domain.name -u administrator -px

    Описание параметров присоединения:

    • -dc — имя контроллера домена;

      Если, как в примере, передается полное доменное имя (FQDN), указывать домен с помощью ключа -d не требуется.
    • -u — имя учетной записи справами администратора домена;

    • -px — указание на получение пароля указанной учетной записи из stdin.

    В случае успешного присоединения в конце вывода команды отобразится строка:

    Компьютер подключен к домену domain-name
  3. Перезагрузите машину.

  4. После перезагрузки для проверки корректности присоединения:

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

      sudo astra-ad-sssd-client -i
      Обнаружен настроенный клиент в домене domain-name
    • убедитесь, что имя хоста рабочей станции отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена;

      Например:

      samba-tool computer list
      ...
      COMPUTER-NAME$
      ...
    • выполните вход на машину под учетной записью доменного пользователя domain-user:

      su - domain-user
    • убедитесь, что для пользователя создан домашний каталог:

      pwd
      /home/domain-user@domain-name
    • проверьте, что членство в доменных группах разрешается корректно:

      id
      uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)

Клиент на ОС Ubuntu Server 22.04 LTS

Ввод клиентов на ОС Ubuntu Server выполняется с помощью пакетов:

Состав остальных дополнительных пакетов определяется особенностями эксплуатации.

Присоединение с использованием SSSD

Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Эллес:

  1. Установите пакеты, требуемые для присоединения к домену с помощью SSSD и дальнейшей эксплуатации сервера в домене.

    Например:

    sudo apt install sssd sssd-tools libnss-sss libpam-sss realmd adcli packagekit oddjob oddjob-mkhomedir krb5-user
  2. Если в процессе установки пакета krb5-user требуемые настройки аутентификации Kerberos не были указаны в интерактивном режиме, приведите файл /etc/krb5.conf к следующему виду:

    [libdefaults]
            default_realm = DOMAIN.NAME
            dns_lookup_realm = false
            dns_lookup_kdc = true
            udp_preference_limit = 1

    Значение 1 в параметре udp_preference_limit указывает на необходимость использования протокола TCP для всех запросов аутентификации. Это позволяет повысить эффективность сетевого взаимодействия.

    Если параметр не установлен, клиент сначала отправляет запрос аутентификации по протоколу UDP, что в случае превышения ограничения на размер успешного ответа в 1400 байт может приводить к ошибке, и только после этого выполняет повторный запрос по TCP.

  3. Выполните присоединение к домену:

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

      realm -v discover domain.name
       * Resolving: _ldap._tcp.domain.name
       * Performing LDAP DSE lookup on: 10.0.9.100
       * Successfully discovered: domain.name
      domain.name
        type: kerberos
        realm-name: DOMAIN.NAME
        domain-name: domain.name
        configured: no
        server-software: active-directory
        client-software: sssd
        required-package: sssd-tools
        required-package: sssd
        required-package: libnss-sss
        required-package: libpam-sss
        required-package: adcli
        required-package: samba-common-bin
    • получите билет Kerberos для доменного пользователя с правами администратора (в данном случае — administrator):

      kinit administrator@DOMAIN.NAME
    • выполните ввод в домен:

      sudo realm join domain.name -U 'administrator@DOMAIN.NAME' --install=/ --no-password

      Описание параметров присоединения:

      • имя домена, к которому выполняется присоединение;

      • -U — имя пользователя с правами администратора домена;

      • --install=/ — рабочий каталог;

      • --no-password — использовать для аутентификации билет Kerberos вместо ввода пароля.

      См. описание всех доступных параметров в документации realmd.

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

      Successfully enrolled machine in realm
  4. Настройте локальный вход с доменной учетной записью:

    • в файле /etc/sssd/sssd.conf закомментируйте следующую строку:

      # use_fully_qualified_names = True
    • для применения изменений перезапустите службу sssd:

      sudo systemctl restart sssd.service
  5. Для настройки возможности аутентификации доменных учетных записей по паролю при подключении через SSH:

    • в файле /etc/ssh/sshd_config задайте в параметре PasswordAuthentication значение yes:

      PasswordAuthentication yes
    • для применения изменения перезапустите службу ssh:

      sudo systemctl restart ssh.service
  6. Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующие строки в файл /etc/pam.d/common-session:

    session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
    account optional pam_mkhomedir.so skel=/etc/skel/ umask=0077

    Также данную настройку можно выполнить в интерактивно режиме с помощью инструмента pam-auth-update:

    sudo pam-auth-update

    Или используйте команду:

    sudo pam-auth-update --enable mkhomedir
  7. Выдайте пользователям из группы Domain Users разрешение на вход на сервер:

    sudo realm permit -g 'Domain Users'
  8. Для проверки корректности присоединения повторно запросите информацию о домене и области безопасности Kerberos:

    realm list
    domain.name
      type: kerberos
      realm-name: DOMAIN.NAME
      domain-name: domain.name
      configured: kerberos-member
      server-software: active-directory
      client-software: sssd
      required-package: sssd-tools
      required-package: sssd
      required-package: libnss-sss
      required-package: libpam-sss
      required-package: adcli
      required-package: samba-common-bin
      login-formats: %U
      login-policy: allow-permitted-logins
      permitted-logins:
      permitted-groups: Domain Users
  9. Для проверки возможности поиска доменных пользователей и групп с помощью библиотеки libnss-sss, выполните следующие команды:

    • для поиска в домене, например, пользователя domain-user:

      getent passwd DOMAIN-NAME\\domain-user
      domain-user:*:<...>:<...>:domain-user:/home/domain-user@domain.name:/bin/bash
    • для поиска доменной группы Domain Users:

      getent group "DOMAIN-NAME\\Domain Users"
      domain users:*:<...>:administrator,domain-user
  10. Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.

    Например:

    samba-tool computer list
    ...
    COMPUTER-NAME$
    ...
  11. Выполните вход на машину под учетной записью доменного пользователя domain-user:

    su - domain-user
  12. Убедитесь, что для пользователя создан домашний каталог:

    pwd
    /home/domain-user@domain-name
  13. Проверьте, что членство в доменных группах разрешается корректно:

    id
    uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)
  14. Для проверки возможности подключения к машине по SSH с аутентификацией по паролю, выполните вход на любой контроллер в домене и установите новое подключение к присоединенной машине:

    sudo ssh -l domain-user@domain.name computer-name.domain.name

Присоединение с использованием Winbind

Для ввода рядового сервера на ОС Ubuntu Server 22.04 LTS в домен Эллес:

  1. Установите пакеты, требуемые для присоединения к домену с помощью Winbind:

    Например:

    sudo apt install samba winbind krb5-user libpam-krb5 libpam-winbind libnss-winbind
    Для присоединения требуются отдельные компоненты Samba. В качестве упрощения в примере устанавливается базовый пакет, доступный в репозиториях используемого дистрибутива Linux.
  2. Если в процессе установки пакета krb5-user требуемые настройки аутентификации Kerberos не были указаны в интерактивном режиме, приведите файл /etc/krb5.conf к следующему виду:

    [libdefaults]
            default_realm = DOMAIN.NAME
            dns_lookup_realm = false
            dns_lookup_kdc = true
            udp_preference_limit = 1

    Значение 1 в параметре udp_preference_limit указывает на необходимость использования протокола TCP для всех запросов аутентификации. Это позволяет повысить эффективность сетевого взаимодействия.

    Если параметр не установлен, клиент сначала отправляет запрос аутентификации по протоколу UDP, что в случае превышения ограничения на размер успешного ответа в 1400 байт может приводить к ошибке, и только после этого выполняет повторный запрос по TCP.

  3. Выполните настройку Samba, отредактировав конфигурационный файл smb.conf:

    • определите расположение файла:

      sudo smbd -b | grep "CONFIGFILE"
         CONFIGFILE: /etc/samba/smb.conf
    • приведите файл smb.conf, например, к виду (состав настроек определяется конкретными условиями эксплуатации):

      [global]
          dedicated keytab file = /etc/krb5.keytab
          dns forwarder = 10.0.9.100
          domain master = No
          idmap config * : range = 100000-199999
          idmap config * : backend = tdb
          idmap config DOMAIN : range = 200000-299999
          idmap config DOMAIN : backend = rid
          kerberos method = secrets and keytab
          load printers = No
          local master = No
          map acl inherit = Yes
          os level = 0
          preferred master = No
          printcap name = /dev/null
          realm = DOMAIN.NAME
          security = ADS
          store dos attributes = Yes
          template homedir = /home/%U
          template shell = /bin/bash
          vfs objects = acl_xattr
          winbind enum groups = Yes
          winbind enum users = Yes
          winbind nss info = rfc2307
          winbind refresh tickets = Yes
          winbind use default domain = Yes
          workgroup = DOMAIN
    • при необходимости заполните разделы [homes], [printers] и т. д.;

    • проверьте корректность подготовленной конфигурации:

      samba-tool testparm
  4. Для обеспечения доступа к доменным пользователям и группам через диспетчер службы имен (NSS) в файле /etc/nsswitch.conf в строках со значениями параметров passwd и group добавьте рядом с files значение winbind:

    passwd: files winbind
    group:  files winbind
  5. Настройте автоматическое создание домашнего каталога при первом входе пользователя, добавив следующие строки в файл /etc/pam.d/common-session:

    session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
    account optional pam_mkhomedir.so skel=/etc/skel/ umask=0077

    Также данную настройку можно выполнить в интерактивно режиме с помощью инструмента pam-auth-update:

    sudo pam-auth-update

    Или используйте команду:

    sudo pam-auth-update --enable mkhomedir
  6. Выполните присоединение к домену:

    net ads join -U administrator

    В случае успешного присоединения в конце вывода команды отобразится строка:

    Joined 'computer-name' to dns domain 'domain.name'
  7. Перезапустите службу winbind:

    sudo systemctl restart winbind.service
  8. Для проверки возможности поиска доменных пользователей и групп с помощью библиотеки libnss-winbind, выполните следующие команды:

    • для поиска в домене, например, пользователя domain-user:

      getent passwd DOMAIN-NAME\\domain-user
      domain-user:*:<...>:<...>:domain-user:/home/domain-user@domain.name:/bin/bash
    • для поиска доменной группы Domain Users:

      getent group "DOMAIN-NAME\\Domain Users"
      domain users:*:<...>:administrator,domain-user
  9. Убедитесь, что имя хоста отображается в списке компьютеров в домене, запросив список на любом из работающих контроллеров домена.

    Например:

    samba-tool computer list
    ...
    COMPUTER-NAME$
    ...
  10. Выполните вход на машину под учетной записью доменного пользователя domain-user.

    Например:

    su - domain-user
  11. Убедитесь, что для пользователя создан домашний каталог:

    pwd
    /home/domain-user
    Формат пути задается параметром template homedir в файле /etc/samba/smb.conf (в примере конфигурации выше — /home/%U).
  12. Проверьте, что членство в доменных группах разрешается корректно:

    id
    uid=<...>(domain-user) gid=<...>(domain users) groups=<...>(domain users)