Sommaire
Joindre une machine Debian 13 à un domaine Active Directory avec realmd et SSSD pour l'authentification centralisée.
🎯 Objectifs de la fiche
- Prérequis et principe — Kerberos, LDAP, SSSD, realmd
- Préparer la machine Debian — DNS, NTP, hostname FQDN
- Joindre le domaine avec realmd — realm join, vérification
- Configurer SSSD — sssd.conf, répertoire home, sudo
- Connexion avec un compte AD — Tester, créer le home, droits sudo
Prérequis
Debian 13 avec accès root. Un domaine Active Directory fonctionnel (lycee.local). DNS pointant vers le contrôleur de domaine. Synchronisation NTP correcte.
ℹ️ SSSD (System Security Services Daemon) est le composant qui gère l'authentification contre AD. realmd est l'outil qui simplifie la jonction de domaine. Ensemble, ils permettent à un poste Linux de s'authentifier avec des comptes Active Directory.
1. Préparer la machine Debian
# 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
2. Installer les paquets nécessaires
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
3. Découvrir et rejoindre le domaine
# 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
4. Configurer SSSD
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
5. Autoriser des groupes AD à se connecter
# 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
6. Donner les droits sudo à un groupe AD
# 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
7. Tester la connexion
# 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/
- ☐ DNS pointant vers le DC configuré
- ☐ NTP synchronisé (chronyc tracking)
- ☐ realm join réussi (realm list)
- ☐ sssd.conf configuré et permissions 600
- ☐ mkhomedir activé (home créé automatiquement)
- ☐ id adupont retourne un résultat
- ☐ Connexion SSH avec compte AD fonctionnelle
Pourquoi la synchronisation NTP est-elle critique pour rejoindre un domaine AD ?
✅ Réponse : Kerberos refuse l'authentification si le décalage horaire dépasse 5 minutes
Quel outil simplifie la jonction d'une machine Linux à un domaine Active Directory ?
✅ Réponse : realmd
Que fait le paramètre use_fully_qualified_names = False dans sssd.conf ?
✅ Réponse : Permet de se connecter avec juste adupont au lieu de adupont@lycee.local
Quelle permission doit avoir le fichier sssd.conf ?
✅ Réponse : 600
Quelle commande vérifie qu'un compte AD est bien reconnu sur le système Linux ?
✅ Réponse : id adupont
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter