Red Hat, Alma Linux, CentOS : Faire adhérer son serveur à un domaine Active Directory
Table des matières
Dans cet article, nous utiliserons CentOS. Le domaine Windows Active Directory tourne sur Windows Server 2019 et le niveau fonctionnel est Windows 2016.
Le but final est de pouvoir se connecter sur notre CentOS grâce aux comptes présents dans l'annuaire de Microsoft.
Le domaine utilisé est linuxtricks.loc et il est déjà configuré. Je n'aborde pas l'installation et la configuration du domaine.
Dans un premier temps, installer les paquets suivants
CentOS 7 via yum :
CentOS 8 via dnf :
Les paquets installés permettent de contacter l'annuaire LDAP, prendre en charge Kerberos, et des outils pour effectuer des actions sur l'AD.
Il faut aussi s'assurer que le DNS sur CentOS est configuré, et pointe bien sur le contrôleur de domaine.
Si le DNS et le suffixe ne sont pas donnés par le DHCP ou qu'on est dans une configuration IP Statique :
En ligne de commande :
Ou dans le ifcfg-XXX adéquat :
Ou avec les outils graphiques dans GNOME.
Pur tester la résolution du nom de domaine, on peut tester de le pinguer :
On va ajouter notre CentOS au domaine via la commande realm :
Le mot de passe de l'administrateur du domaine est demandé.
Le compte AD utilisé doit posséder les droits de faire adhérer des machines au domaine.
Les fichiers /etc/sssd/sssd.conf , /etc/krb.conf et /etc/krb5.keytab seront configurés au petits oignons grâce à la commande ci-dessus.
Pour vérifier que tout est bon, on peut taper la commande
On voit ici qu'on est bien dans le domaine.
On peut constater que notre CentOS est bien dans l'AD :
Pour vérifier les comptes qui peuvent se connecter à cette CentOS on peut utiliser la commande id :
On peut observer les groupes de l'utilisateur concerné.
Remarquez que pour se connecter au domaine, il faut en effet saisir le nom de l'utilisateur suivi de l'arobase et du domaine.
Pour se connecter :
Utiliser le mot de passe du compte Active Directory.
En graphique, sur l'écran de connexion GDM, on saisi dans le champ utilisateur : [email protected]
On peut changer ce comportement en modifiant le fichier /etc/sssd/sssd.conf.
Par défaut :
On modifie en :
Si on souhaite prendre en compte le nouveau fichier de configuration de sssd il faut redémarrer le service :
Maintenant on vérifie que ça fonctionne avec un compte simple :
Il suffit de créer un groupe sur le domaine AD qui s'appelle par exemple sudoers.
Ajouter vos utilisateurs dedans.
Ensuite sur la CentOS configurez sudo avec
Ensuite, saisissez une ligne de ce type :
Enregistrez et le tour est joué. Le mot de passe demandé lors de l'exécution de sudo sera bien entendu celui de votre compte AD.
Il est possible d'utiliser un groupe par défaut déjà présent dans Active Directory.
Si vous avez un nom de groupe avec des espaces, on échappe les espaces avec l'antislash :
Si vous souhaitez retirer la CentOS du domaine, utiliser la commande :
La machine sera retirée de l'AD et les fichiers de config sur la CentOS seront remis à leur valeur par défaut.
Introduction
Dans cet article, nous utiliserons CentOS. Le domaine Windows Active Directory tourne sur Windows Server 2019 et le niveau fonctionnel est Windows 2016.
Le but final est de pouvoir se connecter sur notre CentOS grâce aux comptes présents dans l'annuaire de Microsoft.
Le domaine utilisé est linuxtricks.loc et il est déjà configuré. Je n'aborde pas l'installation et la configuration du domaine.
Préparer CentOS
Dans un premier temps, installer les paquets suivants
CentOS 7 via yum :
Code BASH :
yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
CentOS 8 via dnf :
Code BASH :
dnf install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients
Les paquets installés permettent de contacter l'annuaire LDAP, prendre en charge Kerberos, et des outils pour effectuer des actions sur l'AD.
Il faut aussi s'assurer que le DNS sur CentOS est configuré, et pointe bien sur le contrôleur de domaine.
Si le DNS et le suffixe ne sont pas donnés par le DHCP ou qu'on est dans une configuration IP Statique :
En ligne de commande :
Code BASH :
vi /etc/resolv.conf
Code BASH :
search linuxtricks.loc nameserver 192.168.21.222
Ou dans le ifcfg-XXX adéquat :
Code BASH :
DNS1=192.168.21.222 DOMAIN=linuxtricks.loc
Ou avec les outils graphiques dans GNOME.
Pur tester la résolution du nom de domaine, on peut tester de le pinguer :
Code BASH :
ping linuxtricks.loc PING linuxtricks.loc (192.168.21.222) 56(84) bytes of data. 64 bytes from 192.168.21.222 (192.168.21.222): icmp_seq=1 ttl=128 time=0.413 ms 64 bytes from 192.168.21.222 (192.168.21.222): icmp_seq=2 ttl=128 time=210 ms 64 bytes from 192.168.21.222 (192.168.21.222): icmp_seq=3 ttl=128 time=0.220 ms
Joindre CentOS au domaine Windows
On va ajouter notre CentOS au domaine via la commande realm :
Code BASH :
realm join --user=adriend linuxtricks.loc Password for adriend:
Le mot de passe de l'administrateur du domaine est demandé.
Le compte AD utilisé doit posséder les droits de faire adhérer des machines au domaine.
Les fichiers /etc/sssd/sssd.conf , /etc/krb.conf et /etc/krb5.keytab seront configurés au petits oignons grâce à la commande ci-dessus.
Pour vérifier que tout est bon, on peut taper la commande
Code BASH :
realm list
On voit ici qu'on est bien dans le domaine.
Code :
linuxtricks.loc
type: kerberos
realm-name: LINUXTRICKS.LOC
domain-name: linuxtricks.loc
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
login-formats: %[email protected]
login-policy: allow-realm-logins
On peut constater que notre CentOS est bien dans l'AD :
Les comptes et se connecter
Connexion avec les utilisateurs
Pour vérifier les comptes qui peuvent se connecter à cette CentOS on peut utiliser la commande id :
Code BASH :
id adriend@linuxtricks.loc
On peut observer les groupes de l'utilisateur concerné.
Code :
uid=668801104([email protected]) gid=668800513(utilisateurs du [email protected]) groupes=668800513(utilisateurs du [email protected]),668800520(propriétaires créateurs de la stratégie de [email protected]),668800519(administrateurs de l’[email protected]),668800518(administrateurs du sché[email protected]),668800512(admins du [email protected]),668800572(groupe de réplication dont le mot de passe rodc est refusé@linuxtricks.loc)
Remarquez que pour se connecter au domaine, il faut en effet saisir le nom de l'utilisateur suivi de l'arobase et du domaine.
Pour se connecter :
Code BASH :
su - adriend@linuxtricks.loc
Utiliser le mot de passe du compte Active Directory.
En graphique, sur l'écran de connexion GDM, on saisi dans le champ utilisateur : [email protected]
Paramétrer sssd pour ne pas utiliser le nom pleinement qualifié
On peut changer ce comportement en modifiant le fichier /etc/sssd/sssd.conf.
Par défaut :
Code BASH :
use_fully_qualified_names = True fallback_homedir = /home/%u@%d
On modifie en :
Code BASH :
use_fully_qualified_names = False fallback_homedir = /home/%u
Si on souhaite prendre en compte le nouveau fichier de configuration de sssd il faut redémarrer le service :
Code BASH :
systemctl restart sssd
Maintenant on vérifie que ça fonctionne avec un compte simple :
Code BASH :
id adriend
Code :
uid=668801104(adriend) gid=668800513(utilisateurs du domaine) groupes=668800513(utilisateurs du domaine),668800520(propriétaires créateurs de la stratégie de groupe),668800519(administrateurs de l’entreprise),668800518(administrateurs du schéma),668800512(admins du domaine),668800572(groupe de réplication dont le mot de passe rodc est refusé)
Configurer des groupes comme sudoers
Il suffit de créer un groupe sur le domaine AD qui s'appelle par exemple sudoers.
Ajouter vos utilisateurs dedans.
Ensuite sur la CentOS configurez sudo avec
Code BASH :
visudo
Ensuite, saisissez une ligne de ce type :
Code BASH :
%sudoers@linuxtricks.loc ALL=(ALL) ALL
Enregistrez et le tour est joué. Le mot de passe demandé lors de l'exécution de sudo sera bien entendu celui de votre compte AD.
Il est possible d'utiliser un groupe par défaut déjà présent dans Active Directory.
Si vous avez un nom de groupe avec des espaces, on échappe les espaces avec l'antislash :
Code BASH :
%admins\ du\ domaine@linuxtricks.loc ALL=(ALL) ALL
Quitter le domaine
Si vous souhaitez retirer la CentOS du domaine, utiliser la commande :
Code BASH :
realm leave --user=adriend linuxtricks.loc
La machine sera retirée de l'AD et les fichiers de config sur la CentOS seront remis à leur valeur par défaut.