Joindre une machine virtuelle Red Hat Enterprise Linux à un domaine managé Microsoft Entra Domain Services

Pour permettre aux utilisateurs de se connecter aux machines virtuelles (VM) dans Azure à l’aide d’un seul ensemble d’informations d’identification, vous pouvez joindre des machines virtuelles à un domaine managé Microsoft Entra Domain Services. Quand vous joignez une machine virtuelle à un domaine managé Domain Services, les comptes d’utilisateurs et les informations d’identification du domaine peuvent être utilisés pour se connecter aux serveurs et les gérer. Les appartenances aux groupes du domaine managé sont également appliquées pour vous permettre de contrôler l’accès aux fichiers ou aux services sur la machine virtuelle.

Cet article montre comment joindre une machine virtuelle Red Hat Enterprise Linux (RHEL) à un domaine managé.

Prérequis

Pour effectuer ce tutoriel, vous avez besoin des ressources et des privilèges suivants :

Créer une machine virtuelle Linux RHEL et s’y connecter

Si vous disposez d’une machine virtuelle Linux RHEL dans Azure, connectez-vous-y en utilisant SSH, puis passez à l’étape suivante pour commencer à configurer la machine virtuelle.

Si vous avez besoin de créer une machine virtuelle Linux RHEL ou si vous souhaitez créer une machine virtuelle de test dans le cadre de cet article, vous pouvez employer l’une des méthodes suivantes :

Au moment de créer la machine virtuelle, faites attention aux paramètres de réseau virtuel et veillez à ce que la machine virtuelle puisse communiquer avec le domaine managé :

  • Déployez la machine virtuelle sur le même réseau virtuel ou sur un réseau appairé dans lequel vous avez activé Microsoft Entra Domain Services.
  • Déployez la machine virtuelle dans un sous-réseau différent de celui de votre domaine managé Microsoft Entra Domain Services.

Une fois la machine virtuelle déployée, suivez les étapes pour vous connecter à la machine virtuelle avec SSH.

Configurer le fichier hosts

Pour que le nom d’hôte de la machine virtuelle soit correctement configuré pour le domaine managé, modifiez le fichier /etc/hosts et définissez le nom d’hôte :

sudo vi /etc/hosts

Dans le fichier hosts, mettez à jour l’adresse localhost. Dans l’exemple suivant :

  • aaddscontoso.com est le nom de domaine DNS de votre domaine managé.
  • rhel est le nom d’hôte de votre machine virtuelle RHEL que vous joignez au domaine managé.

Mettez à jour ces noms avec vos propres valeurs :

127.0.0.1 rhel rhel.aaddscontoso.com

Quand vous avez terminé, enregistrez et quittez le fichier hosts à l’aide de la commande :wq de l’éditeur.

Important

Tenez compte que Red Hat Enterprise Linux 6.X et Oracle Linux 6.x sont déjà EOL. RHEL 6.10 dispose d’un support ELS disponible, qui prendra fin en juin 2024.

Installer les packages nécessaires

La machine virtuelle a besoin de packages supplémentaires pour être jointe au domaine managé. Pour installer et configurer ces packages, mettez à jour et installez les outils de jonction de domaine à l’aide de yum.

sudo yum install adcli sssd authconfig krb5-workstation

Joindre la machine virtuelle au domaine managé

