Passwortverwaltung der lokalen Administratoren mit LAPS

In vielen Umgebungen werden für die lokalen Administratorkonten Passwörter verwendet, die auf allen Systemen dann gleich sind. Das ist einfach, aber aus Sicherheitsaspekten in vielfacher Hinsicht nicht zu empfehlen:

  • Wenn Mitarbeiter das Unternehmen verlassen und diese Kennwörter kennen, verlässt auch das Kennwort das Unternehen.
  • Wenn das Kennwort auf allen Servern gleich ist, sind im Falle einer Kompromitierung eines Servers alle Server kompromitiert.
  • etc.

Früher konnten in solchen Fällen die Group Policy Preferences genutzt werden, um Passwörter für lokale Konten zu ändern – auch das ist aus Sicherheitsgründen nicht die beste Lösung, da das Kennwort im SYSVOL Ordner der Domäne in Klartext abgelegt wurde – aber dies hat Microsoft (aus genau diesem Grund) unmöglich gemacht, indem in GPPs keine Passwörter mehr gespeichert werden können.

Alternativ gibt es die Möglichkeit, so etwas per PowerShell zu scripten, aber auch das ist nicht immer einfach und ratsam.

Microsoft hat für diesen Zweck daher eine Passwort Management Lösung bereitgestellt, die Local Administrator Password Solution (oder kurz: LAPS). Die Anwendung und die komplette Dokumentation kann direkt von der Microsoft Seite heruntergeladen werden: https://www.microsoft.com/en-us/download/details.aspx?id=46899.

Wie funktioniert LAPS?

LAPS besteht aus zwei Komponenten, einer Client-Komponente und den Management Tools. Der Client steht als MSI Paket zur Verfügung und wird als Client-Side Extension auf den entsprechenden Servern/Clients installiert. Diese wiederum schreibt seine Informationen in zwei Attribute des AD-Computer-Objekts, die durch eine Schemaerweiterung implementiert werden. Für die Schemaerweiterung wird ein PowerShell Script mitgeliefert.

Für die Administration der LAPS Clients stellt Microsoft ADMX-Templates für die Gruppenrichtlinienverwaltung zur Verfügung. Über GPOs können dadurch Richtlinien für die lokalen Administrator-Passwörter konfiguriert werden wie z.B. Kennwortlänge und maximales Kennwortalter. Darüber hinaus gibt es installierbare Management Tools mit einer GUI und einem PowerShell Modul.

LAPS unterstützt alle Windows Systeme ab Windows XP und Windows Server 2003 SP1. Ebenfalls muss das Forest- und Domain-Functional Level Windows 2003 oder höher sein. Daraus schlussgefolgtert ist LAPS auch nur für Domain-joined Clients/Server möglich. Standalone-Systeme oder Workgroups werden nicht unterstützt.

Installation der LAPS Management Tools

Vor der Installation der Clients ist die Installation der Management Tools erforderlich. Hierzu startet man die heruntergeladene LAPS.x64.msi (bzw. die LAPS.x86.msi bei 32-Bit Systemen) , deaktiviert bei den zu installierenden Komponenten die Optionen AdmPwd GPO Extension und aktiviert die Option Management Tools inkl. der Unter-Optionen. LAPS Managent Tools benötigt .NET Framework 4.0 und PowerShell 2.0 oder höher.

Konfiguration

Als Erstes importieren wir alle benötigten PowerShell Module.

Import-Module AdmPwd.ps

Schemaerweiterung

Um die AD Schemaerweiterung nach Abschluss der Installation durchzuführen startet man die PowerShell als Administrator mit Schema-Admin Rechten und führt die folgenden Schritte aus:

Update-AdmPwdADSchema

Das Schema-Update fügt die folgenden beiden Attribute hinzu:

  • ms-Mcs-AdmPwd – Speichert das Passwort
  • ms-Mcs-AdmPwdExpirationTime – Speicher die Zeit bis zur nächsten Passwortänderung

User/Group AD Berechtigungen

Da das Passwort im AD-Attribut in Klartext steht, ist sicherzustellen, dass die Zugriffe darauf auf die Computer und berechtigte Administratoren beschränkt werden. Dazu werden erst über Active Directory Users and Computers MMC (oder ADSI Edit MMC) die All extended rights Rechte für alle unberechtigten Benutzer/Gruppen auf der OU der verwalteten Computer entfernt und danach explizite Zugriffsrechte für Administratoren per PowerShell gesetzt.

Zuerst ermittelt man mit folgendem Befehl alle Users/Groups, die auf der zu verwaltenden OU All extended rights Rechte besitzen:

Find-AdmPwdExtendedRights –Identity "<OU-Name>"

Standardmäßig sind hier Domain Admins und Enterprise Admins berechtigt. Sind bereits davon abweichende Berechtigungen konfiguriert oder sollen die gesetzten Berechtigungen geändert werden, lässt sich dies über die Active Directory Users and Computers MMC umsetzen.

In der MMC aktiviert man zuerst im Menü View die Advanced Features.

dsa.msc -> View -> Advanced Features

dsa.msc -> View -> Advanced Features

Im Anschluss navigiert man zur entsprechenden OU, wechselt in den OU Properties auf den Security Tab und startet die Advanced Security Einstellungen.

OU -> Properties -> Security -> Advanced

OU -> Properties -> Security -> Advanced

In den Advanced Security Einstellungen selektiert man die zu bearbeitende Gruppe und bearbeitet sie mit Edit.

Advances Security Settings -> <User/Group> -> Edit

Advances Security Settings -> <User/Group> -> Edit

