Поделиться через


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

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

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

Предпосылки

Для работы с этим руководством вам потребуются следующие ресурсы и привилегии:

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

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

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

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

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

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

Настройка файла хостов

Чтобы убедиться, что имя узла виртуальной машины правильно настроено для управляемого домена, измените файл /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 запрашивает имя области в ALL UPPERCASE. Например, если имя управляемого домена 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. Укажите собственное управляемое доменное имя в ALL UPPERCASE:

    sudo realm discover AADDSCONTOSO.COM
    

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

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

    Опять же, имя управляемого домена должно быть введено в ALL UPPERCASE. В следующем примере учетная запись с именем contosoadmin@aaddscontoso.com используется для инициализации Kerberos. Введите собственную учетную запись пользователя, которая является частью управляемого домена:

    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. Дополнительный код может предоставить дополнительные сведения (сервер не найден в базе данных Kerberos), откройте файл /etc/krb5.conf и добавьте следующий код в [libdefaults] раздел и повторите попытку:

rdns=false

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

Один из пакетов, установленных на предыдущем шаге, был для управляющей программы системных служб безопасности (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, чтобы разрешить проверку подлинности на основе паролей следующим образом.

Замечание

Образы Ubuntu Marketplace обычно имеют несколько параметров конфигурации в разделе /etc/ssh/sshd_config.d, включая PasswordAuthentication в файле 50-cloud-init.conf, поэтому убедитесь, что вы также обновите этот файл, чтобы избежать перезаписи одного набора, выполнив указанные ниже действия.

  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
    

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

Предоставьте привилегии sudo группе 'AAD DC Administrators'

Чтобы предоставить членам группы администраторов контроллера домена AAD права администратора на виртуальной машине Ubuntu, добавьте запись в /etc/sudoers. После добавления члены группы AAD DC Administrators могут использовать команду 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
    

Дальнейшие шаги

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