Maintenant que les packages nécessaires sont installés sur la machine virtuelle, joignez celle-ci au domaine managé.

  1. Utilisez la commande adcli info pour découvrir le domaine managé. L’exemple suivant découvre le domaine ADDDSCONTOSO.COM. Spécifiez votre propre nom de domaine managé TOUT EN MAJUSCULES :

    sudo adcli info aaddscontoso.com
    

    Si la commande adcli info ne trouve pas votre domaine managé, examinez les étapes de dépannage suivantes :

    • Vérifiez que le domaine est accessible à partir de la machine virtuelle. Essayez ping aaddscontoso.com pour voir si une réponse positive est retournée.
    • Vérifiez que la machine virtuelle est déployée dans le réseau virtuel où le domaine managé est disponible ou dans un réseau virtuel appairé.
    • Vérifiez que les paramètres de serveur DNS du réseau virtuel ont été mis à jour pour pointer vers les contrôleurs de domaine du domaine managé.
  2. Commencez par joindre le domaine à l’aide de la commande adcli join. Cette commande crée également le fichier Keytab pour l’authentification de la machine. Utilisez un compte d’utilisateur membre du domaine managé.

    sudo adcli join aaddscontoso.com -U contosoadmin
    
  3. Configurez maintenant le fichier /ect/krb5.conf, et créez les fichiers /etc/sssd/sssd.conf pour utiliser le domaine Active Directory aaddscontoso.com. Veillez à ce que AADDSCONTOSO.COM soit remplacé par votre propre nom de domaine :

    Ouvrez le fichier /etc/krb5.conf dans un éditeur :

    sudo vi /etc/krb5.conf
    

    Mettez à jour le fichier krb5.conf pour qu’il corresponde à l’exemple suivant :

    [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
    

    Créer le fichier /etc/sssd/sssd.conf :

    sudo vi /etc/sssd/sssd.conf
    

    Mettez à jour le fichier sssd.conf pour qu’il corresponde à l’exemple suivant :

    [sssd]
     services = nss, pam, ssh, autofs
     config_file_version = 2
     domains = AADDSCONTOSO.COM
    
    [domain/AADDSCONTOSO.COM]
    
     id_provider = ad
    
  4. Assurez-vous que les autorisations /etc/sssd/sssd.conf correspondent à 600 et qu'elles appartiennent à l'utilisateur racine :

    sudo chmod 600 /etc/sssd/sssd.conf
    sudo chown root:root /etc/sssd/sssd.conf
    
  5. Utilisez authconfig pour informer la machine virtuelle de l’intégration AD Linux :

    sudo authconfig --enablesssd --enablesssd auth --update
    
  6. Démarrez et activez le service sssd :

    sudo service sssd start
    sudo chkconfig sssd on
    

Si votre machine virtuelle ne peut pas venir à bout du processus de jonction de domaine, vérifiez que le groupe de sécurité réseau de la machine virtuelle autorise le trafic Kerberos sortant sur le port TCP + UDP 464 vers le sous-réseau du réseau virtuel de votre domaine managé.

Vérifiez maintenant que vous pouvez interroger les informations AD de l'utilisateur via getent.

sudo getent passwd contosoadmin

Autoriser l’authentification par mot de passe pour SSH

Par défaut, les utilisateurs ne peuvent se connecter à une machine virtuelle qu’avec l’authentification par clé publique SSH. L’authentification par mot de passe échoue. Quand vous joignez la machine virtuelle à un domaine managé, ces comptes de domaine doivent utiliser l’authentification par mot de passe. Mettez à jour la configuration SSH pour autoriser l’authentification par mot de passe comme suit.

  1. Ouvrez le fichier sshd_conf avec un éditeur :

    sudo vi /etc/ssh/sshd_config
    
  2. Mettez à jour la ligne pour PasswordAuthentication sur yes :

    PasswordAuthentication yes
    

    Quand vous avez terminé, enregistrez et quittez le fichier sshd_conf à l’aide de la commande :wq de l’éditeur.

  3. Pour appliquer les changements et permettre aux utilisateurs de se connecter avec un mot de passe, redémarrez le service SSH pour votre version de distribution de RHEL :

    sudo service sshd restart
    

Accorder les privilèges sudo au groupe « Administrateurs du contrôleur de domaine AAD »

Pour accorder des privilèges d’administration aux membres du groupe AAD DC Administrators sur la machine virtuelle RHEL, ajoutez une entrée au fichier /etc/sudoers. Une fois ajoutés, les membres du groupe AAD DC Administrators peuvent utiliser la commande sudo sur la machine virtuelle RHEL.

  1. Ouvrez le fichier sudoers pour le modifier :

    sudo visudo
    
  2. Ajoutez l’entrée suivante à la fin du fichier /etc/sudoers. Étant donné que le nom de groupe Administrateurs du contrôleur de domaine AAD contient un espace, incluez-y une barre oblique inverse en guise de caractère d’échappement. Ajoutez votre propre nom de domaine, par exemple aaddscontoso.com :

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

    Quand vous avez terminé, enregistrez et quittez l’éditeur à l’aide de la commande :wq de l’éditeur.

Se connecter à la machine virtuelle à l’aide d’un compte de domaine

Pour vérifier que la machine virtuelle a bien été jointe au domaine managé, démarrez une nouvelle connexion SSH en utilisant un compte d’utilisateur du domaine. Vérifiez qu’un répertoire de base a été créé et que l’appartenance au groupe du domaine est appliquée.

  1. Créez une connexion SSH à partir de votre console. Utilisez un compte de domaine qui appartient au domaine managé en utilisant la commande ssh -l, comme contosoadmin@aaddscontoso.com, puis entrez l’adresse de votre machine virtuelle, par exemple rhel.aaddscontoso.com. Si vous utilisez Azure Cloud Shell, utilisez l’adresse IP publique de la machine virtuelle plutôt que le nom DNS interne.

    ssh -l contosoadmin@AADDSCONTOSO.com rhel.aaddscontoso.com
    
  2. Une fois connecté à la machine virtuelle, vérifiez que le répertoire de base a bien été initialisé :

    pwd
    

    Vous devez vous trouver dans le répertoire de base /home et votre propre répertoire doit correspondre au compte d’utilisateur.

  3. Vérifiez maintenant que les appartenances aux groupes sont correctement résolues :

    id
    

    Vos appartenances aux groupes du domaine managé doivent s’afficher.

  4. Si vous vous êtes connecté à la machine virtuelle en tant que membre du groupe Administrateurs AAD DC, vérifiez que vous pouvez bien utiliser la commande sudo :

    sudo yum update
    

Étapes suivantes

Si vous avez des difficultés à connecter la machine virtuelle au domaine managé ou à vous connecter avec un compte de domaine, consultez Résoudre les problèmes de jonction à un domaine.