I. Présentation de Local Administrator Password Solution
La sécurité de vos postes de travail Windows doit être régulièrement au cœur de vos préoccupations, notamment le compte Administrateur local, qui représente une porte d’entrée importante sur votre machine. La portée d’un compte administrateur local est limitée puisqu’il a des autorisations uniquement sur la machine en elle-même.
Néanmoins, il peut s’avérer intéressant de sécuriser le compte Administrateur local de vos postes de travail, par exemple en renommant ce compte, ou encore avec un mot de passe complexe, qui sera bien souvent identique sur la majorité des machines (pour simplifier l’administration, et notamment si on déploie les machines via des images modèles).
Pour répondre à ce besoin de sécurité, Microsoft met à disposition un outil gratuit nommé « Local Administrator Password Solution » que l’on appellera « LAPS » qui permet de gérer automatiquement le mot de passe du compte « Administrateur » local de toutes les machines de votre domaine. Avec LAPS, le mot de passe est :
– Unique sur chaque poste de travail géré
– Généré aléatoirement
– Stocké de manière sécurisée dans l’annuaire Active Directory
L’intérêt est que cette solution s’intègre parfaitement dans un annuaire Active Directory déjà en place, et il n’est pas nécessaire d’installer et de gérer une solution tierce. Pour fonctionner, LAPS s’appuie sur les stratégies de groupe, deux attributs dans l’annuaire et quelques DLL.
Pour fonctionner l’application nécessite d’être installée les deux parties : les postes clients et sur au moins un contrôleur de domaine. Ce qui permettra de générer un nouveau mot de passe sur une machine lorsqu’il est expiré et le stocker dans l’annuaire Active Directory directement au niveau de l’objet ordinateur concerné, au sein d’un attribut spécifique.
Le contrôle de domaine doit être au minimum sous Windows Server 2003 SP1 et les postes clients au minimum sous Windows Vista. Pour les outils d’administration, PowerShell 2.0 au minimum et le .NET Framework 4.0.
II. LAPS – Installation sur le contrôleur de domaine
On commence par installer LAPS sur un contrôleur de domaine. Ce contrôleur de domaine doit être « Maître de Schéma » car il y a une mise à jour du schéma à faire à la suite de l’installation.
L’installation est très simple, suivez l’assistant jusqu’à l’étape de sélection des composants…
Étant donné que l’on se trouve sur le contrôleur de domaine, il est nécessaire d’installer les outils de gestion (Management Tools).
– Fat Client UI : Une interface qui permet de visualiser les mots de passe et options de façon graphique
– PowerShell module : Indispensable pour intégrer LAPS dans son infrastructure (AdmPwd.PS)
– GPO Editor Template : Intégration de paramètres GPO pour LAPS, via un fichier ADMX
Poursuivez la suite de l’installation, qui est classique et sans option particulière.
Avant de poursuivre la configuration du serveur, on va faire un saut sur la configuration des postes clients.
III. LAPS – Installation du client
« Local Administrator Password Solution » se présente sous la forme d’un package MSI, ce qui permet de le déployer facilement sur diverses machines via GPO, sinon on exécute l’installation en locale.
Pour procéder à une installation silencieuse (adaptez le chemin vers le fichier MSI) :
msiexec /i C :\LAPS.x64.msi /quiet
Si le fichier MSI se situe sur un partage, ça marche aussi bien entendu (intéressant pour scripter). Par exemple :
msiexec /i \\serveur\partage\LAPS.x64.msi /quiet
L’installation par défaut n’intègre pas les outils de gestion, ce qui permet de réaliser l’installation en mode silencieux. Dans la liste des programmes, LAPS apparaît bien suite à l’installation :
Pour le client, c’est tout il n’y a rien à faire d’autres. Enfin si, vous pouvez vérifier que le compte Administrateur local est bien actif sur la machine, au cas où.
IV. LAPS – Préparation du schéma Active Directory
Pour le bon fonctionnement de LAPS, le schéma de l’annuaire Active Directory doit être modifié afin d’ajouter deux nouveaux attributs :
– ms-MCS-AdmPwd : Stocke le mot de passe en clair
– ms-MCS-AdmPwdExpirationTime : Stocke la date d’expiration du mot de passe
Pour réaliser l’opération, il suffit d’exécuter deux commandes, la première pour charger le module PowerShell, la seconde pour déclencher la modification :
Import-Module AdmPwd.PS Update-AdmPwdADSchema
Ce qui donnera le résultat suivant :
S’il y a un RODC dans votre infrastructure, prenez en considération cet article du TechNet pour intégrer les nouveaux attributs dessus : RODC LAPS
V. Les permissions – ACLs
Nous allons voir une série d’ajustement à effectuer au niveau des permissions pour que LAPS fonctionne et que ce soit sécurisé. Dans cet exemple, on appliquera les droits sur une OU nommée « Informatique » et qui contient un poste de travail nommé « WORK01 », faisant office de poste de travail de test pour ce tutoriel.
L’objectif sera de donner les droits au groupe « Admins du domaine » pour qu’il puisse avoir accès à la consultation des mots de passe, ainsi qu’à la modification notamment de la date d’expiration.
La procédure n’est pas généralisée pour tout l’annuaire, à chaque fois vous verrez que l’on cible une unité d’organisation en particulier. Ceci permet de gérer les autorisations finement, selon le niveau de l’OU dans l’arborescence.
A. Retirer les autorisations étendues
Certains groupes et utilisateurs sont en mesures de disposer d’autorisations étendues au sein de l’annuaire, ce qui permet de consulter la valeur de certains attributs, notamment ceux ajouté par LAPS.
Pour gérer ces droits, ouvrez la console ADSI avec le module « Contexte d’attribution de noms par défaut ». On effectue un clic droit sur l’OU « Informatique » et on accède aux propriétés.
Sélectionnez dans la liste l’utilisateur ou le groupe qui ne doit pas être capable de visualiser les mots de passe, et retirer l’autorisation « Tous les droits étendus » (si elle est active). Cette permission permet de lire la valeur de l’attribut ms-MCS-AdmPwd et les paramètres confidentiels.
A l’inverse donnez cette autorisation au groupe ou à l’utilisateur qui doit être capable de consulter cet attribut. Je précise que les « Admins du domaine » ont par défaut cette autorisation.
Après avoir effectué vos différents changements, validez et passez sur une console PowerShell.
Pour visualiser qui dispose des droits étendus sur une unité d’organisation, le module PowerShell de LAPS intègre une commande adaptée. Il suffit d’ajouter le nom de l’OU à la suite du paramètre « Identity ».
Find-AdmPwdExtendedRights -Identity informatique | ft ExtendedRightHolders
Cette première phase est terminée, passons à la seconde !
B. Donner les droits d’écriture aux machines
Les machines doivent être en mesure de mettre à jour les attributs ms-MCS-AdmPwdExpirationTime et ms-MCS-AdmPwd dans l’annuaire Active Directory, notamment pour indiquer la date d’expiration à venir et de mettre à jour les mots de passe.
Il y a un commandlet PowerShell tout simple pour cela, où il suffit d’indiquer le nom de l’OU cible :
Set-AdmPwdComputerSelfPermission -OrgUnit Informatique
Répétez cette opération pour chaque unité d’organisation concernée.
C. Autoriser la visualisation du mot de passe
Maintenant, on va donner l’autorisation à un groupe, en l’occurrence « Admins du domaine » de visualiser les mots de passe des ordinateurs administrés et situés dans l’OU « Informatique ».
Set-AdmPwdReadPasswordPermission -OrgUnit Informatique -AllowedPrincipals "Admins du domaine" | ft Name, DistinguishedName, Status
D. Réinitialisation du mot de passe
Les utilisateurs sont susceptibles de modifier la date d’expiration d’un mot de passe sur un objet ordinateur spécifique, notamment pour forcer la réinitialisation du mot de passe. De ce fait, une autorisation d’écriture doit être ajoutée sur l’attribut « ms-MCS-AdmPwdExpirationTime ».
Pour définir cette autorisation, on fait à nouveau appel au PowerShell et plus particulièrement au commandlet « Set-AdmPwdResetPasswordPermission ». Deux paramètres seront à définir :
– L’unité d’organisation cible (qui contient les ordinateurs administrés via LAPS)
– L’utilisateur ou le groupe auquel il faut donner l’autorisation
Set-AdmPwdResetPasswordPermission -OrgUnit Informatique -AllowedPrincipals "Admins du domaine"
Il est important de préciser que lorsque le mot de passe est transféré entre la machine cliente et le contrôleur de domaine, il est protégé grâce au chiffrement Kerberos. Au niveau de l’annuaire, l’accès à l’attribut qui contient les mots de passe et géré par ACL.
Passons maintenant à la mise en place d’une stratégie de groupe qui permet de configurer LAPS sur les postes clients.
VI. Configurer la GPO « LAPS »
Désormais on va s’intéresser à la création de la GPO, puisque je vous rappelle que LAPS ajoute un fichier ADMX sur le serveur, ce qui ajoutera forcément de nouveaux paramètres. Ouvrez la console d’édition des stratégies de groupe et créez ou modifiez une stratégie de groupe (GPO).
Grâce au template ADMX ajouté lors de l’installation de LAPS, une nouvelle catégorie est disponible dans les paramètres liés à l’ordinateur. Elle s’appelle tout simplement « LAPS ».
Au menu, rien de monstrueux mais tout de même 4 paramètres à notre disposition :
– Password Settings : Définir la complexité du mot de passe, sa longueur et sa durée de vie
– Name of administrator account to manage : Définir un compte administrateur à configurer autre que le compte Administrateur intégré à Windows. En effet, le compte Administrateur BUILT-IN est automatiquement détecté, grâce au SID (Identifiant de sécurité unique) même s’il est renommé.
– Do not allow password expiration longer than required by policy : Ne pas autoriser une expiration du mot de passe plus longue que le permet la stratégie
– Enable local admin password management : Activer ou désactiver la gestion du mot de passe administrateur avec LAPS.
On commence par définir une stratégie quant à la complexité des mots de passe. Il suffit d’éditer et de configurer le paramètre « Password Settings ».
Avec la stratégie indiquée sur la copie d’écran ci-dessous, on obtient des mots de passe très complexes, comme « 6F5g@FRlb)1KE. »
Il convient également d’activer le paramètre « Enable local admin password management » sinon LAPS ne sera pas actif et ne gérera pas les mots de passe.
Les deux autres paramètres sont optionnels. Il ne reste plus qu’à effectuer une mise à jour de la stratégie de groupe sur les postes clients ciblés (gpupdate).
VII. Visualiser un mot de passe
Un point crucial de l’utilisation de cet outil : la visualisation des mots de passe. Connecté en tant qu’administrateur du domaine sur mon contrôleur de domaine, j’accède aux propriétés de mon poste client « WORK01 » après avoir passé la console en mode avancé (ceci permet de visualiser des onglets supplémentaires).
Dans l’onglet « Editeur d’attributs », on obtient la liste de tous les attributs de cet objet ordinateur, et on trouvera nos deux attributs LAPS. Comme on peut le voir dans la copie d’écran ci-dessous, le mot de passe apparaît en clair, et la date d’expiration est indiquée en timestamp. D’ailleurs, pour convertir le timestamp en valeur compréhensible il existe des convertisseurs en ligne, comme : EpochConverter
Lors de l’installation sur le serveur, on a installé divers outils de gestion dont « LAPS UI ». Cet outil très intéressant est plus efficace que la lecture des données dans l’annuaire.
Après l’avoir démarré, il suffit d’indiquer un nom d’ordinateur dans le champ « ComputerName » de cliquer sur « Search », et le mot de passe apparaîtra en clair ainsi que la date d’expiration directement traduite !
Intéressant aussi, la possibilité de définir une nouvelle date d’expiration voir même une réinitialisation immédiate en laissant vide, et en cliquant sur « Set ».
Ce tutoriel sur l’outil « Local Administrator Password Solution » touche à sa fin. J’estime que cet outil apporte un vrai plus en matière de sécurité avec cette gestion intelligente des mots de passe. De plus, il est simple à mettre en œuvre et s’appuie sur des fonctions natives de l’Active Directory et supportées intégralement par les postes clients.
Que pensez-vous de Local Administrator Password Solution, cet outil gratuit proposé par Microsoft ?