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.
L'essentiel
- Intégrer Linux à l'AD : un seul compte par personne, vérifié partout ; un compte désactivé l'est aussi sur Linux.
- LDAP (389, 636 en LDAPS) décrit les identités ; l'annuaire est un arbre de DC, OU et CN.
- Un DN se lit de l'objet vers la racine :
CN=Léa Martin,OU=Compta,…,DC=broceliande,DC=lan. - Kerberos (88) authentifie par tickets : TGT puis ticket de service ; le mot de passe ne circule pas.
- Écart d'heure maximal : 5 minutes ; royaume en majuscules :
BROCELIANDE.LAN. - Le domaine se trouve par le DNS (enregistrements SRV) : la Debian doit utiliser le DNS du contrôleur.
realm joincrée le compte ordinateur, le keytab etsssd.conf; SSSD répond ensuite à PAM et NSS, avec un cache.pam-auth-update --enable mkhomedircrée le dossier personnel à la première connexion.realm permit -gchoisit qui se connecte ;%groupedans/etc/sudoers.d/choisit qui administre.- 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 heure | host -t SRV _ldap._tcp.broceliande.lan · timedatectl |
| Découvrir et joindre | realm discover broceliande.lan · sudo realm join -U Administrateur broceliande.lan |
| Dossier personnel | sudo pam-auth-update --enable mkhomedir |
| Appliquer sssd.conf | sudo systemctl restart sssd · sudo sss_cache -E |
| Restreindre l'accès | sudo 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érifier | realm list · id lea.martin · kinit lea.martin · klist |