Joindre manuellement une instance Amazon EC2 Linux à votre Simple AD Active Directory - AWS Directory Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Joindre manuellement une instance Amazon EC2 Linux à votre Simple AD Active Directory

Outre les instances Amazon EC2 Windows, vous pouvez également joindre certaines instances Amazon EC2 Linux à votre annuaire Simple AD Active Directory. Les distributions et les versions d'instance Linux suivantes sont prises en charge :

  • AMI Amazon Linux 2018.03.0

  • Amazon Linux 2 (64 bits x86)

  • AMI Amazon Linux 2023

  • Red Hat Enterprise Linux 8 (HVM) (64 bits x86)

  • Ubuntu Server 18.04 LTS et Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

Note

D'autres distributions et versions Linux peuvent fonctionner, mais n'ont pas été testées.

Prérequis

Avant de pouvoir joindre une instance Amazon Linux, CentOS, Red Hat ou Ubuntu à votre annuaire, l'instance doit d'abord être lancée comme indiqué dans Joindre une instance Amazon EC2 Linux à votre Simple AD Active Directory de manière ininterrompue.

Important

Certaines des procédures suivantes peuvent rendre votre instance inaccessible ou non utilisable si elles ne sont pas effectuées correctement. Par conséquent, nous vous conseillons vivement de faire une sauvegarde ou de prendre un instantané de votre instance avant d'exécuter ces procédures.

Pour joindre une instance Linux à votre annuaire

Suivez les étapes pour votre instance Linux spécifique à l'aide de l'un des onglets suivants :

Amazon Linux
  1. Connectez-vous à l'instance à l'aide d'un client SSH.

  2. Configurez l'instance Linux pour utiliser les adresses IP de serveur DNS des serveurs DNS AWS Directory Service fournis par. Pour cela, vous pouvez la configurer dans le jeu d'options DHCP lié au VPC ou la définir manuellement sur l'instance. Si vous souhaitez la définir manuellement, veuillez consulter How do I assign a static DNS server to a private Amazon EC2 instance (français non garanti) dans le Centre de AWS connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version particulières de Linux.

  3. Assurez-vous que votre instance Amazon Linux - 64 bits est à jour.

    sudo yum -y update
  4. Installez les paquets Amazon Linux requis sur votre instance Linux.

    Note

    Certains de ces packages peuvent être déjà installés.

    Au fur et à mesure que vous installez les packages, plusieurs fenêtres de configuration contextuelles peuvent apparaître. Vous pouvez généralement laisser les champs de ces écrans vides.

    Amazon Linux
    sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
    Note

    Pour vous aider à déterminer la version d'Amazon Linux que vous utilisez, veuillez consulter la section Identifying Amazon Linux images (français non garanti) dans le Guide de EC2 l'utilisateur Amazon pour les instances Linux.

  5. Joignez l'instance à l'annuaire avec la commande suivante.

    sudo realm join -U join_account@EXAMPLE.COM example.com --verbose
    join_account@EXAMPLE.COM

    Un compte dans le example.com domaine qui dispose de privilèges de jointure de domaine. À l'invite, saisissez le mot de passe du compte. Pour obtenir plus d'informations sur la délégation de ces privilèges, veuillez consulter Délégation des privilèges de connexion à un annuaire pour AWS Managed Microsoft AD.

    example.com

    Nom DNS complet de votre annuaire.

    ... * Successfully enrolled machine in realm
  6. Définissez le service SSH pour permettre l'authentification du mot de passe.

    1. Ouvrez le fichier /etc/ssh/sshd_config dans un éditeur de texte.

      sudo vi /etc/ssh/sshd_config
    2. Définissez le paramètre PasswordAuthentication sur yes.

      PasswordAuthentication yes
    3. Redémarrez le service SSH.

      sudo systemctl restart sshd.service

      Autrement :

      sudo service sshd restart
  7. Une fois que l'instance a redémarré, connectez-vous y avec un client SSH et ajoutez le groupe d'administrateurs du domaine à la liste sudoers en effectuant les étapes suivantes :

    1. Ouvrez le fichier sudoers avec la commande suivante :

      sudo visudo
    2. Ajoutez les éléments suivants en bas du fichier sudoers et enregistrez-le.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)

