📂 AD avancé — FSMO, Kerberos et délégation
| Formation | BTS SIO option SISR — IRIS Mediaschool |
|---|---|
| Bloc | B2 — Administration Systèmes & Réseaux |
| Module | M2.2 — Annuaire LDAP et Active Directory avancé |
| Compétences | B2.2 / B2.3 / Lien B3.2 |
| Prérequis | Connaissances de base Windows Server et AD DS — accès administrateur sur les DC (win-srv01, win-srv02) |
| Durée | 3h30 |
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ôle | Niveau | Responsabilité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. |
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
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
| Commande | Description |
|---|---|
repadmin /showrepl * | Affiche l'état de réplication pour tous les DCs. |
repadmin /replsummary | Synthèse des erreurs de réplication (échecs, latences). |
repadmin /syncall /AdeP | Force la réplication sur toutes les partitions et tous les DCs (nécessite droits admin). |
repadmin /showrepl <DC> | Diagnostiquer un DC particulier. |
dcdiag /test:replications | Diagnostic 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
| Erreur | Cause probable | Résolution |
|---|---|---|
| Kerberos auth failure | Horloge désynchronisée (> 5 min d'écart) | Resynchroniser via w32tm /resync ou PDC Emulator |
| DNS lookup failed | Mauvaise configuration DNS | Vérifier les enregistrements SRV dans le DNS AD |
| RPC unavailable | Ports filtrés (135, 49152+) | Ouvrir les ports RPC dans le pare-feu |
| USN rollback | Restauration incorrecte d'un snapshot | Ne 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
| Étape | Description |
|---|---|
| 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é).
- 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)
- Ouvrir Active Directory Users and Computers.
- Faire un clic droit sur l'OU ciblée (ex :
OU=Users,DC=innovattech,DC=local) → Delegate Control… - Cliquer sur Next, puis ajouter le groupe Helpdesk.
- 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)
- 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"
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
| Commande | Description |
|---|---|
samba-tool user add alice --given-name=Alice --surname=Dupont | Ajouter un utilisateur. |
samba-tool user setpassword alice | Réinitialiser le mot de passe d'un utilisateur. |
samba-tool group addmembers "Helpdesk" alice | Ajouter un membre à un groupe. |
samba-tool domain level show | Afficher le niveau fonctionnel du domaine. |
samba-tool dbcheck | Vérifier l'intégrité de la base AD. |
samba-tool drs showrepl | Afficher l'état de réplication Samba4. |
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=local → Delegate 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 /AdePs'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
| Commande | Usage |
|---|---|
Move-ADDirectoryServerOperationMasterRole -Identity <DC> -OperationMasterRole PDCEmulator,RIDMaster,InfrastructureMaster | Transfert FSMO via PowerShell |
netdom query fsmo | Afficher les détenteurs des rôles FSMO |
repadmin /showrepl all | État de réplication de tous les DCs |
repadmin /replsummary | Synthèse des erreurs de réplication |
repadmin /syncall /AdeP | Forcer la réplication toutes partitions |
w32tm /resync | Resynchronisation 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.
- Combien de rôles FSMO existent dans Active Directory, et comment sont-ils répartis entre niveau forêt et niveau domaine ?
- Quel rôle FSMO est responsable de la synchronisation temporelle du domaine et de la gestion des verrouillages de comptes ?
- Quelle commande PowerShell permet de vérifier quels contrôleurs de domaine détiennent les rôles FSMO ?
- Qu'est-ce qu'un Golden Ticket dans le contexte Kerberos et quel compte doit être compromis pour en créer un ?
- 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
- 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é.
- 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.
netdom query fsmo— ou en PowerShell :Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMasteretGet-ADForest | Select-Object SchemaMaster, DomainNamingMaster.- 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. - 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.
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.
