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 :
-
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
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 de n'importe quel SSH client.
-
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 centre de AWS
connaissances pour obtenir des conseils sur la configuration du DNS serveur 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
-
Configurez le SSH service pour autoriser l'authentification par 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 SSH client 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 de n'importe quel SSH client.
-
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 centre de AWS
connaissances pour obtenir des conseils sur la configuration du DNS serveur 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
-
Configurez le SSH service pour autoriser l'authentification par 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 SSH client 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 de n'importe quel SSH client.
-
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 centre de AWS
connaissances pour obtenir des conseils sur la configuration du DNS serveur 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
-
Configurez le SSH service pour autoriser l'authentification par 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 SSH client 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 de n'importe quel SSH client.
-
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 centre de AWS connaissances pour obtenir des conseils sur la configuration du DNS serveur 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 à jourSUSE.
sudo zypper update -y
-
Installez les packages 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 SSSDdans PAM.
sudo pam-config --add --sss
-
Modifiez nsswitch.conf pour l'activer dans nsswitch.conf SSSD
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 de n'importe quel SSH client pour vérifier que la jointure de domaine s'est correctement terminée 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 SSSD daemon
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 un utilisateur à accéder via SSH une console
sudo realm permit join_account@example.com
Pour autoriser l'accès à un groupe de domaines via SSH une console
sudo realm permit -g 'AWS Delegated Administrators'
Ou pour permettre à tous les utilisateurs d'accéder
sudo realm permit --all
-
Configurez le SSH service pour autoriser l'authentification par 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 SSH client 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 de n'importe quel SSH client.
-
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 centre de AWS
connaissances pour obtenir des conseils sur la configuration du DNS serveur 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 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. Dans le cas contraire, 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
-
Joignez l'instance à l'annuaire avec la commande suivante.
sudo realm join -U join_account example.com
--verbose
...
* Successfully enrolled machine in realm
-
Configurez le SSH service pour autoriser l'authentification par 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 SSH client 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 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
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).
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%