📂 AD avancé — FSMO, Kerberos et délégation

Bloc B2 Module M2.2 C2.2.7 · Séance 2 BTS SIO SISR 3h30
FormationBTS SIO option SISR — IRIS Mediaschool
BlocB2 — Administration Systèmes & Réseaux
ModuleM2.2 — Annuaire LDAP et Active Directory avancé
CompétencesB2.2 / B2.3 / Lien B3.2
PrérequisConnaissances de base Windows Server et AD DS — accès administrateur sur les DC (win-srv01, win-srv02)
Durée3h30
🔥 Accroche

PDC Emulator en panne → les changements de mots de passe échouent sur tout le domaine → les appels au support explosent. Il a fallu 2 heures pour identifier la cause et corriger la panne. La haute disponibilité et la compréhension des rôles FSMO sont donc critiques pour la continuité de service.

🎯 Objectifs pédagogiques

  • Comprendre les 5 rôles FSMO dans Active Directory et leur impact opérationnel.
  • Savoir transférer ou forcer (seize) un rôle FSMO, diagnostiquer la réplication AD et forcer la réplication.
  • Comprendre les principes Kerberos (AS/TGS, TGT, PAC) et les risques associés (Golden Ticket).
  • Configurer la délégation de contrôle pour un groupe helpdesk (reset mdp, gestion comptes OU Users).
  • Découvrir la mise en place d'un contrôleur de domaine Samba4 et les commandes de base (samba-tool).

📖 1 — FSMO : rôles et responsabilités

Active Directory repose sur un modèle de réplication multi-maître, mais certaines opérations sensibles ne peuvent être gérées que par un seul contrôleur de domaine à la fois. Ces rôles uniques sont appelés FSMO (Flexible Single Master Operations). Il en existe 5 au total, répartis entre niveau forêt et niveau domaine.

Les 5 rôles FSMO

RôleNiveauResponsabilités
PDC Emulator Domaine Synchronisation temporelle (w32time), traitement des verrouillages de comptes, changements de mots de passe, compatibilité avec les environnements NT4 hérités.
RID Master Domaine Alloue des pools de RID (Relative Identifier) aux autres DCs afin qu'ils puissent créer des SIDs uniques pour les objets créés localement.
Infrastructure Master Domaine Met à jour les références d'objets cross‑domain. Doit être distinct du Global Catalog si multi‑domain (sauf si tous les DCs sont GC).
Schema Master Forêt Contrôle les modifications du schéma AD (ajout de nouvelles classes/attributs). Doit être modifié avec prudence.
Domain Naming Master Forêt Responsable de l'ajout et de la suppression de domaines dans la forêt.
💡 Astuce mnémotechnique

Retenez PDC-RID-Infra pour les rôles domaine et Schema-Naming pour les rôles forêt. Le PDC Emulator est le rôle le plus sollicité au quotidien.

📖 2 — Transfert et seize des rôles FSMO

Vérifier l'emplacement actuel des rôles

# Via PowerShell
netdom query fsmo

# Ou via les cmdlets AD
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster

Transfert en ligne (online transfer) — via PowerShell

Le transfert est l'opération normale lorsque le DC source est disponible :

# Transférer PDCEmulator, RIDMaster et InfrastructureMaster vers win-srv01
Move-ADDirectoryServerOperationMasterRole -Identity win-srv01 `
  -OperationMasterRole PDCEmulator, RIDMaster, InfrastructureMaster

# Transférer tous les rôles (forêt + domaine) vers win-srv01
Move-ADDirectoryServerOperationMasterRole -Identity win-srv01 `
  -OperationMasterRole SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster, InfrastructureMaster

Forçage du rôle — Seize (ntdsutil)

Si le DC titulaire est hors ligne de façon irrémédiable, on utilise ntdsutil pour forcer la prise du rôle :

ntdsutil
> roles
> connections
> connect to server win-srv02
> quit
> seize PDC
> seize RID master
> quit
> quit
⚠️ Attention

Le seize ne doit être utilisé qu'en dernier recours, lorsque le DC d'origine est définitivement hors service et ne sera plus jamais remis en ligne. Remettre en ligne un ancien DC titulaire après un seize peut provoquer des conflits graves dans la forêt AD.

Outils alternatifs

  • ntdsutil : outil en ligne de commande Windows pour les opérations avancées sur AD.
  • Active Directory Users and Computers (ADUC) : permet de transférer le rôle PDC Emulator via GUI.
  • Active Directory Domains and Trusts : pour Domain Naming Master.
  • Active Directory Schema (MMC snap-in) : pour Schema Master.