CentOS
  1. Connectez-vous à l'instance à l'aide d'un client SSH.

  2. Configurez l'instance Linux pour utiliser les adresses IP de serveur DNS des serveurs DNS AWS Directory Service fournis par. Pour cela, vous pouvez la configurer dans le jeu d'options DHCP lié au VPC ou la définir manuellement sur l'instance. Si vous souhaitez la définir manuellement, veuillez consulter How do I assign a static DNS server to a private Amazon EC2 instance (français non garanti) dans le Centre de AWS connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version particulières de Linux.

  3. Assurez-vous que votre instance CentOS 7 est à jour.

    sudo yum -y update
  4. Installez les paquets CentOS 7 obligatoires sur votre instance Linux.

    Note

    Certains de ces packages peuvent être déjà installés.

    Au fur et à mesure que vous installez les packages, plusieurs fenêtres de configuration contextuelles peuvent apparaître. Vous pouvez généralement laisser les champs de ces écrans vides.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. Joignez l'instance à l'annuaire avec la commande suivante.

    sudo realm join -U join_account@example.com example.com --verbose
    join_account@example.com

    Un compte dans le example.com domaine qui dispose de privilèges de jointure de domaine. À l'invite, saisissez le mot de passe du compte. Pour obtenir plus d'informations sur la délégation de ces privilèges, veuillez consulter Délégation des privilèges de connexion à un annuaire pour AWS Managed Microsoft AD.

    example.com

    Nom DNS complet de votre annuaire.

    ... * Successfully enrolled machine in realm
  6. Définissez le service SSH pour permettre l'authentification du mot de passe.

    1. Ouvrez le fichier /etc/ssh/sshd_config dans un éditeur de texte.

      sudo vi /etc/ssh/sshd_config
    2. Définissez le paramètre PasswordAuthentication sur yes.

      PasswordAuthentication yes
    3. Redémarrez le service SSH.

      sudo systemctl restart sshd.service

      Autrement :

      sudo service sshd restart
  7. Une fois que l'instance a redémarré, connectez-vous y avec un client SSH et ajoutez le groupe d'administrateurs du domaine à la liste sudoers en effectuant les étapes suivantes :

    1. Ouvrez le fichier sudoers avec la commande suivante :

      sudo visudo
    2. Ajoutez les éléments suivants en bas du fichier sudoers et enregistrez-le.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)

Red hat
  1. Connectez-vous à l'instance à l'aide d'un client SSH.

  2. Configurez l'instance Linux pour utiliser les adresses IP de serveur DNS des serveurs DNS AWS Directory Service fournis par. Pour cela, vous pouvez la configurer dans le jeu d'options DHCP lié au VPC ou la définir manuellement sur l'instance. Si vous souhaitez la définir manuellement, veuillez consulter How do I assign a static DNS server to a private Amazon EC2 instance (français non garanti) dans le Centre de AWS connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version particulières de Linux.

  3. Assurez-vous que l'instance Red Hat - 64 bits est à jour.

    sudo yum -y update
  4. Installez les packages Red Hat obligatoires sur votre instance Linux.

    Note

    Certains de ces packages peuvent être déjà installés.

    Au fur et à mesure que vous installez les packages, plusieurs fenêtres de configuration contextuelles peuvent apparaître. Vous pouvez généralement laisser les champs de ces écrans vides.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. Joignez l'instance à l'annuaire avec la commande suivante.

    sudo realm join -v -U join_account example.com --install=/
    join_account

    AMAccountNom s d'un compte dans le example.com domaine qui dispose de privilèges de jointure de domaine. À l'invite, saisissez le mot de passe du compte. Pour obtenir plus d'informations sur la délégation de ces privilèges, veuillez consulter Délégation des privilèges de connexion à un annuaire pour AWS Managed Microsoft AD.

    example.com

    Nom DNS complet de votre annuaire.

    ... * Successfully enrolled machine in realm
  6. Définissez le service SSH pour permettre l'authentification du mot de passe.

    1. Ouvrez le fichier /etc/ssh/sshd_config dans un éditeur de texte.

      sudo vi /etc/ssh/sshd_config
    2. Définissez le paramètre PasswordAuthentication sur yes.

      PasswordAuthentication yes
    3. Redémarrez le service SSH.

      sudo systemctl restart sshd.service

      Autrement :

      sudo service sshd restart
  7. Une fois que l'instance a redémarré, connectez-vous y avec un client SSH et ajoutez le groupe d'administrateurs du domaine à la liste sudoers en effectuant les étapes suivantes :

    1. Ouvrez le fichier sudoers avec la commande suivante :

      sudo visudo
    2. Ajoutez les éléments suivants en bas du fichier sudoers et enregistrez-le.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)

