In einer Domänenumgebung ist eine häufig anzutreffende Herausforderung, dass Management von Lokalen Administratorkonten. Da durfte ich bereits in einer Vielzahl unterschiedlicher Landschaften einige Lösungen, von absolut unsicher über nicht händelbar, bis hin zu sehr kreativ sehen 😉
Doch genau für diese Herausforderung stellt Microsoft das Tool Local Administrator Password Solution kurz LAPS bereit. Dieses dient zum zentralen managen der Lokalen Administratorkonten in einer Domäne. Dabei werden pro Client dynamische Kennwörter generiert. Die Kennwörter werden im AD am jeweiligem Computerobjekt angehängt. Hier gelten dann die üblichen Berechtigungen, so könnt ihr im AD nur den berechtigten Admins das Auslesen dieser Information ermöglichen. Im folgenden gehe ich zunächst auf die Installation und Konfiguration ein. Für die Verwendung von LAPS ist eine Schema Erweiterung notwendig.
Contents
Ladet euch die verfügbaren Setup Dateien von der LAPS Downloadseite herunter. Neben den beiden Installationsfiles für 32Bit & 64Bit werden noch einige Dokumentationen zur Verfügung gestellt.
LAPS Komponenten
- Group Policy Client Side Extension
- für jeden zu verwaltenden Client notwendig
- Management Tools
- Fat Client UI – grafische Oberfläche
- PowerShell Module – zur Skriptbasierten Administration
- Group Policy Templates – Clientkonfiguration mittels GPOs
Installation
Installation Management
Für jeden Client der für die Verwaltung per LAPS vorgesehen ist, ist die Installation der GP CSE erforderlich. Die Verteilung könnt ihr per Softwareverteilung über GPOs, SCCM oder Skriptbasiert vornehmen. Es empfiehlt sich eine Gruppe anzulegen, in denen alle Clients für die Verwaltung enthalten sind, um sicherzustellen, dass alle das Paket enthalten. Die automatisierte Installation ist mittels /quiet Parameter möglich.
Die Konfiguration erfolgt auf dem Domänencontroller ausschließlich per Powershell. Der FAT-Client dient lediglich dazu, sich einem Computer aus dem AD zu suchen und das dazugehörige Lokale Admin Kennwort anzeigen zu lassen. Diesen benötigt ihr also nur auf den Clients, auf denen dies erfolgen soll, z.B. an Hotline-Clients.
Innerhalb meiner Evaluationsumgebung habe ich die Installation auf dem DC vorgenommen.
Bei der Installation auf dem Management Client ist die Extension nur notwendig, wenn dieser ebenfalls in die Zentralkonfiguration aufgenommen wird.
Nachdem die Installation abgeschlossen wurde, sind die Templates nur im lokalen Policy Definition Ordner “%WINDIR%\PolicyDefinitions” bzw. “%WINDIR%\PolicyDefinitions\en-US” vorhanden. Um die Templates Domänenweit verfügbar zu machen, müsst ihr diese noch vom Lokalen Ordner auf den globalen Share, nach \\<FQDN>\SYSVOL\<FQDN>\policies\policyDefinitions bzw. \\<FQDN>\SYSVOL\<FQDN>\policies\policyDefinitions\en-US kopieren.
Installation Client
Um die Client Side Extension auf den Clients auszurollen, bestehen mehrere Möglichkeiten. Der automatische Rollout via quiet Installation ist bei beiden Dateien mit folgenden Parametern möglich:
- msiexec /i \\server\share\LAPS.x64.msi /quiet
- msiexec /i \\server\share\LAPS.x86.msi /quiet
Eine Installation indem die AdmPwd.dll auf den Clients mittels regsvr32.exe registriert wird, ist möglich.
AD Schema Erweiterung
Eine Schema-Erweiterung ist erforderlich, um zwei weitere Attribute hinzuzufügen, dass hinterlegte Passwort und das Ablaufdatum des Lokalen Passworts. Diese beiden Attribute werden zum Computer Objekt hinzugefügt.
Nachdem ihr eine PowerShell-Instanz auf dem DC gestartet habt, sind folgende zwei Befehle notwendig
- Import-Module AdmPwd.PS
- importiert das Modul
- Update-AdmPwdADSchema
- Erweitert das AD-Schema um die genannten Attribute
Das ganze sollte wie folgt aussehen
Hinweis
Ist in der Umgebung ein RODC vorhanden, muss das Attribut ms-Mcs-AdmPwd repliziert werden. Dazu ist eine Anpassung Filtered Attribute Set notwendig, siehe “Adding Attribute to the RODC Filtered Attribute set”
Berechtigungen
Sofern User im AD über Lese-Berechtigung auf “All Extended rights/permission” verfügen, sind auch die beiden Attribute Mcs-AdmPwd enthalten. Dadurch können User die Lokalen Passwörter einsehen. Soll dies verhindert werden, sind die Berechtigung auf OU-Ebene anzupassen. Diese Konfiguration erfolgt über ADSI-Edit und ist weiter unten detalliert erläutert.
Sofern die Vererbung nicht deaktiviert ist, sind die Änderungen nur für die Stamm-OUs notwendig.
Berechtigten Personenkreis feststellen
Um zunächst überhaupt zu ermitteln, welcher Personenkreis über diese Berechtigung verfügt, hilft die Powershell weiter. Import-Module AdmPws.PS auf dem Management-Client bleibt natürlich notwendig.
- Find-AdmPwdExtendedrights -identity :<OU name> | Format-Table
Nun werden alle Gruppen angezeigt, die über die entsprechende Berechtigung verfügen.
Einräumen der Computer-Berechtigung
Zum Hinterlegen der Passwörter der Lokalen Administratoren brauchen die Computerobjekte entsprechende Schreibberchtigung auf die beiden Attribute ms-Mcs-AdmPwdExpirationTime und ms-Mcs-AdmPwd attributes. Hierzu wird erneut die Powershell notwendig. Mit dem Befehl
- Set-AdmPwdComputerSelfPermission -OrgUnit <name of the OU to delegate permissions>
lassen sich die Berechtigung pro OU konfigurieren, wie im folgenden zu sehen:
Festlegen der Lesesberechtigten Personen
Sobald es nur einzelnen Usern oder Gruppen erlaubt sein soll, die festgelegten Lokalen Passwörter im AD zu sehen, benötigt der entsprechende Personenkreis die Berechtigung “Control_Access” auf das Attribut ms-Mcs-AdmPwd attributes. Dies lässt wiederrum mit einem schicken, schlanken PowerShell-Befehl erledigen
- Set-AdmPwdReadPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>
Hinweis: Es lassen sich mehrere Gruppen, durch Komma-Trennung angeben
Sollte der entsprechende Personenkreis auch Berechtigung auf das Attribut ms-Mcs-AdmPwdExpirationTime erhalten, lässt sich dies seperat mit dem folgenden Befehl festlegen:
- Set-AdmPwdResetPasswordPermission -OrgUnit <name of the OU to delegate permissions> -AllowedPrincipals <users or groups>
Den nun festgelegten Personenkreis kann auf den jeweiligen Clients der FAT-Client zum einfachen auslesen der Lokalen Passwörter zur Verfügung gestellt werden.
Entfernen der Erweiterten Berechtigung
- Öffnet ADSI-Edit
- Rechts Klick auf die OU, die zu managende LAPS-Clients enthält und Eigenschaften auswählen
- Wahl des Security-Tabs -> Erweitert/Advanced
- Auswahl der Gruppe die keine Berechtigung haben soll
- Deaktivieren des Haken für “All extended rights”
Gruppenrichtlinien
Sobald alle Schritte abgeschlossen wurden und die Client Side Extension bereits an Clients ausgerollt wurde, kann die Konfiguration der Gruppenrichtline erfolgen. Vergewissert euch, das die notwendigen Templates, nach Installationsabschluss, im zentralen Domänenstore kopiert wurden (wie unter Installation beschrieben). Sobald ihr eine Gruppenrichtlinie im Gruppenrichtlinieneditor öffnet, findet ihr die Einstellungen unter “Computer Configuration\Policies\Adminstrative Templates\LAPS”
Wie ihr seht, lassen sich hier lediglich 4 Einstellungen vornehmen.
- Unter “Passwort Settings” ist die Komplexität des Passworts zu konfigurieren. Dies sollte natürlich mit der Domänenrichtlinie für die Kennwortkomplexität übereinstimmen, sonst kommt es zu Fehlern.
- “Name of administrators account to manage”diesen braucht ihr nicht zu konfigurieren, wenn es der Lokale Admin ist, dieser wird anhand der SID ermittelt
- “Do not allow password expiration time longer than required by policy” Legt fest, ob das max. Passwortalter auch bei manuellen Zurücksetzen gilt
- “Enable local admin password management” aktiviert das management der lokalen Administratorpasswörten
Passwort manuell zurücksetzen
Dies lässt sich ebenfalls mit dem UI-Client vornehmen. Dazu startet ihr diese, wählt den gewünschten Computernamen aus und klickt auf “Set”. Für diesen Vorgang benötigt der User entsprechende Schreibberechtigung auf das AD-Attribut.
Clientmanagement
Passwort anzeigen
Nachdem alle Einstellungen vorgenommen und die Gruppenrichtlinien auf den Clients angewandt wurden, lassen sich die erzeugten Kennwörter in den Computereigenschaften auslesen. In meinem Fall sieht das ganze wie folgt aus:
Die Zeit wird standardmäßig als Greenwich Time angezeigt und lässt sich manuell mit folgendem Powershell Befehl ändern
- w32tm /ntte <zahl zum konvertieren>
Mit dem Fat Client ist die Anzeige des Passworts und dessen Ablaufdatum grafisch möglich.
und zu guter letzt lässt sich dies auch per PowerShell anzeigen
- Get-AdmPwdPassword -ComputerName <computername>
Passwort zurücksetzen
Dies kann entweder über den Fat Client und den Button “Set” erfolgen, nachdem zuvor der Computername angegeben wurde, oder per einfachem Powershell Befehl:
- Reset-AdmPwdPassword -ComputerName <computername> -WhenEffective <date time>
Fehlerbehebung
Nachdem das Tool in der Umgebung eingerichtet wurde, bringt es einige Logging-Optionen mit.
Client Logs
Alle Fehlerinformationen der Clide SideExtension werden im Application Log eingetragen. Die Anzahl der Einträge lässt sich über die Registry steuern und ist standardmäßig nicht aktiviert oder begrenzt.
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{D76B9641-3288-4f75-942D-087DE603E3EA}}\ExtensionDebugLevel
Mögliche Konfigurationen sind:
- 0 = Silent Mode – ausschließlich Fehler werden geloggt, ist die Standardeinstellung
- 1 = Fehler & Warnungen
- 2 = Ausführlicher Modus, alle Aktivitäten werden geloggt
Dazu kommen einige Event IDs, die sich im Zahlenbereich zwischen 2 bis 16 bewegen. Deren Bedeutung und mögliche Lösungen lassen sich im LAPS Operations Guide nachlesen.
Auditing
Das auslesen der Passwörter aus dem AD, lässt sich ebenfalls Loggen, wenn dies erforderlich ist. Diese Funktion wird per PowerShell aktiviert
- Set-AdmPwdAuditing –OrgUnit: <name of OU on which you want to setup the auditing> -AuditedPrincipals: :<identification of users/groups whose access to password shall be audited>
Nachdem die Funktion aktiviert wurde, wird jeder Passwort Lesevorgang im Sicherheitslog des Domänencontrollers unter der Event-ID 4662, mit dem Benutzerkonto, hinterlegt.
Fazit
LAPS bietet endlich die Möglichkeit die Kennwörter Lokaler Administratoren innerhalb einer Domäne vollautomatisch zu konfigurieren und dynamisch wechseln zu lassen. Die Konfiguration erhöht, mit vergleichsweise wenig Aufwand, die Sicherheit enorm. Einziger kleiner Wermutstropfen ist die notwendige Schemaerweiterung des AD. Wer bisher noch auf kreative oder umständliche Lösungen setzt, der sollte sich das Tool anschauen und den einen Einsatz evaluieren.
Geballtes #LAPS #Knowhow. Erst den #Blog #Eintrag von mir https://t.co/PolQ3PNuuX & danach #DeepDive;) https://t.co/YD6IznXJ6V