📖 3 — Réplication AD et diagnostic

Concepts de réplication

Active Directory utilise un modèle de réplication multi-maître : chaque DC peut accepter des modifications, qui sont ensuite propagées aux autres DCs. Les composants clés sont :

  • Sites & Services : définit la topologie de réplication (liens de sites, coûts, intervalles).
  • KCC (Knowledge Consistency Checker) : génère automatiquement la topologie de réplication optimale en intra-site et inter-site.
  • Partitions AD : Domain, Schema, Configuration, Applications — chacune est répliquée indépendamment.

Commandes de diagnostic

CommandeDescription
repadmin /showrepl *Affiche l'état de réplication pour tous les DCs.
repadmin /replsummarySynthèse des erreurs de réplication (échecs, latences).
repadmin /syncall /AdePForce la réplication sur toutes les partitions et tous les DCs (nécessite droits admin).
repadmin /showrepl <DC>Diagnostiquer un DC particulier.
dcdiag /test:replicationsDiagnostic complet des réplications via dcdiag.
# Vérifier l'état de réplication global
repadmin /showrepl all

# Synthèse des erreurs
repadmin /replsummary

# Forcer la réplication sur toutes les partitions, tous DCs
repadmin /syncall /AdeP

Erreurs courantes et résolutions

ErreurCause probableRésolution
Kerberos auth failureHorloge désynchronisée (> 5 min d'écart)Resynchroniser via w32tm /resync ou PDC Emulator
DNS lookup failedMauvaise configuration DNSVérifier les enregistrements SRV dans le DNS AD
RPC unavailablePorts filtrés (135, 49152+)Ouvrir les ports RPC dans le pare-feu
USN rollbackRestauration incorrecte d'un snapshotNe jamais restaurer un DC sans snapshot AD-aware

📖 4 — Kerberos : principes et implications de sécurité

Kerberos est le protocole d'authentification par défaut dans Active Directory. Il est basé sur des tickets à durée limitée et un tiers de confiance (le KDC — Key Distribution Center, hébergé sur les DCs AD).

Processus d'authentification Kerberos

ÉtapeDescription
AS-REQ Le client envoie une demande d'authentification au KDC (Authentication Service). Il présente son identité (pré-authentification avec hash du mot de passe).
AS-REP Le KDC renvoie un TGT (Ticket Granting Ticket), chiffré avec la clé du compte krbtgt. Le TGT contient l'identité, les droits et une clé de session.
TGS-REQ Le client présente son TGT au TGS (Ticket Granting Service) pour obtenir un ticket de service associé à un SPN (Service Principal Name) donné (ex : HTTP/serveur.domaine.local).
TGS-REP Le KDC fournit un ticket de service chiffré avec la clé du compte de service. Ce ticket est présenté directement au service cible.
PAC Le Privilege Attribute Certificate (PAC) est inclus dans les tickets. Il contient les SIDs d'appartenance aux groupes et les droits de l'utilisateur — il est signé par le KDC.

Golden Ticket — attaque avancée

Un Golden Ticket est un TGT forgé par un attaquant qui a obtenu le hash du compte krbtgt (par exemple via un dump NTDS.dit). Il permet :

  • De forger un TGT valide pour n'importe quel utilisateur (y compris un administrateur de domaine inexistant).
  • D'accéder à toutes les ressources du domaine sans authentification réelle.
  • Une persistance quasi indétectable pouvant durer des mois (tant que le hash krbtgt n'est pas renouvelé).
⚠️ Mesures de mitigation
  • Double rotation du hash krbtgt : effectuer deux changements successifs (la durée de vie par défaut d'un TGT est de 10h, il faut donc attendre entre les deux rotations).
  • Surveillance des anomalies Kerberos : événements 4769 (ticket Kerberos demandé) avec des attributs inhabituels (durée de vie anormale, compte inconnu).
  • Protéger le NTDS.dit : limiter les accès au contrôleur de domaine, activer Credential Guard, audit des accès physiques et VSS.
  • Tiered Administration Model : séparer les comptes admin T0 (DC), T1 (serveurs), T2 (postes de travail).

📖 5 — Délégation du contrôle

La délégation de contrôle permet d'accorder des droits d'administration granulaires à des groupes ou utilisateurs sur une OU spécifique, sans leur donner des droits d'administration globale sur le domaine. C'est la mise en œuvre du principe du moindre privilège.

Cas d'usage : Helpdesk — réinitialisation de mots de passe

Via le Delegation of Control Wizard (GUI)

  1. Ouvrir Active Directory Users and Computers.
  2. Faire un clic droit sur l'OU ciblée (ex : OU=Users,DC=innovattech,DC=local) → Delegate Control…
  3. Cliquer sur Next, puis ajouter le groupe Helpdesk.
  4. Sélectionner les tâches prédéfinies :
    • Reset user passwords and force password change at next logon
    • Read and write all user information (ou uniquement les attributs nécessaires)
  5. Valider. Tester avec un compte membre du groupe Helpdesk.

Via PowerShell

# Créer le groupe Helpdesk si inexistant
New-ADGroup -Name Helpdesk -GroupScope Global -GroupCategory Security
Add-ADGroupMember -Identity Helpdesk -Members 'nomDuTechnicien'

# Obtenir le Distinguished Name de l'OU cible
$ou = "OU=Users,DC=innovattech,DC=local"

# Récupérer le SID du groupe Helpdesk
$groupSID = New-Object System.Security.Principal.SecurityIdentifier (Get-ADGroup Helpdesk).SID

# Déléguer le droit "Reset Password" via ADSI
$acl = Get-Acl "AD:\$ou"
$resetPwd = [GUID]"00299570-246d-11d0-a768-00aa006e0529"   # GUID de Reset Password
$rule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
    $groupSID,
    [System.DirectoryServices.ActiveDirectoryRights]::ExtendedRight,
    [System.Security.AccessControl.AccessControlType]::Allow,
    $resetPwd,
    [System.DirectoryServices.ActiveDirectorySecurityInheritance]::Descendents,
    [GUID]"bf967aba-0de6-11d0-a285-00aa003049e2"  # GUID de la classe User
)
$acl.AddAccessRule($rule)
Set-Acl -AclObject $acl "AD:\$ou"
💡 Bonne pratique

Restreignez toujours la délégation à l'OU la plus spécifique possible. Ne déléguez pas sur la racine du domaine sauf nécessité absolue. Documentez toutes les délégations dans votre CMDB.

📖 6 — Samba4 : contrôleur de domaine Linux

Samba4 peut jouer le rôle de contrôleur de domaine Active Directory compatible, pour des scénarios Linux-only ou hybrides. Il implémente le protocole MS-ADTS et est compatible avec les clients Windows.

Provision d'un domaine de test

sudo samba-tool domain provision \
  --use-rfc2307 \
  --realm=TEST.LOCAL \
  --domain=TEST \
  --adminpass='ChangeMe123!'

Commandes samba-tool utiles

CommandeDescription
samba-tool user add alice --given-name=Alice --surname=DupontAjouter un utilisateur.
samba-tool user setpassword aliceRéinitialiser le mot de passe d'un utilisateur.
samba-tool group addmembers "Helpdesk" aliceAjouter un membre à un groupe.
samba-tool domain level showAfficher le niveau fonctionnel du domaine.
samba-tool dbcheckVérifier l'intégrité de la base AD.
samba-tool drs showreplAfficher l'état de réplication Samba4.
💡 Intégration Winbind

Pour la résolution des comptes AD depuis d'autres machines Linux, configurez Winbind dans /etc/samba/smb.conf et démarrez le service winbind. Cela permet l'authentification SSH avec des comptes AD.

🔬 TP S2 — Transfert FSMO, réplication et délégation

Objectifs TP : simuler un basculement des rôles FSMO vers un contrôleur secondaire, forcer la réplication et appliquer une délégation d'administration restreinte.

Livrables attendus : log des commandes PowerShell, sorties repadmin, capture GUI délégation.

Partie 1 — Transfert des rôles FSMO

# Étape 1 : vérifier l'emplacement actuel des rôles
netdom query fsmo
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster

# Étape 2 : transférer vers win-srv02
Move-ADDirectoryServerOperationMasterRole -Identity win-srv02 `
  -OperationMasterRole PDCEmulator, RIDMaster, InfrastructureMaster

# Transférer également les rôles forêt :
Move-ADDirectoryServerOperationMasterRole -Identity win-srv02 `
  -OperationMasterRole SchemaMaster, DomainNamingMaster

# Étape 3 : vérifier le résultat
netdom query fsmo
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster

Partie 2 — Réplication forcée et diagnostic

# Forcer la réplication sur toutes les partitions, tous DCs
repadmin /syncall /AdeP

# Vérifier l'état global de réplication
repadmin /showrepl all

# Synthèse des erreurs
repadmin /replsummary

Partie 3 — Délégation pour le groupe Helpdesk

# Créer le groupe Helpdesk et ajouter un technicien
New-ADGroup -Name Helpdesk -GroupScope Global -GroupCategory Security
Add-ADGroupMember -Identity Helpdesk -Members 'sAMAccountNameDuTechnicien'

Ensuite, via Active Directory Users and Computers, clic droit sur OU=Users,DC=innovattech,DC=localDelegate Control… → sélectionner le groupe Helpdesk → tâche : Reset user passwords and force password change at next logon.

Test : se connecter avec un compte membre de Helpdesk et tenter de réinitialiser le mot de passe d'un utilisateur de l'OU Users. Documenter les captures d'écran.

Partie 4 — Samba4 (optionnel)

# Provision d'un domaine Samba4 de test
sudo samba-tool domain provision \
  --use-rfc2307 --realm=TEST.LOCAL --domain=TEST --adminpass='ChangeMe123!'

# Créer un utilisateur de test
samba-tool user add alice --given-name=Alice --surname=Dupont

Critères de réussite TP S2

  • ✅ Les rôles FSMO ont été transférés (ou simulation complète documentée) et vérifiés via netdom query fsmo.
  • ✅ La réplication forcée via repadmin /syncall /AdeP s'est exécutée et les erreurs ont été analysées.
  • ✅ Le groupe Helpdesk dispose uniquement des droits escomptés sur l'OU Users et peut réinitialiser des mots de passe sans droits d'administration globale.

📎 Annexes — Commandes de référence

CommandeUsage
Move-ADDirectoryServerOperationMasterRole -Identity <DC> -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMasterTransfert FSMO via PowerShell
netdom query fsmoAfficher les détenteurs des rôles FSMO
repadmin /showrepl allÉtat de réplication de tous les DCs
repadmin /replsummarySynthèse des erreurs de réplication
repadmin /syncall /AdePForcer la réplication toutes partitions
w32tm /resyncResynchronisation de l'horloge (Kerberos)
samba-tool domain provision --realm=TEST.LOCAL --domain=TEST --adminpass='...'Provision domaine Samba4
samba-tool user add <user>Créer un utilisateur Samba4

📝 QCM — Testez vos connaissances

5 questions pour valider vos acquis sur les FSMO, la réplication, Kerberos et la délégation.

  1. Combien de rôles FSMO existent dans Active Directory, et comment sont-ils répartis entre niveau forêt et niveau domaine ?
  2. Quel rôle FSMO est responsable de la synchronisation temporelle du domaine et de la gestion des verrouillages de comptes ?
  3. Quelle commande PowerShell permet de vérifier quels contrôleurs de domaine détiennent les rôles FSMO ?
  4. Qu'est-ce qu'un Golden Ticket dans le contexte Kerberos et quel compte doit être compromis pour en créer un ?
  5. Dans quel but utilise-t-on le Delegation of Control Wizard dans Active Directory, et quelle bonne pratique doit-on respecter lors de son application ?
📝 Afficher les corrections
  1. 5 rôles FSMO au total — 2 au niveau forêt (Schema Master et Domain Naming Master) et 3 au niveau domaine (PDC Emulator, RID Master, Infrastructure Master). Par défaut, ils résident tous sur le premier DC installé.
  2. PDC Emulator — Il synchronise l'horloge w32time pour tous les membres du domaine (critique pour Kerberos, qui tolère max 5 min de décalage), traite les verrouillages de comptes en temps réel et gère les changements de mots de passe.
  3. netdom query fsmo — ou en PowerShell : Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster et Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster.
  4. Un Golden Ticket est un TGT forgé par un attaquant qui a obtenu le hash du compte krbtgt. Il permet d'accéder à toutes les ressources du domaine avec n'importe quelle identité, sans authentification réelle. La mitigation requiert une double rotation du hash krbtgt.
  5. Déléguer des droits granulaires sans accorder d'admin global — par exemple, permettre à un groupe Helpdesk de réinitialiser des mots de passe uniquement dans une OU cible. La bonne pratique est de restreindre la délégation à l'OU la plus spécifique (principe du moindre privilège) et de documenter toutes les délégations.
💡 À retenir

Les 5 rôles FSMO sont le cœur de la stabilité d'un domaine AD — le PDC Emulator est le plus critique au quotidien. La réplication multi-maître nécessite une surveillance régulière via repadmin. Kerberos est robuste mais le hash krbtgt doit être protégé absolument. La délégation de contrôle est l'outil clé pour appliquer le moindre privilège sans multiplier les admins de domaine.

← C2.2.7 Séance 1 — OpenLDAP et SSSD C2.3.1 Séance 1 — PSI et classification actifs →