Mémo de la fiche B2-19 : une page A4, à imprimer ou à enregistrer en PDF.
B2-19

Debian dans un domaine AD, LDAP

Comprendre l'annuaire LDAP et l'authentification Kerberos, puis faire entrer un serveur Debian 13 dans le domaine Active Directory pour que les utilisateurs s'y connectent avec leur compte habituel.

Version en ligne
SIO2 · semestre 33 h (cours + TP)Bloc 2 – SISRMémo · Portail SIO
Debiandans l'AD LDAParbre DC · OU · CN, DNport 389 · identités KerberosKDC · TGT · ticket serviceport 88 · horloge ±5 min DNSDNS du contrôleurSRV _ldap · _kerberos Jonctionrealm discover · joinkeytab · compte ordinateur SSSDPAM + NSS · cachesssd.conf 600 · mkhomedir Droitsrealm permit -g%groupe dans sudoers

L'essentiel

  1. Intégrer Linux à l'AD : un seul compte par personne, vérifié partout ; un compte désactivé l'est aussi sur Linux.
  2. LDAP (389, 636 en LDAPS) décrit les identités ; l'annuaire est un arbre de DC, OU et CN.
  3. Un DN se lit de l'objet vers la racine : CN=Léa Martin,OU=Compta,…,DC=broceliande,DC=lan.
  4. Kerberos (88) authentifie par tickets : TGT puis ticket de service ; le mot de passe ne circule pas.
  5. Écart d'heure maximal : 5 minutes ; royaume en majuscules : BROCELIANDE.LAN.
  6. Le domaine se trouve par le DNS (enregistrements SRV) : la Debian doit utiliser le DNS du contrôleur.
  7. realm join crée le compte ordinateur, le keytab et sssd.conf ; SSSD répond ensuite à PAM et NSS, avec un cache.
  8. pam-auth-update --enable mkhomedir crée le dossier personnel à la première connexion.
  9. realm permit -g choisit qui se connecte ; %groupe dans /etc/sudoers.d/ choisit qui administre.
  10. Dépanner dans l'ordre : realm list, id, kinit, puis autorisations et journaux SSSD.

Piège classique : l'horloge

Kerberos refuse tout ticket si l'écart d'heure entre le client et le contrôleur de domaine dépasse 5 minutes (message Clock skew too great). Une VM Debian restaurée d'un instantané ou sans synchronisation NTP échoue donc à se connecter, alors que tout le reste est juste. Debian 13 synchronise son heure avec systemd-timesyncd (ou chrony) : on lui donne le contrôleur de domaine comme serveur de temps.

À retenir

Avant de joindre une machine au domaine, trois contrôles : le DNS est celui du contrôleur de domaine (et les enregistrements SRV répondent), l'heure est synchronisée avec lui, le nom de la machine est unique et complet. La grande majorité des échecs de jonction viennent de l'un de ces trois points.

Piège classique

Après toute modification de sssd.conf, il faut redémarrer SSSD et vider son cache : sudo systemctl restart sssd puis sudo sss_cache -E. Sinon, l'ancien comportement continue. Si les droits du fichier ne sont pas 600, SSSD refuse même de démarrer.

À retenir

Dans sudoers, un groupe s'écrit précédé de % et exactement comme le renvoie id : en minuscules avec SSSD, sans @broceliande.lan si use_fully_qualified_names = False. On évite les espaces dans les noms de groupes AD destinés à Linux.

Commandes clés

Pour…Commandes (Debian 13)
Vérifier DNS et heurehost -t SRV _ldap._tcp.broceliande.lan · timedatectl
Découvrir et joindrerealm discover broceliande.lan · sudo realm join -U Administrateur broceliande.lan
Dossier personnelsudo pam-auth-update --enable mkhomedir
Appliquer sssd.confsudo systemctl restart sssd · sudo sss_cache -E
Restreindre l'accèssudo realm deny --all · sudo realm permit -g GG_Admins_Linux
Donner sudo%gg_admins_linux ALL=(ALL:ALL) ALL dans /etc/sudoers.d/ · visudo -c
Vérifierrealm list · id lea.martin · kinit lea.martin · klist