In der Liste der Permissions sucht man die Berechtigungen All extended rights und stellt sicher, dass diese Rechte deaktiviert sind.

Permissions -> All extended rights => UNCHECK!

Permissions -> All extended rights => UNCHECK!

Im Anschluss können die neuen Berechtigungen konfiguriert werden. Durch mehrfache Ausführung mit mehreren OUs, Users und/oder Groups können auch granulare Berechtigungen und multiple OUs für LAPS konfiguriert werden.

Set-AdmPwdReadPasswordPermission -OrgUnit <OU-Name> -AllowedPrincipals <Domain>\<Admin-User/-Group>

Computer AD Berechtigungen

Nachdem die User/Group Berechtigungen im AD konfiguriert sind, sind noch die Berechtigungen für Computer zu aktivieren, um die vorher neu hinzugefügten AD Attribute ändern zu können.

Set-AdmPwdComputerSelfPermission -OrgUnit <OU-Name>

Gruppenrichtlinien

Zum Steuern der Einstellungen per Group Policy müssen die entsprechenden ADMX und ADML Dateien noch kopiert werden, vorzugsweise in den Central Store für die GPO Verwaltung. Die entsprechenden Dateien lauten:

  • %SystemRoot%\PolicyDefinitions\AdmPwd.admx
  • %SystemRoot%\PolicyDefinitions\en-US\AdmPwd.adml

Danach können die LAPS Einstellungen über den Group Policy Editor (Computer Configuration -> Administrative Templates -> LAPS) konfiguriert werden.

  • Enable local admin password management – Aktiviert Passwort Management per LAPS
  • Password Settings – Konfiguriert die Passwort Komplexität, die Passwort Länge und das Passwort Alter in Tagen
  • Name of administrator account to manage – Name des zu verwaltenden lokalen Administrator Kontos. Die Einstellung muss unkonfiguriert bleiben, wenn der Built-in Admin verwaltet werden soll, selbst wenn dieser umbenannt ist. Der Built-in Admin wird anhand seiner well-known SID identifiziert. Nur wenn ein eigens dafür angelegter lokaler Admin verwaltet werden soll, ist die Einstellung zu konfigurieren.
  • Do not allow password expiration longer than required by policy – Verhindert ein längeres Passwort Alter, als das in den Group Policy Security Settings konfigurierte
Installation der LAPS Client-Side Extensions

LAPS benötigt auf jedem betroffenen System das passende MSI-Paket, welches per Default nur die LAPS Client-Side Extensions installiert. Dies kann entweder per GPO, Softwareverteilung oder manuell über folgendes CLI-Kommando geschehen (je nach OS Architektur):

msiexec /i <File-Location>\LAPS.x86.msi /quiet
msiexec /i <File-Location>\LAPS.x64.msi /quiet

Im Anschluss wird noch ein Update der Group Policies benötigt, danach wird das Passwort des lokalen Administrators gemäß den gemachten Einstellungen geändert.

Kennwort anzeigen

Nachdem das Passwort geändert ist, kennen wir das neue Passwort jetzt nicht mehr – ist ja der Sinn der Sache. Trotzdem kann es vorkommen, dass wir uns mit dem lokalen Administrator anmelden müssen, z.B. gerne bei XenServer VMs wenn die XenServer Tools aktualisiert werden, währenddessen wird die NIC gerne mal rausgeschmissen und eine AD Anmeldung ist nicht möglich.

Hierfür gibt es die LAPS UI in den Management Tools.

LAPS UI

LAPS UI

Auch mit der PowerShell kann das neue Passwort ausgegeben werden:

Import-Module AdmPwd.ps
Get-AdmPwdPassword -ComputerName <LAPS-Client-Hostname>

Statt dem kompletten Namen funktionieren auch Platzhalter.

Sonstige Funktionen

Vorzeitiger Passwort Reset

Das PowerShell Modul für LAPS ermöglicht es auch, einen Reset des Passworts zu erzwingen, obwohl das Ablauf-/Änderungsdatum noch nicht erreicht ist.

Import-Module AdmPwd.ps
Reset-AdmPwdPassword –ComputerName <LAPS-Client-Hostname>

Audit von Passwort-Zugriffen

Neben den Audit-Möglichkeiten die im AD vorhanden sind, lässt sich für LAPS individuell konfigurieren (z.B. falls das Audit im AD nicht aktiviert ist). Idealerweise auditiert man die Gruppe Everyone; wer möchte, kann dies aber durch Angabe einer anderen Gruppe einschränken.

Import-Module AdmPwd.ps
Set-AdmPwdAuditing -OrgUnit <OU-Name> -AuditedPrincipals:Everyone

Ist das LAPS Auditing aktiviert, werden Passwort Zugriffe im Security Eventlog auf den Domain Controllern mit Event-ID 4662 protokolliert und lassen sich durch einen entsprechenden Filter recht einfach ausfindig machen.

Client Log

Standardmäßig verfügt LAPS Client-seitig nicht über ein Log, da es sich ja eigentlich nicht um eine Anwendung, sondern nur über eine Client-side Extension handelt. Das lässt sich allerdings wiederum nutzen, da für CSEs über die Registry Logging aktiviert werden kann – so auch für LAPS.

reg add HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{D76B9641-3288-4f75-942D-087DE603E3EA} /v ExtensionDebugLevel /t REG_DWORD /d {0|1|2} /f

0 – kein Logging (Standard)
1 – Error Logging
2 – Verbose Logging

LAPS Ereignisse werden im Anschluss im Application Eventlog protokolliert und lassen sich wieder durch einen Filter (Source = AdmPwd) ermitteln.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.