Windows - Active directory Domain Services Services de domaine Active Directory. Active Directory - Ajout d'un DC Difficulté : Novice Notions : Authentification, LDAP, anuaire, active directory I. Introduction Cette procédure à pour but de traiter l'ajout d'un contrôleur de domaine dans un domaine existant et de vérifier le bon fonctionnement de la topologie. En outre, quelques bonnes pratiques seront mentionnées dans cette procédure pour optimiser et sécuriser la mise en œuvre. II. Installation Prérequis : voir ci-dessous (calculés pour une installation en 2022 Server). Dépendant de l'installation core ou GUI. Vcpu dépendant du nombre d'utilisateurs, habituellement 2Vcpu en core et 4 en GUI. 2Gb RAM core ou 4Gb RAM GUI 10Gb d'espace disque (si possible sur un disque ou une partition dédiée) Autres prérequis : Une adresse IP Fixe, Un nom de machine fixe.* * si ces deux prérequis ne sont pas satisfaits, cela pourra engendrer des problèmes par la suite. Informations : Concernant l'ip et le nom, si ceux-ci venaient à changer en cours de route, cela pourrai occasionner des problèmes de résolutions DNS, entraînant des problèmes de liaison pouvant casser des liens de réplications ou empêcher des postes ou des utilisateurs de se connecter ou d'être correctement reconnus. Informations : Concernant le service NTP, par défaut Kerberos, le gestionnaire d'authentification, tolère un écart de temps entre le serveur et les client ou les pairs de 5 minutes. Passé ce délai, le service peut ne plus fonctionner correctement. Il est donc important d'avoir une source de temps fiable et que l'heure soit correctement synchronisée partout sur le parc. 2.1 Préparation Bonne pratique : Préparer une partition ou disque à part et lui attribuer la lettre E: puis la nommer 'AD' Prérequis : Afin de pouvoir joindre le domaine, les éléments ci-dessous doivent être confirmés pour éviter tout problèmes. Bonne TimeZone ( fuseau horaire ). Même heure que sur le DC. Dans la configuration réseau, le premier DNS doit être le DC principal. Il faudra ensuite joindre le contrôleur de domaine au domaine existant, comme tout nouveau serveur dans le domaine. 2.1.1 En mode graphique Dans le serveur manager, cliquer sur le Workgroup du serveur :   Cliquer sur 'Change...'   Cocher la case 'Domain' et entrer le nom du domaine, puis cliq5uer sur 'OK'.    Entrer les credentials du domaine :   Le message suivant s'affiche :   Il faudra redémarrer le serveur. 2.1.2 En mode console Dans le Sconfig, faire '1'.   Choisir de joindre le domaine avec 'D'.   Puis entrer le nom du domaine. Le compte administrateur et son mot de passe.   Le domaine est joint. Si le serveur a déjà le bon nom, faire 'N' pour ignorer le renommage.   Redémarrer le serveur pour finaliser l’opération avec '13'. = Astuce : A partir du moment ou le serveur est dans le domaine, l'administration de celui-ci et donc les actions suivantes pourront être effectuées en GUI depuis le poste admin. voir : WinServer2k25GUI - Ajouter un serveur au server manager 2.2 Installer le rôle 2.2.1 En mode graphique Voir : WinServer2k22GUI - Installation Rôle et Fonctionnalité  Les rôles nécessaires sont : 'Active Directory Domain Services'. 2.2.2 En mode Console Pour installer le rôle active directory en mode console, ouvrir une console powershell et entre la commande suivante : Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools Attendre la fin de l'installation. III. Joindre le domaine 3.1 DC promo Dans cet exemple, les informations utilisées pour joindre le domaine seront les suivantes : Nom de la forêt : labs404.fr Nom du domaine : labs404.fr Nom netbios : labs404.fr Informations : il sera assumé dans la suite de cette procédure qu'un disque E: a été créé pour stocker les data AD. 3.1.1 En mode GUI Dans le server manager, Cliquer sur le drapeau en haut pour faire apparaître la notification. Cliquer sur 'Promote this server to a domain controller'.   L'assistant se lance. Contrairement à un premier contrôleur de domaine, il faudra choisir 'Add a domain controller to an existing domain'. Le domaine est directement reconnu. Cliquer sur 'Change...' pour ajouter le compte administrateur de domaine qui permettra d'ajouter l'AD au schema. Enfin, valider en cliquant sur 'Next'.   Laisser les cases 'Domain Name System (DNS) server' et 'Global catalog' cochées. Laisser la case 'Read only domain controller (RODC)' décochée. Info : Un RODC est un contrôleur de domaine en lecture seule, cela est particulièrement utile dans le cadre de la sécurisation du contrôle d'accès depuis une DMZ par exemple. Par contre, cela veut également dire que ce contrôleur de domaine ne pourra appliquer aucune modification.    Le site est reconnu dès lors que son subnet à été déclaré dans les sites et services. Comme lors de l'initialisation, entrer et confirmer un mot de passe de restauration Active Directory.   Information : le mot de passe de restauration sera demandé en cas de restauration de l'active directory suite à une action de restauration ou de déploiement d'un nouveau DC à partir du fichier d'export.   Puis faire 'Next'.   Si pas de délégation pour ce domaine sur les DNS, ignorer cette étape.   Lors de cette étape, il faudra choisir le DC principal comme source de réplication. Puis faire 'Next'.   Choisir les chemins d'installations Puis faire 'Next'.   Revoir les paramètres et faire 'Next'.   Valider les prérequis et faire 'Install'.    L'installation va se lancer sur le serveur (Distant si elle a été lancée depuis un serveur d'administration) et le serveur redémarrera à la fin de l'installation. 3.1.2 En mode console Si ce n'est pas déjà fait, lancer powershell.   Importer le module Active Directory : Import-Module -Name ActiveDirectory   Lancer la commande de promotion :   Install-ADDSDomainController -NoGlobalCatalog:$false -Create-DNSDelegation:$false -Credential (Get-Credential) -CriticalReplicationOnly:$false -DatabasePath "E:\Windows\NTDS" -DomainName "LABS404.FR" -InstallDNS:$true -LogPath "E:\Windows\NTDS" -SysvolPath "E:\Windows\SYSVOL" -SiteName "" -ReplicationSourceDC "" -NoRebootOnCompletion:$false -Force:$true   Voici à quoi correspondent les options : Paramètre Fonction -CreateDnsDelegation Sert à créer une délégation DNS pour le domaine. Ici à $False car cela n'est pas souhaité. -DatabasePath Chemin vers la base de donnée de l’annuaire. -DomainMode Niveau fonctionnel du domaine. Ici "WinThreshold" car c'est le dernier disponible* -DomainName Le nom du domaine. -DomainNetbiosName Le nom netbios du domaine. -ForestMode Niveau fonctionnel de la forêt. Ici "WinThreshold" car c'est le dernier disponible* -InstallDns Précise si il faut installer le rôle DNS. Ici à $true car aucun DNS présent sur le domaine -LogPath Chemin vers les logs active directory. -NorebootOnCompletion Spécifie si le serveur doit redémarrer à la fin de l’opération. Ici, le redémarrage est souhaité. -SysvolPath Chemin du répertoire sysvol qui stockera les fichiers (GPO, scripts, installers, etc...).   Le serveur va alors demander les credentials du compte administrateur pour joindre le domaine :   Renseigner le mot de passe de restauration et répéter. Information : le mot de passe de restauration sera demandé en cas de restauration de l'active directory suite à une action de restauration ou de déploiement d'un nouveau DC à partir du fichier d'export.   Attendre la fin du déploiement. Les alertes peuvent être ignorées.   Le serveur va alors redémarrer. Astuce : Si le rôle a été installé sur un serveur Core, l'administration pourra se faire de manière graphique depuis un poste d'administrateur équipé du server manager. 3.2 Vérifier le fonctionnement Info : Il y a plusieurs points à vérifier pour s'assurer que les contrôleurs de domaines sont en bonne santé et répliquent bien leur configuration. Le premier point à vérifier est que dans 'Users and Computers', les deux serveurs sont bien basculés dans l'OU 'Domain Controllers'. Il est également possible de vérifier que le système vois bien tous les DC avec la commande powershell : Get-ADDomainController -Filter * | Format-Table Puis vérifier dans les 'Sites And Services' que les deux contrôleurs remontent bien. Vérifier également que le  lien de réplication par défaut est créé pour chaque DC. Astuce : Cette liaison peut mettre un peu de temps à apparaître. Il suffit d'attendre 10 minutes. Il sera également possible de créer des éléments dans les 'users and computer' et le 'DNS' pour vérifier sur le second que ceux-ci sont bien répliqués. IV. Diagnostic Attention : Cette section vise à traiter les problèmes éventuels. Cependant il est bien de vérifier le résultat de ces commandes. La première commande de diagnostic est : dcdiag Résultat Directory Server Diagnosis Performing initial setup: Trying to find home server... Home Server = och-lab-adds01 * Identified AD Forest. Done gathering initial info. Doing initial required tests Testing server: Datacenter\OCH-LAB-ADDS01 Starting test: Connectivity ......................... OCH-LAB-ADDS01 passed test Connectivity Doing primary tests Testing server: Datacenter\OCH-LAB-ADDS01 Starting test: Advertising ......................... OCH-LAB-ADDS01 passed test Advertising Starting test: FrsEvent ......................... OCH-LAB-ADDS01 passed test FrsEvent Starting test: DFSREvent There are warning or error events within the last 24 hours after the SYSVOL has been shared. Failing SYSVOL replication problems may cause Group Policy problems. ......................... OCH-LAB-ADDS01 failed test DFSREvent Starting test: SysVolCheck ......................... OCH-LAB-ADDS01 passed test SysVolCheck Starting test: KccEvent ......................... OCH-LAB-ADDS01 passed test KccEvent Starting test: KnowsOfRoleHolders ......................... OCH-LAB-ADDS01 passed test KnowsOfRoleHolders Starting test: MachineAccount ......................... OCH-LAB-ADDS01 passed test MachineAccount Starting test: NCSecDesc ......................... OCH-LAB-ADDS01 passed test NCSecDesc Starting test: NetLogons ......................... OCH-LAB-ADDS01 passed test NetLogons Starting test: ObjectsReplicated ......................... OCH-LAB-ADDS01 passed test ObjectsReplicated Starting test: Replications ......................... OCH-LAB-ADDS01 passed test Replications Starting test: RidManager ......................... OCH-LAB-ADDS01 passed test RidManager Starting test: Services ......................... OCH-LAB-ADDS01 passed test Services Starting test: SystemLog ......................... OCH-LAB-ADDS01 failed test SystemLog Starting test: VerifyReferences ......................... OCH-LAB-ADDS01 passed test VerifyReferences Running partition tests on : ForestDnsZones Starting test: CheckSDRefDom ......................... ForestDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... ForestDnsZones passed test CrossRefValidation Running partition tests on : DomainDnsZones Starting test: CheckSDRefDom ......................... DomainDnsZones passed test CheckSDRefDom Starting test: CrossRefValidation ......................... DomainDnsZones passed test CrossRefValidation Running partition tests on : Schema Starting test: CheckSDRefDom ......................... Schema passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Schema passed test CrossRefValidation Running partition tests on : Configuration Starting test: CheckSDRefDom ......................... Configuration passed test CheckSDRefDom Starting test: CrossRefValidation ......................... Configuration passed test CrossRefValidation Running partition tests on : LABS404 Starting test: CheckSDRefDom ......................... LABS404 passed test CheckSDRefDom Starting test: CrossRefValidation ......................... LABS404 passed test CrossRefValidation Running enterprise tests on : LABS404.FR Starting test: LocatorCheck ......................... LABS404.FR passed test LocatorCheck Starting test: Intersite ......................... LABS404.FR passed test Intersite   Note : Les tests sur les logs de synchro peuvent échouer car le serveur n'a pour le moment pas assez de recul dans le temps. La seconde commande sert à voir si les réplications fonctionnent bien : repadmin /replsummary Si la seconde montre des erreurs, il faudra compléter le diagnostic avec : repadmin /showrepl Attention : Si des erreurs de réplications sont visibles après les temps d'initialisation normaux (environ 30 minutes) ou que les AD ne répliquent pas les changements, il faudra alors creuser dans les journaux d'évènement et le gestionnaire DFSR pour voir les erreurs éventuelles. V. Aller plus loin Active Directory - Gestion des rôles FSMO Active Directory - Décommissionner un DC Active Directory - Attributs UNIX Difficulté : Intermédiaire Notions : AD, LDAP, attributs LDAP. I. Introduction Cette procédure permet d'expliquer la mise en place des attributs AD en vue de préparer l'intégration de serveurs Unix au domaine. II. Création / Modification du compte 2.1 Création de compte En mode GUI Ouvrir 'Active Directory Users and Computers', procéder à une création d'utilisateur classique. Puis faire 'View --> Advanced Features'.   Double-cliquer sur l'utilisateur créé, puis aller dans l'onglet 'Attribute Editor'   Définir les attributs suivants : gidNumber : ID du groupe unix (100 par défaut) uidNumber : ID unique de l'utilisateur (la bonne pratique est de commencer à 5000 et incrémenter) loginShell : shell que l'utilisateur utilisera pour se connecter ('/bin/bash' par défaut) unixHomeDirectory : dossier home de l'utilisateur ('/home/' par défaut) En mode CLI Charger le module active directory Import-Module -Name ActiveDirectory   Utiliser la commande PowerShell classique avec les options supplémentaires comme ci-dessous : New-ADuser -Surname -GivenName -DisplayName "" -EmailAddress "" -AccountPassword (ConvertTo-Securestring -AsPlainText "" -Force) -ChangePasswordAtLogon $true -Enabled $true -Path "" -OtherAttributes @{uidNumber="5001"; gidNumber="100"; loginShell="/bin/bash"; unixHomeDirectory="/home/"} 2.2 Ajout des attributs à un utilisateur existant En mode GUI Ouvrir 'Active Directory Users and Computers'. Puis faire 'View --> Advanced Features'.   Double-cliquer sur l'utilisateur créé, puis aller dans l'onglet 'Attribute Editor'   Définir les attributs suivants : gidNumber : ID du groupe unix (100 par défaut) uidNumber : ID unique de l'utilisateur (la bonne pratique est de commencer à 5000 et incrémenter) loginShell : shell que l'utilisateur utilisera pour se connecter ('/bin/bash' par défaut) unixHomeDirectory : dossier home de l'utilisateur ('/home/' par défaut) En mode CLI Charger le module active directory Import-Module -Name ActiveDirectory   Trouver l'utilisateur avec : Get-ADUser -Identity "" -Add @{uidNumber="5000"; gidNumber="100"; loginShell="/bin/bash"; unixHomeDirectory="/home/"} II. Vérification Pour vérifier si le compte a bien pris les attributs : En mode GUI Ouvrir 'Active Directory Users and Computers'. Puis faire 'View --> Advanced Features'.   Double-cliquer sur l'utilisateur créé, puis aller dans l'onglet 'Attribute Editor'   Dans l'éditeur d'attribut, vérifier les propriétés suivantes : En mode CLI Utiliser la commande : Get-ADUser -Identity -Properties * | Out-String -Stream | Select-String "uidNumber","gidNumber","loginShell","unixHomeDirectory" Aller plus loin : Debian13 - Joindre au domaine active directory Active Directory - Décommissionner un DC Difficulté : Intermédiaire Notions : Active Directory, LDAP, Contrôleur de domaine I. Introduction Cette procédure à pour but d'expliquer comment retirer un contrôleur de domaine du domaine. Cela se fait lors d'un remplacement d'un DC existant ou suite à la décomission du domaine. L'opération consistant à ajouter un contrôleur de domaine est un 'Promote'. L'opération inverse est donc un 'Demote' II. Demote un DC Prérequis : Le contrôleur qui sera retiré ne dois plus porter aucun rôle FSMO. Pour plus d'information sur le transfert de ces rôles ou comment les afficher : Active Directory - Gestion des rôles FSMO En GUI Depuis le DC ou depuis un poste d'administration, ouvrir le server manager.   Cliquer sur 'Manage', puis 'Remove Roles and Features'   L'assistant se lance, cliquer sur 'Next'. Sélectionner le DC à demote. Puis faire 'Next'.   Décocher le rôle 'Active Directory Domain Services'   Une boite de dialogue apparaît alors, indiquant les dépendances qui seront retirées avec cette action. Valider en cliquant sur 'Remove Features'.   Info : A ce stade, une fenêtre d'erreur de validation apparaît, indiquant qu'il est impossible de désinstaller le rôle car le serveur est encore un DC actif. Cela est en réalité un comportement attendu.   Cliquer sur 'Demote this domain controller'.   L'assistant démarre. Sélectionner le compte administrateur de domaine à utiliser, puis faire 'Next'.   Attention : le compte doit être également dans les administrateurs de schéma. Info : La case 'Force the removal of this domain controller' est prévue dans le cas où le contrôleur cible ne serait plus disponible sur le réseau. Dans le cadre d'un demote normal, inutile de la cocher.     Un avertissement apparaît, indiquant à l'utilisateur ce qu'il va faire et demandant une confirmation. Cocher la case 'Proceed with removal'. Puis faire 'Next'.   Info : Vu que le compte administrateur de la machine n'est plus un administrateur de domaine, ce compte va être rétrogradé en administrateur local et son mot de passe ne sera plus dans Active Directory, il faut donc lui redéfinir un mot de passe local. Entrer, confirmer le nouveau mot de passe de l'admin local, puis faire 'Next'.   Un résumé des actions s'affiche, cliquer sur 'Demote', pour lancer l'opération.   A la fin du demote, le serveur cible va redémarrer et il faudra vérifier que le schéma AD a été bien nettoyé. En Powershell Se connecter sur le serveur cible à demote.   Attention : le compte de connexion doit être également dans les administrateurs de schéma. Lancer les commandes : Import-Module -Name ActiveDirectory Uninstall-ADDSDomainController -DemoteOperationMasterRole -Force Attention : Si il s'agit du dernier DC du domaine, et uniquement si , ajouter l’opérande  -LastDomainControllerInDomain Info : Vu que le compte administrateur de la machine n'est plus un administrateur de domaine, ce compte va être rétrogradé en administrateur local et son mot de passe ne sera plus dans Active Directory, il faut donc lui redéfinir un mot de passe local.  Fournir le mot de passe de l'administrateur local.   Attendre la fin du process. Redémarrer le serveur.   Depuis un autre DC, Lancer powershell et sortir l'ancien DC des sites et services : Import-Module -Name ActiveDirectory Set-Location AD:   Récupérer la liste des DC du site : Get-ChildItems -Path 'AD:\CN=Servers,CN=,CN=Sites,CN=Configuration,DC=,DC=' | Select-Object DistinguishedName   Retirer l'ancien DC des liens de sites : Remove-Item -Path 'AD:\,CN=Sites,CN=Configuration,DC=,DC=' | Select-Object DistinguishedName   Info : Plus d'informations ici. Dans le DNS Manager , vérifier que les enregistrements DNS de ce contrôleur ne sont plus présents. foreach ( $zone in Get-DNSServerZone ) { Get-DNSServerResourceRecord -ZoneName $zone.ZoneName } Le cas échéant, il faudra supprimer les enregistrements correspondants. IV. Désinstaller les rôles Après vérifications, les rôles peuvent enfin être supprimés. En GUI Depuis le DC ou depuis un poste d'administration, ouvrir le server manager.   Cliquer sur 'Manage', puis 'Remove Roles and Features'   L'assistant se lance, cliquer sur 'Next'. Sélectionner le DC à demote. Puis faire 'Next'.   Décocher le rôle 'Active Directory Domain Services' et 'DNS Server'.   Une boite de dialogue apparaît alors, indiquant les dépendances qui seront retirées avec cette action. Valider en cliquant sur 'Remove Features'. Puis faire 'Next'.   Pas de Features à retirer, Faire simplement 'Next'.   Prendre connaissance du résumé et faire 'Remove'.   Les rôles seront désinstallés.   Redémarrer le serveur à la fin des désinstallations. En Powershell Désinstaller le rôle Active Directory : Remove-windowsFeature -Name AD-Domain-Services -IncludeManagementTools -Remove   Puis désinstaller le rôle DNS server :   Remove-windowsFeature -Name DNS -IncludeManagementTools -Remove Redémarrer le serveur. Attention : Le décommissionnent d'un active directory implique aussi son décommissionnent en tant que DNS du domaine. Il faudra donc changer les configurations des clients en conséquences. Active Directory - Gestion des rôles FSMO Difficulté : Intermédiaire Notions : Active Directory, LDAP, Rôle FSMO I. Introduction Cette procédure vise à expliquer le transfert des rôles FSMO. En effet, l'un des principes clé d'Active Directory réside dans la gestion de ces rôles. Ces rôles sont par défaut tous portés par le contrôleur de domaine principal mais peuvent être répartis pour plus de souplesse. Il peut également être nécessaire de les transférer dans le cadre de l'arrêt définitif d'un serveur qui les portait auparavant. Il est également possible de forcer leur réattribution à un nouveau DC si celui qui les portait avant n'est plus disponible suite à un incident ayant entrainé sa perte ou sa destruction. Info : Plus d'informations sur les rôles FSMO II. Transférer les rôles FSMO Conseil : Bien qu'une méthode pour transférer ces rôles existe en GUI, elle est relativement fastidieuse car il faut en effet aller chercher à plusieurs endroits dans les outils d'administration. Aussi le plus rapide et pratique est de procéder en CLI. En batch (méthode legacy) Ouvrir une CMD sur le serveur Active Directory qui va reprendre les rôles.   Vérifier qui porte les rôles actuellement avec la commande : netdom query FSMO Ici c'est le DC principal qui porte tous les rôles.   Ouvrir la console NTDS Utils. ntdsutil   Entrer en mode de maintenance du shema. role Se connecter au serveur de destination des rôles connection connect to server q Pour transférer les rôles, utiliser la commande suivante transfer   Attention : En cas de transfert forcé, la commande est  seize. Mais cela ne doit être utilisé que si l'ancien DC n'est plus disponible. La procédure par défaut est celle donnée ci-dessus. Il y à 5 rôles à transférer, dans cet ordre là : RID master schema master infrastructure master naming master pdc   Info : à chaque transfert, NTDSUTIL affiche le résumé des rôles, il est ainsi possible de vérifier au fur et à mesure leur bon transfert. Pour chaque commande transfer, la fenêtre suivante apparaît, il faut cliquer sur 'Yes' pour valider le transfert : Après validation : Répéter la procédure sur chaque rôle. A la fin du processus, quitter les outils avec 'q'. Une nouvelle requête indique maintenant : En Powershell Avec l'arrivée de Powershell, il est désormais nativement possible d'effectuer la procédure en Powershell. Cette méthode à l'avantage d'être plus rapide et de pouvoir s'exécuter depuis n'importe quel serveur AD ou du serveur d'administration.   Se connecter à la console Powershell. Vérifier qui porte les rôles : netdom query FSMO   Il est également possible de savoir qui porte quel rôle avec le script powershell suivant :   $domainControllers = Get-ADDomainController -Filter * foreach ($dc in $domainControllers) { Write-Output "Name: $($dc.Name)" Write-Output "OperationMasterRoles:" foreach ($role in $dc.OperationMasterRoles) { Write-Output "- $role" } }   La commande pour transférer un rôle est la suivante : Move-ADDirectoryServerOperationMasterRole -Identity -OperationMasterRole  Attention : En cas de transfert forcé, il faut ajouter l'opérande -Force. Mais cela ne doit être utilisé que si l'ancien DC n'est plus disponible. La procédure par défaut est celle donnée ci-dessus. Il y à 5 rôles à transférer, dans cet ordre là : RIDMaster SchemaMaster InfrastructureMaster DomainNamingMaster PDCEmulator     A la fin du transfert, il est possible d'afficher si le serveur de destination à bien hérité des rôles : Get-ADDomainController -Identity | Select-Object OperationMasterRoles -ExpandProperty OperationMasterRoles Active Directory - Installation Difficulté : Novice Notions : Authentification, LDAP, anuaire, active directory I. Introduction Cette procédure à pour but de traiter l'installation d'un serveur Microsoft Active Directory et son paramétrage de base dans le cadre d'une nouvelle forêt. En outre, quelques bonnes pratiques seront mentionnées dans cette procédure pour optimiser et sécuriser la mise en route. II. Installation Prérequis : voir ci-dessous (calculés pour une installation en 2022 Server). Dépendant de l'installation core ou GUI. Vcpu dépendant du nombre d'utilisateurs, habituellement 2Vcpu en core et 4 en GUI. 2Gb RAM core ou 4Gb RAM GUI 10Gb d'espace disque (si possible sur un disque ou une partition dédiée) Autres prérequis : Une adresse IP Fixe, Un nom de machine fixe.* * si ces deux prérequis ne sont pas satisfaits, cela pourra engendrer des problèmes par la suite. Informations : Concernant l'ip et le nom, si ceux-ci venaient à changer en cours de route, cela pourrai occasionner des problèmes de résolutions DNS, entraînant des problèmes de liaison pouvant casser des liens de réplications ou empêcher des postes ou des utilisateurs de se connecter ou d'être correctement reconnus. Informations : Concernant le service NTP, par défaut Kerberos, le gestionnaire d'authentification, tolère un écart de temps entre le serveur et les client ou les pairs de 5 minutes. Passé ce délai, le service peut ne plus fonctionner correctement. Il est donc important d'avoir une source de temps fiable et que l'heure soit correctement synchronisée partout sur le parc. 2.1 Préparation Best Practice : Préparer une partition ou disque à part et lui attribuer la lettre E: puis la nommer 'AD' Best Practice sécurité : Changer le nom du compte administrateur local. Il peut être bien de changer le nom de l'administrateur local. En effet ce compte, lors de l'initialisation du domaine, deviendra l'administrateur de domaine et disposera de tous les privilèges. Pour le rendre plus facilement devinable en cas d'attaque, il peut être bien de le renommer en évitant les chaînes : Administrator Administrateur Admin Adm Préférer plutôt des anagrammes ou des astuces mnémotechniques. Danim MadSinistrator AdiritMonstar 4d- (admin en l33t) précédé d'un mot clé. exemple : Dom4d- Le moyens le plus rapide consiste à entre la commande suivante en powershell : Rename-LocalUser -Name "Administrator" -NewName "" Redémarrer la machine. 2.2 Installer le rôle 2.2.1 En mode graphique Voir : WinServer2k22GUI - Installation Rôle et Fonctionnalité  Les rôles nécessaires sont : 'Active Directory Domain Services'. 2.2.2 En mode Console Pour installer le rôle active directory en mode console, ouvrir une console powershell et entre la commande suivante : Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools Attendre la fin de l'installation. III. Initialisation 3.1 DC promo Dans cet exemple, les informations utilisées pour la création seront les suivantes : Nom de la forêt : labs404.fr Nom du domaine : labs404.fr Nom netbios : labs404.fr Informations : il sera assumé dans la suite de cette procédure qu'un disque E: a été créé pour stocker les data AD. 3.1.1 En mode GUI Dans le server manager, Cliquer sur le drapeau en haut pour faire apparaître la notification. Cliquer sur 'Promote this server to a domain controller'. Dans le cas d'un premier contrôleur de domaine, il faudra cocher 'Add a new forest' et remplir le 'root domain name'. Puis cliquer sur 'Next'. Choisir le niveau fonctionnel de la forêt et du domaine (ici : le plus élevé). Information : le niveau fonctionnel sert à définir les protocoles employés avec les contrôleurs synchronisés ainsi que la structure du schéma active directory à adopter et les fonctionnalités à activer. Le niveau fonctionnel doit être fixé sur le niveau LE PLUS BAS actuellement présent sur le parc. Laisser les cases cochées (sauf si un DNS est déjà présent dans le domaine). Remplir le mot de passe de restauration Active Directory et le répéter. Puis cliquer sur 'Next'. Information : le mot de passe de restauration sera demandé en cas de restauration de l'active directory suite à une action de restauration ou de déploiement d'un nouveau DC à partir du fichier d'export. Ignorer cette alerte. Cliquer sur 'Next'. Utiliser le nom NetBIOS fourni ou en renseigner un nouveau. Cliquer sur 'Next'. Si les E: est utilisé, changer les C: par E: dans les chemins et cliquer sur 'Next'. La fenêtre suivante récapitule l'installation qui va se lancer. Cliquer sur 'Next'. Ignorer les alertes qui sont juste une information sur l'algorithme de chiffrement utilisé qui peut ne pas être compatible avec de vieilles versions et un rappel sur la délégation DNS déjà vu plus tôt. Cliquer sur 'Install'. Attendre la fin de l'installation. L'utilisateur va être déconnecté et le serveur va redémarrer. 3.1.2 En mode console Si ce n'est pas déjà fait, lancer powershell. Entrer la commande suivante : Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath "E:\Windows\NTDS" -DomainMode "WinThreshold" -DomainName "labs404.fr" -DomainNetbiosName "LABS404" -ForestMode "WinThreshold" -InstallDNS:$true -LogPath "E:\Windows\NTDS" -NoRebootOnCompletion:$false -SysvolPath "E:\Windows\SYSVOL" -Force:$true Voici à quoi correspondent les options : Paramètre Fonction -CreateDnsDelegation Sert à créer une délégation DNS pour le domaine. Ici à $False car cela n'est pas souhaité. -DatabasePath Chemin vers la base de donnée de l’annuaire. -DomainMode Niveau fonctionnel du domaine. Ici "WinThreshold" car c'est le dernier disponible* -DomainName Le nom du domaine. -DomainNetbiosName Le nom netbios du domaine. -ForestMode Niveau fonctionnel de la forêt. Ici "WinThreshold" car c'est le dernier disponible* -InstallDns Précise si il faut installer le rôle DNS. Ici à $true car aucun DNS présent sur le domaine -LogPath Chemin vers les logs active directory. -NorebootOnCompletion Spécifie si le serveur doit redémarrer à la fin de l’opération. Ici, le redémarrage est souhaité. -SysvolPath Chemin du répertoire sysvol qui stockera les fichiers (GPO, scripts, installers, etc...). * Information : le niveau fonctionnel sert à définir les protocoles employés avec les contrôleurs synchronisés ainsi que la structure du schéma active directory à adopter et les fonctionnalités à activer. Le niveau fonctionnel doit être fixé sur le niveau LE PLUS BAS actuellement présent sur le parc. Renseigner le mot de passe de restauration et répéter. Information : le mot de passe de restauration sera demandé en cas de restauration de l'active directory suite à une action de restauration ou de déploiement d'un nouveau DC à partir du fichier d'export. Attendre la fin du déploiement. Les alertes peuvent être ignorées A ce niveau plusieurs points sont à soulever : Information : le compte administrateur local de la machine est désormais le compte Administrateur du domaine. Astuce : Si le rôle a été installé sur un serveur Core, l'administration pourra se faire de manière graphique depuis un poste d'administrateur équipé du server manager. 3.2 Vérifier le fonctionnement Pour l'instant, les points à vérifier sont les suivants : L'arborescence des fichiers AD est bien créée Vérifier la création des dossiers ou utiliser la commande tree E:\ Les rôles FSMO sont bien tous attribués au DC : netdom query FSMO Information : les rôles FSMO et fichiers de GPO seront traités à postériori dans les sections correspondantes. Vérifier que le contrôleur de domaine est correctement reconnu Get-ADDomainController IV. Bonnes pratiques - Fonctionnement Attention : Cette étape n'est pas obligatoire, mais est vivement conseillée, car elle permettra de s'assurer d'avoir un fonctionnement correct pour la suite et de disposer de certaines fonctionnalités pratiques pour la suite. 4.1 Activer la corbeille active directory En mode GUI 4 Dans le Administrative Center, sélectionner le domaine et faire un clic droit. Puis 'Enable Recycle Bin...'. Confirmer. Valider. La corbeille est maintenant activée. En mode console Ouvrir une console PowerShell et charger le module Active Directory. Import-Module -Name ActiveDirectory  Lancer la commande suivante en remplaçant le domaine et l’extension pour les options -Identity et -Target : Enable-ADOptionalFeature –Identity “CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=dawngrazer,DC=Company” -Scope ForestOrConfigurationSet –Target “dawngrazer.company" 4.2 Renommer le site par défaut Dans les sites et services, un site par défaut est créé du nom de 'Default-First-Site-Name'. Il faudra le renommer pour le faire correspondre à la réalité. ici par exemple, le nom du site sera STSG. En mode GUI Lancer le serveur manager. Se placer sur 'AD DS' et faire un clic droit sur le serveur AD.  Sélectionner 'Active Directory Sites And Services'. Faire 'Sites --> Clic droit sur  Default-First-Site-Name --> Rename'. En mode console Ouvrir une console powershell et charger le module Active Directory. Import-Module -Name ActiveDirectory  Lancer la commande : Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -filter "Name -eq 'Default-First-Site-Name'" | Rename-ADObject -NewName SCSG Pour lister les sites : Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -filter "objectclass -eq 'site'" | Format-Table Name,DistinguishedName 4.3 Déclarer les subnets dans les sites et services En mode GUI Lancer le serveur manager. Se placer sur 'AD DS' et faire un clic droit sur le serveur AD.  Sélectionner 'Active Directory Sites And Services'. Aller dans 'Sites --> Subnets' et faire un 'clic droit --> New Subnet'. Entrer le Prefix au format CIDR et cliquer sur le site auquel il sera rattaché puis faire OK. Le Subnet est ajouté. Procéder de même pour les autres subnets. En mode console 4 New-ADReplicationSubnet -Name "192.168.1.0/24" -Site "SCSG" -Location "Saint christophe sur guiers" -Description "VLAN serveur de LAB." Pour voir la liste des subnets : Get-ADReplicationSubnet -Filter * |Ft Location,Name,Site 4.4 Ajuster les Politiques de réplication entre les sites. Astuce : Cela pourra s'avérer utile en cas de liens multiples entre sites ou par exemple dans le cas ou certains sites distants seraient reliés par des liens en faible débit ou n'aurait pas les même contraintes sur le maintient à jour des données de l'AD. En mode GUI Lancer le serveur manager. Se placer sur 'AD DS' et faire un clic droit sur le serveur AD.  Sélectionner 'Active Directory Sites And Services'. Aller dans 'Sites --> Inter-Site Transport --> IP --> Clic droit sur DEFAULTIPSITELINK --> Properties'. Dans la fenêtre suivante, choisir à quels site s'appliqueront cette politique, puis définir l’intervalle en ajustant la variable 'Replicate every' pour choisir le délai qui convient le mieux (ici 1h). Puis faire 'Apply' et 'OK'. En mode console voir : Microsoft - SetReplicationSiteLink 4.5 Créer les zones ReverseDNS En mode GUI Lancer le serveur manager. Se placer sur 'DNS' et faire 'clic droit --> DNS Manager' sur le serveur DNS. Dans le DNS manager, faire clic-droit sur 'Reverse Lookup Zones --> New Zone...'. L'assistant se lance. Cliquer sur 'Next' Choisir 'Primary Zone', laisser coché 'Store in Active Directory' et faire 'Next'. Choisir 'To all DNS servers running on domain controllers in this domain'. Puis 'Next'. Sélectionner le type de zone voulue puis 'Next'. Entrer les détails de la zone et faire 'Next'. Cocher 'Allow only secure dynamict updates' et faire 'Next'. Revoir les paramètres et 'Finish'.  Les zones devraient être OK. En mode console Ouvrir une console powershell et charger le module Active Directory. Import-Module -Name ActiveDirectory Afficher les zones DNS avec : Get-DNSServerZone Ici la zone a déjà été créée et est présente. Mais par défaut ce n'est pas le cas. Pour créer la reverse lookup zone, entrer la commande suivante (ici pour 192.168.1.0/24) : Add-DnsServerPrimaryZone -NetworkID "192.168.1.0/24" -ReplicationScope "Domain" 4.6 Ajuster les Forwarders DNS En mode GUI Lancer le serveur manager. Se placer sur 'DNS' et faire 'clic droit --> DNS Manager' sur le serveur DNS.   Dans le DNS manager, faire clic-droit sur le serveur, puis 'properties'.   Dans l'onglet 'Forwarders' cliquer sur 'Edit...'   Éditer les Forwarders en ajoutant, déplaçant, supprimant les entrées.   Choisir le délai d'expiration des requêtes.   Puis cliquer sur 'OK' pour valider. En mode console Récupérer les informations actuelles avec : Get-DNSServerForwarders   Pour ajouter un serveur DNS :   Add-DnsServerForwarder -IPaddress     Pour en retirer un : Remove-DnsServerForwarder -IPAddress   Pour changer le délai de timeout : Set-DNSServerForwarder -Timeout V. Aller plus loin Note : Acive directory - Security Hardening Note : Active Directory - Mise en place de Windows LAPS Active Directory - Mise en place de Windows LAPS Difficulté : Intermédiaire Notions : Active directory, schema active directory, ADSI edit, GPO. Attention : Microsoft LAPS est désormais déprécié, il faut maintenant utiliser le module Windows LAPS disponible sur AD et le module client disponible nativement sur Windows 10 (depuis la mise à jour d'avril 2023) et Windows 11. I. Introduction Dans le cadre de la sécurisation du parc, il peut être intéressant de déployer LAPS. LAPS ( Local Administrator Password Solution ) est, comme son nom l'indique, une solution permettant de gérer les mot de passe des administrateurs locaux. Sur le principe, un agent est installé sur les poste et paramétré par GPO. Une fois cela fait, les mots de passe des Administrateurs locaux seront automatiquement gérés par l'active directory et enregistrés dans les attributs du compte machine. Cela permet les choses suivantes : Ils seront définis suivant la politique de mot de passe choisis. Ils seront changés automatiquement sur une période définie. Ils seront générés aléatoirement et stockés de façon sécurisé dans les attributs Active Directory de la machine. Pour les consulter, il sera possible pour les administrateurs autorisés d'utiliser le client LAPS ou d'aller voir les attributs active Directory. II. Installation sur le DC Prerequis : Vérifier les prérequis suivants. schéma du DC en 2008R2 ou plus .Net 4.0 ou plus Powershell 2.0 ou plus. la mise à jour kb5025230 (avril 2023) est déployée sur les DC et l'ensemble des postes concernés. Disponible ICI ou sur WSUS / windows update 2.1 Préparer le schéma AD Vérifier que les commandes du module sont disponible avec la commande : Get-Command -Module LAPS Lancer la préparation du schéma : Update-LapsADSchema -Verbose Si le message suivant apparaît, faire 'Yes to All'. Vérifier sur le verbose que tout ce soit bien déroulé. Puis vérifier la présence des éléments suivants sur les objets machines : Présence des attributs dans les objets AD sur une machine. Ajout de l'onglet 'LAPS' 2.2 Créer les délégations machines Pour que les machines puissent avoir le droit de mettre à jour le mot de passe dans leurs attributs respectifs, il va falloir leur ajouter une délégation sur les OU machines. Cela se fait avec la commande : Set-LapsADComputerSelfPermission -Identity "OU=,DC=,DC=" Note : Les autorisations sont récursives et s'appliquent sur les OU enfants. III. Mise en place des GPO 3.1 Ajout des templates de GPO Pour une mise en place efficace de l'outil, il est bon de les configurer par GPO. Cela évitera une gestion manuelle des clients. Pour cela, il faut importer les ADMX LAPS. Créer dans '\\\SYSVOL\labs404.fr\Policies' le dossier 'PolicyDefinition'. Créer dans ce dossier le dossier correspondant à la localisation voulue : fr-FR ou en-US par exemple. Aller dans 'C:\Windows\PolicyDefinitions' et copier les fichiers 'LAPS.admx' et le fichier de traduction correspondant dans les répertoires créés précédemment. 3.2 Création de la GPO Il va falloir créer une GPO Ordinateur pour l'appliquer sur les systèmes. Astuce : Pour le nom des GPO dans le labs404, se référer à Noms des GPO Dans la console 'Group Policy Management' Faire un clic droit sur l'OU contenant les machines puis 'Create a GPO in this domain, and Link it here' Nommer la GPO et valider. Puis clic droit sur la GPO créée er 'Edit'. Les paramètres à modifier sont dans : 'Computer Configuration --> Policies --> Administratives Tmplates --> System --> LAPS' Voici la liste des paramètres : Configure 'password backup directory' : Enabled Active directory Configurer 'Password Setting' Enabled Complexity Password Length Password Age (Days) Configurer 'Size of encrypted password history' Enabled 1 Cela permettra si jamais un mot de passe est mal renouvelé par une machine, d'accéder à l'ancien mot de passe. Configurer 'Enable Password Encryption' Enabled Configurer 'Authorized password decryptors' Enabled Nom du groupe AD au format (optionnel) Si un compte autre que Administrator est utilisé Configurer 'Name of the administrator account' Enabled Nom du compte local Enregistrer la GPO. IV. Appliquer sur les clients Pour appliquer la GPO sur les clients, 2 solutions : Appliquer la GPO de manière classique et redémarrer. gpupdate /force OU Forcer l’enrôlement de la device avec Invoke-LapsPolicyProcessing V. Opérations supplémentaires 5.1 Consulter les mots de passes Sur 'Active directory user & computer' faire un clic droit sur l'ordinateur et aller dans l'onglet 'LAPS'. Les boutons 'Copy password' et 'show password' seront utilisables pour manipuler le mot de passe stocké. Le boutton 'Expire Now' va forcer l'expiration et donc le renouvellement d'un mot de passe. Cel est utile si un mot de passe est compromis. Le mot de passe peut également être récupéré en powershell avec l'applet : Get-LapsADPassword "" -AsPlainText Pour voir le mot de passe ainsi que les précédents : Get-LapsADPassword "PC-01" -AsPlainText -IncludeHistory 5.2 Consulter les événements LAPS Les évènements LAPS sont enregistrés dans le journal d'événement windows suivant : Applications and security --> Microsoft --> Windows --> LAPS --> Operational Ces journaux d'événements sont présents à la fois côté serveur et côté client. Active Directory - Security Hardening Difficulté : Intermédiaire Notions : Active directory, GPO, Sécurité I. Introduction Note : Pour réaliser l'audit, c'est PingCastle qui sera utilisé. Il est téléchargeable Ici Comme vu dans le rapport d'audit de sécurité, par défaut un Active Directory est moyennement vulnérable et certaines fonctionnalités risquent de ne pas être actives ou mal paramétrées. Il est donc bon de revoir certaines choses avant de réellement passer en production. Astuce : Le focus sera ici fait sur tous les points permettant de passer le score de risque à 0. Un certains nombres de points sont présents dans le rapport d'audit à titre informatif et peuvent également être corrigés. II. Modifier la stratégie de sécurité par défaut Lancer l’éditeur de GPO : Trouver la GPO 'Default Domain Policy' faire 'Clic droit --> Edit' 2.1 Changer la politique des mots de passe Dans la section 'Computer Configuration / Policies / Windows Settings / Security settings / Account Policies / Password Policy' Password History : minimum 12 Maximum password age : 30 jours Minimum password age : 0 jours Minimum password lenght : 14 caractères Minimum password lenght Audit : 14 caractères Must meet complexity requirements : Enabled 2.2 Changer la politique de verrouillage des comptes Dans la section 'Computer Configuration / Policies / Windows Settings / Security settings / Account Policies / Account Lockout Policy' Account lockout duration : 30 minutes Account lockout threshold : 3 essais Allow Administrator Account Lockout : Enabled Reset Account Lockout count after : 30 minutes III. Corriger les 'Stale Objects' 3.1 Désactiver NTLMv1 Attention : Les postes inférieurs à windows 7 ou effectuant leurs connections en NTLMv1 ne pourront plus se connecter sur le domaine. Éditer la 'Default Domain Policy' et modifier le paramètre suivant : 'Settings / Security Settings / Local Policies / Security Options / Network Security: LAN Manager authentication level' 3.2 Retirer aux utilisateurs le droits d'ajouter des machines Note : cela n'affectera que les comptes utilisateurs, mais les administrateurs de domaines garderons tout de même ce privilège. En mode GUI Ouvrir la console 'ADSI Edit'   Faire un clic droit puis 'Connect To...'   Choisir le contexte par défaut et faire 'OK'. Sélectionner l'objet racine du domaine, puis clic droit --> 'Properties'   Dans l'editeur d'attributs, trouver l'attribut 'ms-DS-MachineAccountQuota'   Fixer sa valeur à '0'. En mode console Set-ADDomain -Identity "DC=,DC=" -Replace @{"ms-DS-MachineAccountQuota"="0"} IV. Corriger les 'Privileged Accounts' Les deux points suivants peuvent être corrigés en une fois. Ajouter les comptes à protéger dans le groupe Builtin 'Protected Users' Retirer les comptes admins du groupe 'Shema Admins' Attention : Sortir l'administrateur du domaine du group administrateur de schéma signifie qu'il faudra l'y ré-ajouter pour toute modification / mise à jour du schéma Active Directory. En mode GUI En mode console Remove-ADGroupMember -Identity "Schema Admins" -Members "" Add-ADGroupMember -Identity "Protected Users" -Members "" Sur l'utilisateur Administrator, Faire un 'clic droit --> Properties', dans l'onglet 'Account', cocher également l'attribut : 'Account is sensitive and cannot be delegated'. V. Corriger les derniers points 5.1 Activer les audits d'évènements Lancer l’éditeur de GPO : Trouver la GPO 'Default Domain Policy' faire 'Clic droit --> Edit' Dans la section 'Computer Configuration / Policies / Windows Settings / Security settings / Local Policy / Audit Policy' Tout Passer en 'success & failure' Dans la section 'Computer Configuration / Policies / Windows Settings / Security settings / Advanced Audit Policy Configuration / Audit Policy' Activer les audits de comptes 'Account Logon': Tout Passer en 'success & failure' Activer les audits de management des comptes 'Account Management': Tout Passer en 'success & failure' Activer les audits de tracking 'Detailed Tracking': A minima : Audit DPAPI Activity Audite Process Creation Activer les audits des événements  'Logon,Logoff'': Tout Passer en 'success & failure' sauf les events IPsec Activer les audits de changements de politiques 'Policy change': Tout Passer en 'success & failure' Activer les audits d'utilisation de privilèges  'Privilege use': Tout Passer en 'success & failure' Activer les audits systèmes  'System': A minima : Audit Security System Extention 5.2 Activer le 'Path Hardening' sur le netlogon et le sysvol Lancer l’éditeur de GPO : Créer une GPO et la placer sur chaque OU contenant des Ordinateurs. faire 'Clic droit --> Edit' Dans la section 'Computer Configuration / Policies / Administrative Templates / Network / Network Provider' Editer l'option 'Hardened UNC Paths' Activer le paramétrage en cochant 'Enabled' Puis cliquer sur 'Show' Ajouter les valeurs suivantes 5.4.3 Ajouter une redondance de contrôleur de domaine. Note : Voir la page Active directory - Ajout d'un DC VI. Conclusion Le point restant est dû à un compte dont le mot de passe n'expire pas. Celui-ci sera révisé pour être éliminé et remplacé par un compte GMSA. Il peut toujours être utile de correiger les eventuels points soulevés ultérieurement par l'audit, même si ceux-ci ne coûtent pas de points.