Joindre manuellement une instance Amazon EC2 Linux à votre répertoire 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 répertoire Simple AD Active Directory

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

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2 (64 bits x86)

  • Amazon Linux 2023 AMI

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

  • Ubuntu Server 18.04 LTS et Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSEServeur Linux Enterprise 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 Associez facilement une instance Amazon EC2 Linux à votre répertoire Simple AD Active Directory.

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 de n'importe quel SSH client.

  2. Configurez l'instance Linux pour utiliser les DNS adresses IP des DNS serveurs AWS Directory Service fournis. Vous pouvez le faire soit en le configurant dans le jeu DHCP d'options joint à l'instance, VPC soit en le configurant manuellement sur l'instance. Si vous souhaitez le configurer manuellement, consultez l'article Comment attribuer un DNS serveur statique à une EC2 instance Amazon privée dans le AWS Knowledge Center pour obtenir des conseils sur la configuration du DNS serveur persistant pour votre distribution et votre version Linux spécifiques.

  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, consultez la section Identification des images Amazon Linux 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 doté de privilèges de jonction 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

    Le DNS nom complet de votre répertoire.

    ... * Successfully enrolled machine in realm
  6. Configurez le SSH service pour autoriser l'authentification par 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 l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel SSH client et ajoutez le groupe d'administrateurs de domaine à la liste des 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 de n'importe quel SSH client.

  2. Configurez l'instance Linux pour utiliser les DNS adresses IP des DNS serveurs AWS Directory Service fournis. Vous pouvez le faire soit en le configurant dans le jeu DHCP d'options joint à l'instance, VPC soit en le configurant manuellement sur l'instance. Si vous souhaitez le configurer manuellement, consultez l'article Comment attribuer un DNS serveur statique à une EC2 instance Amazon privée dans le AWS Knowledge Center pour obtenir des conseils sur la configuration du DNS serveur persistant pour votre distribution et votre version Linux spécifiques.

  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 doté de privilèges de jonction 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

    Le DNS nom complet de votre répertoire.

    ... * Successfully enrolled machine in realm
  6. Configurez le SSH service pour autoriser l'authentification par 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 l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel SSH client et ajoutez le groupe d'administrateurs de domaine à la liste des 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 de n'importe quel SSH client.

  2. Configurez l'instance Linux pour utiliser les DNS adresses IP des DNS serveurs AWS Directory Service fournis. Vous pouvez le faire soit en le configurant dans le jeu DHCP d'options joint à l'instance, VPC soit en le configurant manuellement sur l'instance. Si vous souhaitez le configurer manuellement, consultez l'article Comment attribuer un DNS serveur statique à une EC2 instance Amazon privée dans le AWS Knowledge Center pour obtenir des conseils sur la configuration du DNS serveur persistant pour votre distribution et votre version Linux spécifiques.

  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

    Le sAMAccountnom d'un compte dans le example.com domaine doté de privilèges de jonction 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

    Le DNS nom complet de votre répertoire.

    ... * Successfully enrolled machine in realm
  6. Configurez le SSH service pour autoriser l'authentification par 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 l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel SSH client et ajoutez le groupe d'administrateurs de domaine à la liste des 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 de n'importe quel SSH client.

  2. Configurez l'instance Linux pour utiliser les DNS adresses IP des DNS serveurs AWS Directory Service fournis. Vous pouvez le faire soit en le configurant dans le jeu DHCP d'options joint à l'instance, VPC soit en le configurant manuellement sur l'instance. Si vous souhaitez le configurer manuellement, consultez l'article Comment attribuer un DNS serveur statique à une EC2 instance Amazon privée dans le AWS Knowledge Center pour obtenir des conseils sur la configuration du DNS serveur persistant pour votre distribution et votre version Linux spécifiques.

  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 DNS la résolution inverse et définissez le domaine par défaut sur celui de votre domaineFQDN. Les instances Ubuntu doivent pouvoir être résolues à l'envers pour DNS que le domaine fonctionne. Sinon, vous devez désactiver reverse DNS in /etc/krb 5.conf comme suit :

    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

    Le sAMAccountnom d'un compte dans le example.com domaine doté de privilèges de jonction 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

    Le DNS nom complet de votre répertoire.

    ... * Successfully enrolled machine in realm
  7. Configurez le SSH service pour autoriser l'authentification par 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 l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel SSH client et ajoutez le groupe d'administrateurs de domaine à la liste des 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 est admins.

ou

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

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

Cartographie des identifiants

Le mappage des identifiants peut être effectué par deux méthodes pour maintenir une expérience unifiée entre UNIX /Linux User Identifier (UID) et Group Identifier (GID) et Windows et Active Directory Identités d'identification de sécurité (SID).

  1. Centralisée

  2. Distribué

Note

Cartographie centralisée de l'identité des utilisateurs dans Active Directory nécessite une interface de système d'exploitation portable ouPOSIX.

Cartographie centralisée de l'identité des utilisateurs

Active Directory ou un autre service Lightweight Directory Access Protocol (LDAP) fournit UID et GID aux utilisateurs de Linux. Entrée Active Directory, ces identifiants sont enregistrés dans les attributs des utilisateurs :

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

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

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

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

Cartographie distribuée de l'identité des utilisateurs

If Active Directory ne possède pas l'POSIXextension ou si vous choisissez de ne pas gérer de manière centralisée le mappage des identités, Linux peut calculer les GID valeurs UID et. Linux utilise l'identifiant de sécurité unique (SID) 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.

Connect à l'instance Linux

Lorsqu'un utilisateur se connecte à l'instance à l'aide d'un SSH client, il est invité à saisir 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

SUSELinux

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%