Ubuntu
  1. Connectez-vous à l'instance à l'aide d'un client SSH.

  2. Configurez l'instance Linux pour utiliser les adresses IP de serveur DNS des serveurs DNS AWS Directory Service fournis par. Pour cela, vous pouvez la configurer dans le jeu d'options DHCP lié au VPC ou la définir manuellement sur l'instance. Si vous souhaitez la définir manuellement, veuillez consulter How do I assign a static DNS server to a private Amazon EC2 instance (français non garanti) dans le Centre de AWS connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version particulières de Linux.

  3. Assurez-vous que l'instance Ubuntu - 64 bits est à jour.

    sudo apt-get update sudo apt-get -y upgrade
  4. Installez les packages Ubuntu obligatoires sur votre instance Linux.

    Note

    Certains de ces packages peuvent être déjà installés.

    Au fur et à mesure que vous installez les packages, plusieurs fenêtres de configuration contextuelles peuvent apparaître. Vous pouvez généralement laisser les champs de ces écrans vides.

    sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
  5. Désactivez la résolution DNS inversée et définissez le domaine par défaut sur le nom de domaine complet de votre domaine. Les instances Ubuntu doivent pouvoir faire l'objet d'une résolution inverse dans le DNS pour qu'un domaine puisse fonctionner. Sinon, vous devez désactiver la résolution DNS in /etc/krb 5.conf inverse de la façon suivante :

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. Joignez l'instance à l'annuaire avec la commande suivante.

    sudo realm join -U join_account example.com --verbose
    join_account@example.com

    AMAccountNom s d'un compte dans le example.com domaine qui dispose de privilèges de jointure de domaine. À l'invite, saisissez le mot de passe du compte. Pour obtenir plus d'informations sur la délégation de ces privilèges, veuillez consulter Délégation des privilèges de connexion à un annuaire pour AWS Managed Microsoft AD.

    example.com

    Nom DNS complet de votre annuaire.

    ... * Successfully enrolled machine in realm
  7. Définissez le service SSH pour permettre l'authentification du mot de passe.

    1. Ouvrez le fichier /etc/ssh/sshd_config dans un éditeur de texte.

      sudo vi /etc/ssh/sshd_config
    2. Définissez le paramètre PasswordAuthentication sur yes.

      PasswordAuthentication yes
    3. Redémarrez le service SSH.

      sudo systemctl restart sshd.service

      Autrement :

      sudo service sshd restart
  8. Une fois que l'instance a redémarré, connectez-vous y avec un client SSH et ajoutez le groupe d'administrateurs du domaine à la liste sudoers en effectuant les étapes suivantes :

    1. Ouvrez le fichier sudoers avec la commande suivante :

      sudo visudo
    2. Ajoutez les éléments suivants en bas du fichier sudoers et enregistrez-le.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      (L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)

Note

Lors de l'utilisation de Simple AD, si vous créez un compte d'utilisateur sur une instance Linux avec l'option « Force user to change password at first login », cet utilisateur ne pourra pas modifier initialement son mot de passe à l'aide de la commande kpasswd. Pour modifier le mot de passe la première fois, un administrateur de domaine doit mettre à jour le mot de passe utilisateur à l'aide des outils de gestion Active Directory.

Gérer des comptes à partir d'une instance Linux

Pour gérer des comptes dans Simple AD à partir d'une instance Linux, vous devez mettre à jour des fichiers de configuration spécifiques sur votre instance Linux comme suit :

  1. Définissez krb5_use_kdcinfo sur False dans le fichier/.conf. etc/sssd/sssd Par exemple :

    [domain/example.com] krb5_use_kdcinfo = False
  2. Pour que la configuration soit appliquée, vous devez redémarrer le service sssd :

    $ sudo systemctl restart sssd.service

    Vous pouvez également utiliser :

    $ sudo service sssd start
  3. Si vous allez gérer les utilisateurs à partir d'une instance Linux CentOS, vous devez également modifier le fichier /etc/smb.conf pour inclure :

    [global] workgroup = EXAMPLE.COM realm = EXAMPLE.COM netbios name = EXAMPLE security = ads

Restriction de l'accès de connexion à un compte

Comme tous les comptes sont définis dans Active Directory, par défaut, tous les utilisateurs de l'annuaire peuvent se connecter à l'instance. Vous pouvez autoriser uniquement certains utilisateurs à se connecter à l'instance à l'aide de la commande ad_access_filterdans sssd.conf. Par exemple :

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

Indique que les utilisateurs ne peuvent accéder qu'à l'instance s'ils sont membres d'un groupe spécifique.

