Присоединение виртуальной машины Ubuntu Linux к управляемому домену доменных служб Microsoft Entra

Чтобы пользователи могли входить в виртуальные машины (виртуальные машины) в Azure с помощью одного набора учетных данных, вы можете присоединить виртуальные машины к управляемому домену доменных служб Microsoft Entra. При присоединении виртуальной машины к управляемому домену доменных служб учетные записи пользователей и учетные данные из домена можно использовать для входа и управления серверами. Также применяются членства в группах из управляемого домена, позволяющие управлять доступом к файлам и службам на виртуальной машине.

В этой статье показано, как присоединить виртуальную машину Ubuntu Linux к управляемому домену.

Необходимые компоненты

Для работы с этим учебником требуются следующие ресурсы и разрешения:

  • Активная подписка Azure.
  • Клиент Microsoft Entra, связанный с подпиской, либо синхронизирован с локальным каталогом или облачным каталогом.
  • Управляемый домен доменных служб Microsoft Entra включен и настроен в клиенте Microsoft Entra.
  • Учетная запись пользователя, входящая в управляемый домен. Убедитесь, что атрибут SAMAccountName пользователя не создан автоматически. Если несколько учетных записей пользователей в клиенте Microsoft Entra имеют один и тот же атрибут mailNickname, атрибут SAMAccountName для каждого пользователя автоматически создается. Дополнительные сведения см. в статье о синхронизации объектов и учетных данных в управляемом домене доменных служб Microsoft Entra.
  • Уникальные имена виртуальных машин Linux, содержащие не более 15 символов (иначе они будут усечены, что может вызвать конфликты в Active Directory).

Создание виртуальной машины Ubuntu Linux и подключение к ней

Если у вас есть существующая виртуальная машина Ubuntu Linux в Azure, подключитесь к ней с помощью SSH, а затем перейдите к следующему шагу, чтобы приступить к настройке виртуальной машины.

Если необходимо создать виртуальную машину Ubuntu Linux или создать тестовую виртуальную машину для использования в целях этой статьи, можете использовать один из следующих методов:

При создании виртуальной машины обратите внимание на параметры виртуальной сети и убедитесь, что виртуальная машина может обмениваться данными с управляемым доменом.

  • Разверните виртуальную машину в той же или одноранговой виртуальной сети, в которой включены доменные службы Microsoft Entra.
  • Разверните виртуальную машину в другой подсети, отличной от управляемого домена доменных служб Microsoft Entra.

После развертывания виртуальной машины выполните действия по подключению к виртуальной машине с использованием протокола SSH.

Настройка файла hosts

Чтобы убедиться, что имя узла виртуальной машины правильно настроено для управляемого домена, измените файл /etc/hosts и задайте имя узла:

sudo vi /etc/hosts

В файле hosts обновите адрес localhost. В следующем примере :

  • aaddscontoso.com — это DNS-имя управляемого домена.
  • ubuntu — это имя узла виртуальной машины Ubuntu, присоединяемой к управляемому домену.

Замените эти имена своими значениями:

127.0.0.1 ubuntu.aaddscontoso.com ubuntu

По завершении сохраните и закройте файл hosts с помощью команды :wq редактора.

Установка необходимых пакетов

Виртуальной машине требуются дополнительные пакеты для присоединения виртуальной машины к управляемому домену. Чтобы установить и настроить эти пакеты, обновите и установите средства присоединение к домену с помощью apt-get.

При установке Kerberos пакет krb5-user запрашивает имя области определения приложения, написанное в ВЕРХНЕМ РЕГИСТРЕ. Например, если имя управляемого домена — aaddscontoso.com, введите AADDSCONTOSO.COM в качестве имени области. В процессе установки разделы [realm] и [domain_realm] сохраняются в файле конфигурации /etc/krb5.conf. Убедитесь, что для имя области записано в ВЕРХНЕМ РЕГИСТРЕ.

sudo apt-get update
sudo apt-get install krb5-user samba sssd sssd-tools libnss-sss libpam-sss ntp ntpdate realmd adcli

Настройка протокола синхронизации времени по сети (NTP)

Для правильного взаимодействия с доменом необходимо синхронизировать дату и время виртуальной машины Ubuntu с управляемым доменом. Добавьте имя узла NTP из управляемого домена в файл /etc/ntp.conf.

  1. Откройте файл ntp.conf с помощью редактора:

    sudo vi /etc/ntp.conf
    
  2. В файле ntp.conf создайте строку для добавления DNS-имени управляемого домена. В следующем примере добавляется запись для aaddscontoso.com. Используйте собственное DNS-имя:

    server aaddscontoso.com
    

    По завершении сохраните и закройте файл ntp.conf с помощью команды редактора :wq.

  3. Чтобы убедиться, что виртуальная машина синхронизирована с управляемым доменом, необходимо выполнить следующие действия:

    • Остановить NTP-сервер
    • Обновить дату и время из управляемого домена
    • Перезапустить службу NTP

    Чтобы завершить настройку, выполните следующие шаги. Используйте собственное DNS-имя с помощью команды ntpdate:

    sudo systemctl stop ntp
    sudo ntpdate aaddscontoso.com
    sudo systemctl start ntp
    

Присоединение виртуальной машины к управляемому домену

