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

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

В этой статье объясняется, как присоединить виртуальную машину Red Hat Enterprise Linux (RHEL) к управляемому домену.

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

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

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

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

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

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

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

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

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

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

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

sudo vi /etc/hosts

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

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

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

127.0.0.1 rhel rhel.aaddscontoso.com

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

Важно!

Учитывайте, что Red Hat Enterprise Linux 6.X и Oracle Linux 6.x уже являются EOL. RHEL 6.10 имеет поддержку ELS, которая завершится 06.2024.

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

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

sudo yum install adcli sssd authconfig krb5-workstation

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

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

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

    sudo adcli info aaddscontoso.com
    

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

    • Убедитесь, что домен доступен с виртуальной машины. Попробуйте ping aaddscontoso.com и посмотрите, будет ли возвращен положительный ответ.
    • Убедитесь, что виртуальная машина развернута в той же или в одноранговой виртуальной сети, в которой доступен управляемый домен.
    • Проверьте, обновлены ли параметры DNS-сервера для виртуальной сети — должны быть указаны контроллеры управляемого домена.
  2. Сначала присоедините домен с помощью команды adcli join. Эта команда также создает keytab для проверки подлинности машины. Используйте учетную запись пользователя, входящую в управляемый домен.

    sudo adcli join aaddscontoso.com -U contosoadmin
    
  3. Теперь настройте /ect/krb5.conf и создайте файлы /etc/sssd/sssd.conf для использования домена Active Directory aaddscontoso.com. Убедитесь, что AADDSCONTOSO.COM заменено на ваше имя домена:

    С помощью редактора откройте файл /etc/krb5.conf.

    sudo vi /etc/krb5.conf
    

    Обновите файл krb5.conf так, чтобы он соответствовал следующему образцу:

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = AADDSCONTOSO.COM
     dns_lookup_realm = true
     dns_lookup_kdc = true
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     AADDSCONTOSO.COM = {
     kdc = AADDSCONTOSO.COM
     admin_server = AADDSCONTOSO.COM
     }
    
    [domain_realm]
     .AADDSCONTOSO.COM = AADDSCONTOSO.COM
     AADDSCONTOSO.COM = AADDSCONTOSO.COM
    

    Создайте файл /etc/sssd/sssd.conf:

    sudo vi /etc/sssd/sssd.conf
    

    Обновите файл sssd.conf так, чтобы он соответствовал следующему образцу:

    [sssd]
     services = nss, pam, ssh, autofs
     config_file_version = 2
     domains = AADDSCONTOSO.COM
    
    [domain/AADDSCONTOSO.COM]
    
     id_provider = ad
    
  4. Убедитесь, что для разрешений /etc/sssd/sssd.conf указано значение 600 и что они принадлежат корневому пользователю:

    sudo chmod 600 /etc/sssd/sssd.conf
    sudo chown root:root /etc/sssd/sssd.conf
    
  5. Используйте authconfig, чтобы предоставить виртуальной машине инструкции об интеграции с Linux в Active Directory:

    sudo authconfig --enablesssd --enablesssd auth --update
    
  6. Запустите и включите службу SSSD:

    sudo service sssd start
    sudo chkconfig sssd on
    

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

Теперь проверьте, можно ли запрашивать сведения об Active Directory для пользователя с помощью getent

sudo getent passwd contosoadmin

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

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

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

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

    PasswordAuthentication yes
    

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

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

    sudo service sshd restart
    

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

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

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

    sudo visudo
    
  2. Добавьте следующую запись в конец файла /etc/sudoers. Группа администраторов контроллера домена AAD содержит пробелы в имени, поэтому включите escape-символ обратной косой черты в имя группы. Добавьте собственное доменное имя, например aaddscontoso.com:

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

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

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

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

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

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

    pwd
    

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

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

    id
    

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

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

    sudo yum update
    

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

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