Joindre une machine Debian 13 à un domaine Active Directory avec realmd et SSSD pour l'authentification centralisée.
Debian 13 avec accès root. Un domaine Active Directory fonctionnel (lycee.local). DNS pointant vers le contrôleur de domaine. Synchronisation NTP correcte.
# Configurer le DNS vers le DC (IMPORTANT) sudo nano /etc/resolv.conf # nameserver 192.168.1.10 (IP du contrôleur de domaine) # search lycee.local # Définir un hostname FQDN sudo hostnamectl set-hostname poste-linux.lycee.local # Vérifier la résolution DNS du domaine nslookup lycee.local nslookup _ldap._tcp.lycee.local # Synchroniser l'heure (CRITIQUE pour Kerberos — max 5 minutes de décalage) sudo apt install chrony -y sudo systemctl enable --now chrony sudo chronyc tracking
sudo apt update sudo apt install realmd sssd sssd-tools sssd-ad \ adcli packagekit samba-common-bin oddjob oddjob-mkhomedir \ krb5-user libpam-sss libnss-sss -y # Lors de l'installation de krb5-user : # Realm par défaut : LYCEE.LOCAL (en MAJUSCULES) # Serveur KDC : 192.168.1.10 # Serveur admin : 192.168.1.10
# Découvrir le domaine sudo realm discover lycee.local # Rejoindre le domaine (avec le compte Administrateur du domaine) sudo realm join -U Administrateur lycee.local # Saisir le mot de passe Administrateur quand demandé # Vérifier que la jonction a réussi sudo realm list # Résultat attendu : # lycee.local # type: kerberos # realm-name: LYCEE.LOCAL # domain-name: lycee.local # configured: kerberos-member # server-software: active-directory # client-software: sssd # login-policy: allow-realm-logins
sudo nano /etc/sssd/sssd.conf
[sssd] domains = lycee.local config_file_version = 2 services = nss, pam [domain/lycee.local] default_shell = /bin/bash krb5_store_password_if_offline = True cache_credentials = True krb5_realm = LYCEE.LOCAL realmd_tags = manages-system joined-with-adcli id_provider = ad fallback_homedir = /home/%u@%d ad_domain = lycee.local use_fully_qualified_names = False # Connexion avec juste "adupont" au lieu de "adupont@lycee.local" ldap_id_mapping = True access_provider = ad
# Permissions strictes sur sssd.conf (obligatoire) sudo chmod 600 /etc/sssd/sssd.conf sudo systemctl restart sssd # Activer la création automatique du home au login sudo pam-auth-update --enable mkhomedir
# Autoriser uniquement les membres d'un groupe AD sudo realm permit -g "GRP-Etudiants@lycee.local" sudo realm permit -g "Domain Admins@lycee.local" # Autoriser tout le domaine (moins sécurisé) sudo realm permit --all # Vérifier les autorisations sudo realm list
# Créer un fichier sudoers pour le groupe AD
sudo visudo -f /etc/sudoers.d/domain-admins
# Donner sudo complet aux Domain Admins AD %Domain\ Admins@lycee.local ALL=(ALL:ALL) ALL # Donner sudo limité aux techniciens %GRP-Techniciens@lycee.local ALL=(ALL) /usr/bin/systemctl, /usr/bin/apt
# Vérifier qu'un compte AD est reconnu id adupont # Résultat : uid=... gid=... groupes=... # Tester l'authentification Kerberos kinit adupont@LYCEE.LOCAL klist # Se connecter avec un compte AD (depuis SSH) ssh adupont@poste-linux.lycee.local # Vérifier la création du home ls -la /home/adupont/
✅ Réponse : Kerberos refuse l'authentification si le décalage horaire dépasse 5 minutes
✅ Réponse : realmd
✅ Réponse : Permet de se connecter avec juste adupont au lieu de adupont@lycee.local
✅ Réponse : 600
✅ Réponse : id adupont