Wir bleiben noch beim Thema "Active Directory" sicherer machen. In diesem Falle geht es um die lokalen Administratoren in Verbindung mit LAPS.
Microsoft Server 2022: Einleitung was ist LAPS und wofür!
Jeder Admin kennt das Problem, Ihr nutzt z.B. eine OS-Deployment-Software und rollt neue Clients aus, doch auf allen Clients existiert logischerweise ein lokaler Administrator und alle haben nun das gleiche Passwort. In alten Tagen hatte ich "wenigstens" das Passwort mit zwei GPOs geändert. Einmal eine für Server und einmal eine für Clients, aber grundsätzlich besteht ja nach wie vor das Problem, dann haben zwar Server und Clients unterschiedliche Passwörter, aber untereinander sehr wohl das Gleiche.
LAPS (Local Administrator Password Solution) ist hier die Lösung.
Kurzfassung:
Es wird eine Schema-Erweiterung in der Domäne gemacht, wodurch dann zwei weitere Attribute bei den Computer-Objekten hinzu gefügt werden:
- ms-Mcs-AdmPwd
- ms-Mcs-AdmPwdExpirationTime
Am DC muss also nichts weiter gemacht werden als eine Schemaerweiterung und eine entsprechend GPO sowie diverse Berechtigungen, die das Kennwort und Ablaufdatum vorgibt. Es wird also kein Dienst oder sonst installiert.
Man könnte noch die UI installieren um die Passwörter später hierüber einzusehen oder eine Management-Maschine hierzu nutzen. Am Client hingegen wird ein Agent installiert.
Microsoft Server 2022: Vorbereitung DC
Machen wir uns doch gleich an die Installation. Die Installationsfiles bekommt Ihr hier: https://www.microsoft.com/en-us/download/details.aspx?id=46899
Im Grunde benötigen wir "eigentlich" nur die LAPSx.64.msi sofern Ihr keine anderen Systems als 64bit nutzt.
Sofern ihr meine Blog-/Videoreihe verfolgt und nachgebaut habt, dann existieren vllt. schon T0-Admins, diese brauchen keine Schema-Admin-Rechte. Das müssten wir an der Stelle nachholen. Wir müssen nun ein T0-Admin oder grundsäztlich einen Admin in die Schema-Admingruppe heben!
Da ich noch den "originalen" Built-In-Administrator habe, siehe Screenshot und zufälligerweise damit angemeldet bin
So hat dieser schon die entsprechenden Rechte.
Soweit so gut, wir Installieren also erst einmal "LAPSx64.msi"
Im Grund können wir hier eigentlich "alles" installieren, außer Ihr wollt die UI auf einem Management-Server nutzen anstatt einem DC, dann könnt Ihr euch hier "Fat clien ui" sparen.
Im nächsten Schritt müssen wir das Schema erweitern:
Import-Module AdmPwd.ps
Update-AdmPwdADSchema
Das war es auch schon. Absolut schmerzfrei
Microsoft Server 2022: Berechtigungen für Clients setzen
Jetzt müssen wir den Maschinen da draußen natürlich das Recht geben, dass Sie Ihre neuen Attributsfelder füllen dürfen. Wir suchen uns also den "distinguishedName" hierzu einfach einen rechten Mausklick auf eine OU, worin sich eure Maschinen befinden:
und den distinguishedName hier heraus suchen
Der Command setzt sich dann wie folgt zusammen:
Set-AdmPwdComputerSelfPermission -OrgUnit "OU=Abteilungen,DC=pampersjoe,DC=de"
Da ich dies für "Client" und "Server" machen möchte, so muss ich den Schritt natürlich für die OU, in der die Server sind, wiederholen.
Set-AdmPwdComputerSelfPermission -OrgUnit "OU=Server,DC=pampersjoe,DC=de"
Microsoft Server 2022: Rechte zum Passwort lesen setzen
Wir benötigen Leserechte für das Passwort. Domänen-Admins haben schon "Vollzugriff" auf die zwei Attribute. Arbeitet Ihr jedoch schon mit dem Tier-Konzept, dann müssen wir die jeweiligen Admins entsprechend berechtigen. D.h. wir geben T2-Admins Leserechte auf Clients und T1-Admins Leserechte auf Server.
Der Command setzt sich dann wie folgt zusammen:
Set-AdmPwdReadPasswordPermission -OrgUnit "OU=Abteilungen,DC=pampersjoe,DC=de" -AllowedPrincipals "T2-Admins"
Da ich dies ebenfalls für "Client" und "Server machen möchte, so muss ich den Schritt natürlich für die OU, in der die Server sind, ebenfalls wiederholen.
Set-AdmPwdReadPasswordPermission -OrgUnit "OU=Server,DC=pampersjoe,DC=de" -AllowedPrincipals "T1-Admins"
Microsoft Server 2022: GPO vorbereiten
Jetzt widmen wir uns den GPOs, hierzu lege ich für Clients und Server eine an. (eigentlich in meinem Fall unnötig, da ich in beiden das gleiche konfiguriert habe, aber solltet Ihr diese unterschiedlich konfigurieren wollen, dann eben wie im Bespiel zwei Stück anlegen)
- System_C_LAPS_Clients
- System_C_LAPS_Server
Noch ein Hinweis zu einer "Stolperfalle". Wenn Ihr die MSI installiert habt, dann installiert diese auch gleich die benötigten ADMX- und Language Files mit, allerdings in den "local Store" sprich auf:
C:\Windows\PolicyDefinition
da ich jedoch einen zentralen Store verwende:
\\<domäne>\Sysvol\<domäne>\Policies\PolicyDefinitions
so muss ich mir die Files erst rüber kopieren in den zentralen Store
JETZT sehe ich auch unter:
Computerkonfiguration --> Richtlinien --> Administrative Vorlagen
den Ordner LAPS
Wir müssen hier folgende Änderungen vornehmen bei:
- Password Settings (hier angeben, wie kryptisch das Passwort sein soll und das Ablaufdatum)
- Enable local admin password management (damit LAPS überhaupt etwas tut)
Nun noch die beiden GPOs an die jeweiligen OUs hängen.
Microsoft Server 2022: Client vorbereiten
Hier benutzt Ihr einfach die gleiche msi (LAPSx64.msi) wobei hier nichts verändert wird und einfach mit "weiter weiter fertigstellen" installieren.
Jetzt natürlich noch (für Ungeduldige wie mich) ein:
gpupdate
und gegenprüfen, ob die GPO auch greift mit gpresult -r Siehe da, das tut sie
Natürlich kann man diesen Weg gehen um eben mal schnell zu testen, ABER wer will das bei 1000den Clients manuell machen? Keiner! Also nutzt Ihr eure Deployment-Software z.B. SCCM, Baramundi, Empirum oder was auch immer Ihr habt und verteilt die MSI. Im "Notfall" könnte man dies auch via GPO machen.
Wie gewohnt beide der Paketierung:
msiexec /i LAPS.x64.msi /q
/i für "Install"
/q für Silent
Microsoft Server 2022: Installation prüfen
Die erste Prüfung können wir sehr schnell durchführen indem wir in die installierten Programme schauen. Dort sollte LAPS zu finden sein.
Microsoft Server 2022: Passwörter auslesen
Es gibt drei Methoden, wie Ihr das Passwort einsehen könnt:
Fat client ui
Sofern Ihr berechtigt seid, dann einfach das kleine Tool öffnen und den Namen des Hosts eintragen!
Über den Attributs-Editor bei dem jeweiligen Computerobjekt
Öffnet einfach euer gewünschtes Computerobjekt und navigiert euch zum Reiter "Attribut-Editor" zu den jeweilgen einträgen:
- ms-Mcs-AdmPwd
- ms-Mcs-AdmPwdExpirationTime
Auslesen via Powershell
Hierzu könntet Ihr entweder "Alle Maschinen" auslesen mit:
Import-Module admpwd.ps
Get-ADComputer -LdapFilter "(ms-Mcs-AdmPwd=*)" -Properties Name,ms-Mcs-AdmPwd | ft Name,ms-Mcs-AdmPwd -AutoSize
oder einen "einzelnen Host" mit
Get-AdmPwdPassword -ComputerName SRV01
Microsoft Server 2022: Allgemeines
Die Passwörter werden zwar verschlüsselt übertragen, ABER stehen im Klartext im Attributs-Editor! Allerdings können die Passwörter nur eingesehen werden, wenn hierzu Domänen-Adminrechte vorhanden sind mit Vollzugriff! Ein Normalo-Account hat nur Leserechte und kann diese Felder NICHT einsehen.
Ich habe zwar schon gehört, dass Leute das Passwort auslesen, in eine Datenbank schreiben und anschließend das PW löschen. Aber offen gestanden finde ich das leicht übertrieben. Alleine mit LAPS habt Ihr ja schon einiges an Sicherheit dazu gewonnen.
Microsoft Server 2022: Audit
Gleich vorweg, wie auch im Video beschrieben, ich nutze diese Funktion nicht, da ich zum Einen keine Notwendigkeit sehe und mir die Info auch zu kryptisch ist. Es besteht jedoch die Möglichkeit, dass Ihr ein Audit an den Start bringen könntet und einsehen könntet wer das Kennwort abgefragt hat.
Event --> Sicherheit --> ID 4662
Hierzu muss jedoch das vorher gemacht werden:
Set-AdmPwdAuditing –OrgUnit "OU=Server,DC=pampersjoe,DC=de" -AuditedPrincipals "T1-Admins"
Set-AdmPwdAuditing –OrgUnit "OU=Abteilungen,DC=pampersjoe,DC=de" -AuditedPrincipals "T2-Admins"
Aber warum sollte ich wissen wollen, ob ein Admin sich ein Passwort gezogen hat, wenn er selbst doch sowieso lokale Adminrechte hat.
Egal ich bin an der Stelle durch und hat wie immer richtig Spaß gemacht.
Ich hoffe es hat euch geholfen und wünsche viel Spaß beim Nachbauen.