Red Hat et dérivées version SERVEUR

Red Hat, Alma Linux, CentOS : Faire adhérer son serveur à un domaine Active Directory

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

centos_ad


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


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 :

centos_ad_windows_ueto_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]

centos_ad_windows_gdm



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.