Faire adhérer CentOS 7 à un domaine Active Directory



Introduction



Dans cet article, nous utiliserons CentOS 7. Le domaine Windows Active Directory tourne sur Windows Server 2016 et le niveau fonctionnel est Windows 2012 R2.

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 via yum :

Code BASH :
yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python


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: %U@linuxtricks.loc
  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(adriend@linuxtricks.loc) gid=668800513(utilisateurs du domaine@linuxtricks.loc) groupes=668800513(utilisateurs du domaine@linuxtricks.loc),668800520(propriétaires créateurs de la stratégie de groupe@linuxtricks.loc),668800519(administrateurs de l’entreprise@linuxtricks.loc),668800518(administrateurs du schéma@linuxtricks.loc),668800512(admins du domaine@linuxtricks.loc),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 : adriend@linuxtricks.loc




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.
Cette page a été vue 3131 fois