Теперь, когда необходимые пакеты установлены на виртуальной машине, а протокол NTP настроен, присоедините ВМ к управляемому домену.

  1. Используйте команду realm discover для обнаружения управляемого домена. В следующем примере обнаруживается область определения приложения AADDSCONTOSO.COM. Укажите собственное имя управляемого домена В ВЕРХНЕМ РЕГИСТРЕ:

    sudo realm discover AADDSCONTOSO.COM
    

    Если команде realm discover не удается найти управляемый домен, попробуйте следующие действия по устранению неполадок:

    • Убедитесь, что домен доступен с виртуальной машины. Попробуйте ping aaddscontoso.com и посмотрите, будет ли возвращен положительный ответ.
    • Убедитесь, что виртуальная машина развернута в той же или в одноранговой виртуальной сети, в которой доступен управляемый домен.
    • Проверьте, обновлены ли параметры DNS-сервера для виртуальной сети — должны быть указаны контроллеры управляемого домена.
  2. Теперь инициализируйте Kerberos с помощью команды kinit. Укажите пользователя, входящего в управляемый домен. При необходимости добавьте учетную запись пользователя в группу в идентификаторе Microsoft Entra.

    Опять же, имя управляемого домена необходимо вводить ПРОПИСНЫМИ БУКВАМИ. В следующем примере для инициализации Kerberos используется учетная запись с именем contosoadmin@aaddscontoso.com. Введите собственную учетную запись пользователя, входящую в управляемый домен.

    sudo kinit -V contosoadmin@AADDSCONTOSO.COM
    
  3. Наконец, присоедините виртуальную машину к управляемому домену с помощью команды realm join. Используйте ту же учетную запись пользователя, которая входит в управляемый домен, указанный в предыдущей команде kinit, например contosoadmin@AADDSCONTOSO.COM:

    sudo realm join --verbose AADDSCONTOSO.COM -U 'contosoadmin@AADDSCONTOSO.COM' --install=/
    

Присоединение виртуальной машины к управляемому домену занимает несколько секунд. В следующем примере выходных данных показано, что виртуальная машина успешно присоединена к управляемому домену:

Successfully enrolled machine in realm

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

Если получено сообщение об ошибке : Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database) (Неуказанная ошибка GSS. Дополнительный код может предоставить дополнительные сведения (сервер не найден в базе данных Kerberos)), откройте файл /etc/krb5.conf, добавьте следующий код в раздел [libdefaults] и повторите попытку:

rdns=false

Обновление конфигурации SSSD

Один из пакетов, установленных на предыдущем шаге, использовался для System Security Services Daemon (SSSD). Когда пользователь пытается войти в виртуальную машину с использованием учетных данных домена, SSSD передает запрос поставщику проверки подлинности. В этом сценарии SSSD использует доменные службы для проверки подлинности запроса.

  1. Откройте файл sssd.conf с помощью редактора:

    sudo vi /etc/sssd/sssd.conf
    
  2. Закомментируйте строку для use_fully_qualified_names следующим образом:

    # use_fully_qualified_names = True
    

    По завершении сохраните и закройте файл sssd.conf с помощью команды редактора :wq.

  3. Чтобы применить изменение, перезагрузите службу SSSD.

    sudo systemctl restart sssd
    

Настройка учетной записи пользователя и параметров группы

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

Разрешение проверки пароля для SSH

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

  1. Откройте файл sshd_conf с помощью редактора:

    sudo vi /etc/ssh/sshd_config
    
  2. Для строки PasswordAuthentication установите значение yes:

    PasswordAuthentication yes
    

    По завершении сохраните и закройте файл sshd_conf с помощью команды :wq редактора.

  3. Чтобы применить изменения и позволить пользователям входить с помощью пароля, перезапустите службу SSH:

    sudo systemctl restart ssh
    

Настройка автоматического создания домашнего каталога

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

  1. /etc/pam.d/common-session Откройте файл в редакторе:

    sudo vi /etc/pam.d/common-session
    
  2. Добавьте следующую строку в файле под строкой session optional pam_sss.so:

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

    По завершении сохраните и закройте файл common-session с помощью команды редактора :wq.

Предоставление привилегий суперпользователя группе "Администраторы контроллера домена AAD"

Чтобы предоставить членам группы администраторов контроллера домена AAD права администратора на виртуальной машине Ubuntu, добавьте запись в /etc/sudoers. После добавления члены группы администраторов контроллера домена AAD могут использовать команду sudo на виртуальной машине Ubuntu.

  1. Откройте файл sudoers для редактирования:

    sudo visudo
    
  2. Добавьте следующую запись в конец файла /etc/sudoers.

    # Add 'AAD DC Administrators' group members as admins.
    %AAD\ DC\ Administrators ALL=(ALL) NOPASSWD:ALL
    

    По завершении сохраните и закройте редактор с помощью команды Ctrl-X.

Вход в виртуальную машину с помощью учетной записи домена

Чтобы убедиться, что виртуальная машина успешно присоединена к управляемому домену, запустите новое SSH-подключение, используя учетную запись пользователя домена. Убедитесь, что был создан корневой каталог и применяется членство в группе из домена.

  1. Создайте новое SSH-подключение с консоли. Используйте учетную запись домена, принадлежащую к управляемому домену, с помощью команды ssh -l, например contosoadmin@aaddscontoso.com, и введите адрес виртуальной машины, например ubuntu.aaddscontoso.com. При использовании Azure Cloud Shell используйте общедоступный IP-адрес виртуальной машины, а не внутреннее DNS-имя.

    sudo ssh -l contosoadmin@AADDSCONTOSO.com ubuntu.aaddscontoso.com
    
  2. После успешного подключения к виртуальной машине убедитесь, что корневой каталог был инициализирован правильно:

    sudo pwd
    

    Вы должны находиться в каталоге /home с собственным каталогом, совпадающим с учетной записью пользователя.

  3. Теперь убедитесь, что членство в группе разрешается правильно:

    sudo id
    

    Вы должны видеть свое членство в группе из управляемого домена.

  4. Если вы вошли в виртуальную машину в качестве члена группы администраторов контроллера домена AAD, убедитесь, что вы можете правильно использовать команду sudo:

    sudo apt-get update
    

Следующие шаги

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