cn

Nom canonique du groupe disposant d'un accès. Dans cet exemple, le nom du groupe estadmins.

ou

Il s'agit de l'unité d'organisation dans laquelle se trouve le groupe ci-dessus. Dans cet exemple, l'UO estTestou.

dc

Il s'agit du composant de domaine de votre domaine. Dans cet exemple, example.

dc

Il s'agit d'un composant de domaine supplémentaire. Dans cet exemple, com.

Vous devez ajouter manuellement ad_access_filter à votre /etc/sssd/sssd.conf.

Ouvrez le fichier /etc/sssd/sssd.conf dans un éditeur de texte.

sudo vi /etc/sssd/sssd.conf

Une fois l'opération effectuée, votre commande sssd.conf pourrait ressembler à ce qui suit :

[sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)

Pour que la configuration soit appliquée, vous devez redémarrer le service sssd :

sudo systemctl restart sssd.service

Vous pouvez également utiliser :

sudo service sssd restart

Mapping d'identité

Le mappage des identifiants peut être effectué par deux méthodes afin de maintenir une expérience unifiée entre les identités UNIX/Linux User Identifier (UID) et Group Identifier (GID) et Windows et Active Directory Security Identifier (SID). Ces méthodes sont les suivantes :

  1. Centralisée

  2. Distribué

Note

Le mappage centralisé de l'identité utilisateur Active Directory nécessite une interface de système d'exploitation portable ou POSIX.

Mapping d'identité d'utilisateur centralisé

Active Directoryou autre service LDAP (Lightweight Directory Protocol) fournit un UID et un GID aux utilisateurs de Linux. DansActive Directory, ces identifiants sont stockés dans les attributs des utilisateurs si l'extension POSIX est configurée :

  • UID - Le nom d'utilisateur Linux (chaîne)

  • Numéro UID : numéro d'identification utilisateur Linux (entier)

  • Numéro GID : numéro d'identification du groupe Linux (entier)

Pour configurer une instance Linux afin d'utiliser l'UID et le GID à partir deActive Directory, définissez-les ldap_id_mapping = False dans le fichier sssd.conf. Avant de définir cette valeur, vérifiez que vous avez ajouté un UID, un numéro UID et un numéro GID aux utilisateurs et aux groupes dans. Active Directory

Mapping d'identité d'utilisateur distribué

S'il Active Directory ne possède pas l'extension POSIX ou si vous choisissez de ne pas gérer de manière centralisée le mappage des identités, Linux peut calculer les valeurs UID et GID. Linux utilise l'identifiant de sécurité (SID) unique de l'utilisateur pour garantir la cohérence.

Pour configurer le mappage d'ID utilisateur distribué, définissez-le ldap_id_mapping = True dans le fichier sssd.conf.

Problèmes courants

Si vous le configurezldap_id_mapping = False, le démarrage du service SSSD échouera parfois. La raison de cet échec est due au fait que les modifications UIDs ne sont pas prises en charge. Nous vous recommandons de supprimer le cache SSSD chaque fois que vous passez du mappage d'ID aux attributs POSIX ou des attributs POSIX au mappage d'ID. Pour plus de détails sur le mappage des identifiants et les paramètres ldap_id_mapping, consultez la page de manuel sssd-ldap (8) sur la ligne de commande Linux.

Connect to the Linux instance

Lorsqu'un utilisateur se connecte à l'instance à l'aide d'un client SSH, il est invité à indiquer son nom d'utilisateur. L'utilisateur peut entrer le nom d'utilisateur au format username@example.com ou au format EXAMPLE\username. La réponse ressemblera à la suivante, selon la distribution Linux que vous utilisez :

Amazon Linux, Red Hat Enterprise Linux et CentOS Linux

login as: johndoe@example.com johndoe@example.com's password: Last login: Thu Jun 25 16:26:28 2015 from XX.XX.XX.XX

SUSE Linux

SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit) As "root" (sudo or sudo -i) use the: - zypper command for package management - yast command for configuration management Management and Config: https://www.suse.com/suse-in-the-cloud-basics Documentation: https://www.suse.com/documentation/sles-15/ Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud Have a lot of fun...

Ubuntu Linux

login as: admin@example.com admin@example.com@10.24.34.0's password: Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1057-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Apr 18 22:03:35 UTC 2020 System load: 0.01 Processes: 102 Usage of /: 18.6% of 7.69GB Users logged in: 2 Memory usage: 16% IP address for eth0: 10.24.34.1 Swap usage: 0%