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 Microsoft AD Active Directory AWS géré
En plus d'Amazon EC2 Windows instances, vous pouvez également joindre certaines instances Amazon EC2 Linux à votre AWS Managed Microsoft AD Active Directory. Les distributions et versions d'instances 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
-
Serveur SUSE Linux Enterprise 15 SP1
D'autres distributions et versions Linux peuvent fonctionner, mais n'ont pas été testées.
Joindre une instance Linux à votre Microsoft AD AWS géré
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 Rejoignez facilement votre instance Linux.
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
-
-
Connectez-vous à l'instance à l'aide d'un client SSH.
-
Configurez l'instance Linux pour utiliser les adresses IP des serveurs DNS AWS Directory Service fournis. 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 le configurer manuellement, consultez l'article Comment attribuer un serveur DNS statique à une EC2 instance Amazon privée dans le centre de AWS
connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version Linux spécifiques.
-
Assurez-vous que votre instance Amazon Linux - 64 bits est à jour.
sudo yum -y update
-
Installez les paquets Amazon Linux requis sur votre instance Linux.
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
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.
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -U join_account@EXAMPLE.COM
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Définissez le service SSH pour permettre l'authentification du mot de passe.
-
Ouvrez le fichier /etc/ssh/sshd_config
dans un éditeur de texte.
sudo vi /etc/ssh/sshd_config
-
Définissez le paramètre PasswordAuthentication
sur yes
.
PasswordAuthentication yes
-
Redémarrez le service SSH.
sudo systemctl restart sshd.service
Autrement :
sudo service sshd restart
-
Une fois l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel client SSH et ajoutez le groupe AWS Delegated Administrators à la liste des sudoers en effectuant les étapes suivantes :
-
Ouvrez le fichier sudoers
avec la commande suivante :
sudo visudo
-
Ajoutez les éléments suivants en bas du fichier sudoers
et enregistrez-le.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)
- CentOS
-
-
Connectez-vous à l'instance à l'aide d'un client SSH.
-
Configurez l'instance Linux pour utiliser les adresses IP des serveurs DNS AWS Directory Service fournis. 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 le configurer manuellement, consultez l'article Comment attribuer un serveur DNS statique à une EC2 instance Amazon privée dans le centre de AWS
connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version Linux spécifiques.
-
Assurez-vous que votre instance CentOS 7 est à jour.
sudo yum -y update
-
Installez les paquets CentOS 7 obligatoires sur votre instance Linux.
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
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -U join_account@example.com
example.com
--verbose
...
* Successfully enrolled machine in realm
-
Définissez le service SSH pour permettre l'authentification du mot de passe.
-
Ouvrez le fichier /etc/ssh/sshd_config
dans un éditeur de texte.
sudo vi /etc/ssh/sshd_config
-
Définissez le paramètre PasswordAuthentication
sur yes
.
PasswordAuthentication yes
-
Redémarrez le service SSH.
sudo systemctl restart sshd.service
Autrement :
sudo service sshd restart
-
Une fois l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel client SSH et ajoutez le groupe AWS Delegated Administrators à la liste des sudoers en effectuant les étapes suivantes :
-
Ouvrez le fichier sudoers
avec la commande suivante :
sudo visudo
-
Ajoutez les éléments suivants en bas du fichier sudoers
et enregistrez-le.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)
- Red Hat
-
-
Connectez-vous à l'instance à l'aide d'un client SSH.
-
Configurez l'instance Linux pour utiliser les adresses IP des serveurs DNS AWS Directory Service fournis. 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 le configurer manuellement, consultez l'article Comment attribuer un serveur DNS statique à une EC2 instance Amazon privée dans le centre de AWS
connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version Linux spécifiques.
-
Assurez-vous que l'instance Red Hat - 64 bits est à jour.
sudo yum -y update
-
Installez les packages Red Hat obligatoires sur votre instance Linux.
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
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -v -U join_account
example.com
--install=/
...
* Successfully enrolled machine in realm
-
Définissez le service SSH pour permettre l'authentification du mot de passe.
-
Ouvrez le fichier /etc/ssh/sshd_config
dans un éditeur de texte.
sudo vi /etc/ssh/sshd_config
-
Définissez le paramètre PasswordAuthentication
sur yes
.
PasswordAuthentication yes
-
Redémarrez le service SSH.
sudo systemctl restart sshd.service
Autrement :
sudo service sshd restart
-
Une fois l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel client SSH et ajoutez le groupe AWS Delegated Administrators à la liste des sudoers en effectuant les étapes suivantes :
-
Ouvrez le fichier sudoers
avec la commande suivante :
sudo visudo
-
Ajoutez les éléments suivants en bas du fichier sudoers
et enregistrez-le.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)
- SUSE
-
-
Connectez-vous à l'instance à l'aide d'un client SSH.
-
Configurez l'instance Linux pour utiliser les adresses IP de serveur DNS des serveurs DNS fournis par AWS Directory Service. 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 le configurer manuellement, consultez l'article Comment attribuer un serveur DNS statique à une EC2 instance Amazon privée dans le centre de AWS connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version Linux spécifiques.
-
Assurez-vous que votre instance SUSE Linux 15 est à jour.
-
Connectez le référentiel de packages.
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
Mettre à jour SUSE.
sudo zypper update -y
-
Installez les paquets SUSE Linux 15 requis sur votre instance Linux.
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 zypper -n install realmd adcli sssd sssd-tools sssd-ad samba-client krb5-client
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -U join_account example.com --verbose
…
realm: Couldn't join realm: Enabling SSSD in nsswitch.conf and PAM failed.
Notez que les deux retours suivants sont attendus.
! Couldn't authenticate with keytab while discovering which salt to use:
! Enabling SSSD in nsswitch.conf and PAM failed.
-
Activez manuellement SSSD dans PAM.
sudo pam-config --add --sss
-
Modifier nsswitch.conf pour activer SSSD dans nsswitch.conf
sudo vi /etc/nsswitch.conf
passwd: compat sss
group: compat sss
shadow: compat sss
-
Ajoutez la ligne suivante to /etc/pam.d/common -session pour créer automatiquement un répertoire personnel lors de la connexion initiale
sudo vi /etc/pam.d/common-session
session optional pam_mkhomedir.so skel=/etc/skel umask=077
-
Redémarrez l'instance pour terminer le processus de jointure de domaine.
sudo reboot
-
Reconnectez-vous à l'instance à l'aide d'un client SSH pour vérifier que la jointure de domaine s'est terminée avec succès et finalisez les étapes supplémentaires.
-
Pour confirmer que l'instance a été inscrite sur le domaine
sudo realm list
example.com
type: kerberos
realm-name: EXAMPLE.COM
domain-name: example.com
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: adcli
required-package: samba-client
login-formats: %U@example.com
login-policy: allow-realm-logins
-
Pour vérifier l'état du démon SSSD
systemctl status sssd
sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-04-15 16:22:32 UTC; 3min 49s ago
Main PID: 479 (sssd)
Tasks: 4
CGroup: /system.slice/sssd.service
├─479 /usr/sbin/sssd -i --logger=files
├─505 /usr/lib/sssd/sssd_be --domain example.com --uid 0 --gid 0 --logger=files
├─548 /usr/lib/sssd/sssd_nss --uid 0 --gid 0 --logger=files
└─549 /usr/lib/sssd/sssd_pam --uid 0 --gid 0 --logger=files
-
Pour autoriser l'accès d'un utilisateur via SSH et la console
sudo realm permit join_account@example.com
Pour autoriser un accès à un groupe de domaines via SSH et la console
sudo realm permit -g 'AWS Delegated Administrators'
Ou pour permettre à tous les utilisateurs d'accéder
sudo realm permit --all
-
Définissez le service SSH pour permettre l'authentification du mot de passe.
-
Ouvrez le fichier /etc/ssh/sshd_config
dans un éditeur de texte.
sudo vi /etc/ssh/sshd_config
-
Définissez le paramètre PasswordAuthentication
sur yes
.
PasswordAuthentication yes
-
Redémarrez le service SSH.
sudo systemctl restart sshd.service
Autrement :
sudo service sshd restart
-
13. Une fois l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel client SSH et ajoutez le groupe AWS Delegated Administrators à la liste des sudoers en effectuant les étapes suivantes :
-
Ouvrez le fichier sudoers avec la commande suivante :
sudo visudo
-
Ajoutez les éléments suivants en bas du fichier sudoers et enregistrez-le.
## Add the "Domain Admins" group from the awsad.com domain.
%AWS\ Delegated\ Administrators@example.com ALL=(ALL) NOPASSWD: ALL
- Ubuntu
-
-
Connectez-vous à l'instance à l'aide d'un client SSH.
-
Configurez l'instance Linux pour utiliser les adresses IP des serveurs DNS AWS Directory Service fournis. 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 le configurer manuellement, consultez l'article Comment attribuer un serveur DNS statique à une EC2 instance Amazon privée dans le centre de AWS
connaissances pour obtenir des conseils sur la configuration du serveur DNS persistant pour votre distribution et votre version Linux spécifiques.
-
Assurez-vous que l'instance Ubuntu - 64 bits est à jour.
sudo apt-get update
sudo apt-get -y upgrade
-
Installez les packages Ubuntu obligatoires sur votre instance Linux.
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
-
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. Dans le cas contraire, vous devez désactiver le reverse DNS in /etc/krb 5.conf comme suit :
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -U join_account example.com
--verbose
...
* Successfully enrolled machine in realm
-
Définissez le service SSH pour permettre l'authentification du mot de passe.
-
Ouvrez le fichier /etc/ssh/sshd_config
dans un éditeur de texte.
sudo vi /etc/ssh/sshd_config
-
Définissez le paramètre PasswordAuthentication
sur yes
.
PasswordAuthentication yes
-
Redémarrez le service SSH.
sudo systemctl restart sshd.service
Autrement :
sudo service sshd restart
-
Une fois l'instance redémarrée, connectez-vous à celle-ci avec n'importe quel client SSH et ajoutez le groupe AWS Delegated Administrators à la liste des sudoers en effectuant les étapes suivantes :
-
Ouvrez le fichier sudoers
avec la commande suivante :
sudo visudo
-
Ajoutez les éléments suivants en bas du fichier sudoers
et enregistrez-le.
## Add the "AWS Delegated Administrators" group from the example.com
domain.
%AWS\ Delegated\ Administrators@example.com
ALL=(ALL:ALL) ALL
(L'exemple ci-dessus utilise « \<space> » pour créer le caractère d'espace Linux.)
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
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
Cartographie des identifiants
Le mappage des identifiants peut être effectué par deux méthodes pour maintenir une expérience unifiée entre l'identifiant utilisateur (UID) UNIX/Linux et l'identifiant de groupe (GID) et Windows et Active Directory Identités d'identification de sécurité (SID). Ces méthodes sont les suivantes :
Cartographie centralisée de l'identité des utilisateurs dans Active Directory nécessite une interface de système d'exploitation portable ou POSIX.
Cartographie centralisée de l'identité des utilisateurs
Active Directory ou un autre service LDAP (Lightweight Directory Access Protocol) fournit un UID et un GID aux utilisateurs de Linux. Entrée Active 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 de 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é un UID, un numéro UID et un numéro GID aux utilisateurs et aux groupes dans Active Directory.
Cartographie distribuée de l'identité des utilisateurs
If 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 à l'instance Linux
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%