Mobile-Menu

AD bereinigen, absichern, beschleunigen und die Verwaltung erleichtern 11 Best Practices für das Active Diretory Cleanup

Von Thomas Joos 6 min Lesedauer

Administratoren von Active-Directory-Umgebungen sollten sich regelmäßig mit der Bereinigung der Umgebung befassen. Das bietet viele Vorteile. Neben einer höheren Leistung können dadurch Angriffsvektoren minimiert und die Verwaltung erleichtert werden. Der Beitrag gibt elf schnell umsetzbare Tipps.

Auch im Active Directory sollte man hin und wieder Ordnung schaffen – wobei es aus Sicherheitsgründen besser ist, wenn man hier kontinuierlich am Ball bleibt!(Bild:  © M. Johannsen - stock.adobe.com)
Auch im Active Directory sollte man hin und wieder Ordnung schaffen – wobei es aus Sicherheitsgründen besser ist, wenn man hier kontinuierlich am Ball bleibt!
(Bild: © M. Johannsen - stock.adobe.com)

Damit eine Active-Directory-Umgebung möglichst leistungsstark und sicher ist, sollten keine unnötigen Objekte in der Datenbank gespeichert und in der Infrastruktur vorhanden sein. Jedes Objekt ist generell ein Ziel für Angreifer und jeder Bestandteil der Infrastruktur kostet Leistung, muss gesichert werden und erfordert Verwaltung.

Viele der Aufgaben in diesem Text können automatisiert werden, indem Sie PowerShell-Skripte verwenden und diese Skripte mit dem Task Scheduler zu festgelegten Zeiten ausführen lassen. Das kann helfen, ein Active Directory sauber und sicher zu halten, ohne ständig manuelle Überprüfungen durchführen zu müssen.

Bildergalerie

1. Nicht mehr benötigte Benutzer und leere Gruppe identifizieren und löschen

Es ist es schon aus Interesse der Sicherheit sehr wichtig, nicht mehr benötigte Benutzerkonten aus der Umgebung zu entfernen. Nur das Deaktivieren reicht in vielen Fällen nicht aus, um die Umgebung vor Angriffen zu schützen, denn auch deaktivierte Konten sind weiterhin in der AD-Datenbank vorhanden. Aktivieren Angreifer ein deaktiviertes Konto und verwenden es für ihre Attacken, fällt das unter Umständen sogar nicht auf. Wir haben uns bereits im Beitrag "Aufräumen im Active Directory" mit dem Thema beschäftigt.

Leer Gruppen sind ebenfalls ein Sicherheitsrisiko und belegen unnötig Speicherplatz. In der PowerShell lassen sich diese Gruppen sehr einfach finden und zwar mit:

Get-ADGroup -Filter * -Properties Members | where { -not $_.Members}

Übersichtlicher wird die Darstellung mit:

Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name

2. Nicht nur löschen, sondern auch aktualisieren

Im oben genannten Beitrag "Aufräumen im Active Directory" zeigen wir ebenfalls, wie veraltete Benutzer- und Computerkonten gefunden und gelöscht werden können. Wichtig ist es an dieser Stelle aber auch, Informationen zu aktualisieren. Nicht immer stimmen alle Daten, die bei Computern und Benutzern eingetragen sind. Hier sollten regelmäßig alle Daten überprüft werden.

3. Gruppenmitgliedschaften prüfen und aktualisieren

Im Rahmen der Aktualisierung von Benutzern und Computern spielt auch das Aktualisieren der Gruppenmitgliedschaften eine wichtige Rolle. Häufig werden Benutzer oder Computer in Gruppen hinzugefügt, aber nicht aus Gruppen gelöscht, in denen sie nicht mehr Mitglied sein müssen. Das spielt für die Sicherheit eine wesentliche Rolle. Eine Inventarisierung der Gruppenmitgliedschaften für Benutzer und Computer ist genauso wichtig, wie das Entfernen oder zumindest das Deaktivieren nicht mehr benötigter Konten.

4. DNS-Einträge bereinigen

Häufig sammeln sich in den DNS-Zonen Einträge an, die nicht mehr aktuell sind. Da die Daten in vielen Fällen in der Active-Directory-Datenbank gespeichert sind, macht es Sinn, die Zonen ab und an zu überprüfen und veraltete Einträge zu entfernen. Dabei kann es sich um alte Host-Einträge aber auch um veraltete Einträge für Dienste handeln.

5. Firewallregeln auf Servern und Firewalls prüfen und aktualisieren

In vielen Umgebungen gibt es Firewallregeln auf Servern oder auf den Firewalls in der Umgebung selbst, die Pakete zu bestimmten IP-Adressen und Ports weiterleiten. Es kommt immer wieder mal vor, dass es diese Dienste nicht mehr gibt, oder die Dienste umgezogen sind. Häufig vergessen Admins, veraltete Regeln zu entfernen, vor allem in der Firewall auf den Windows-Servern, aber durchaus auch auf anderen Firewalls. Hier sollte regelmäßig überprüft werden, ob bestimmte Regeln auf den Firewalls überhaupt noch notwendig sind und ob die Einstellungen korrekt sind.

Es kommt auch immer wieder vor, dass Serverdienste bei Aktualisierungen den Port wechseln. Die Folge ist meist das Hinzufügen von weiteren Ports zu vorhandenen Regeln, ohne die alten Ports zu entfernen. Auch hier sollte beim Erweitern auch gleich aufgeräumt und nicht mehr beötigte Ports entfernt werden.

6. Regelmäßige Bestandsaufnahme durchführen – AD Info und Co.

Grundsätzlich ist es sinnvoll immer mal wieder eine Bestandsaufnahme von Active Directory durchzuführen und zu überprüfen, welche Benutzer- und Computerkonten vorhanden sind. Über das Durcharbeiten der Bestandsaufnahme fallen oft nicht mehr benötige Objekte, fehlerhafte Einstellungen, nicht mehr verwendete Attribute und vieles mehr auf. Das kostenlose Active Directory Reporting Tool AD Info kann über 190 Berichte erstellen. Die Berichte sind auf Basis der Objekte untergliedert, für die Berichte erstellt werden sollen. Grundsätzlich gibt es Berichte für Computer, Contacts, Containers & OUs, Groups, Group Policy Objects, Printers und Users.

7. Vertrauensstellungen überprüfen

Nicht mehr benötigte Vertrauensstellungen zu anderen Active-Directory-Umgebungen sollten ebenfalls regelmäßig überprüft und entfernt werden, wenn diese nicht mehr notwendig sind. Vor allem bei Migrationen zu Active Directory oder bei einer Umstrukturierung kommt es immer mal wieder vor, dass Vertrauensstellungen noch eingetragen und konfiguriert sind, aber nicht mehr gebraucht werden. Das lässt sich im Tool "Active Directory-Domänen und Vertrauensstellungen" in den Eigenschaften der Domäne überprüfen und steuern.

8. Fehler mit Vertrauensstellungen von Computern zur Domäne beheben

Es gibt auch Vertrauensstellungen zwischen Computern und der Domäne, in der Computer Mitglied sind. Diese Vertrauensstellungen haben zwar nichts mit den Vertrauensstellungen zwischen Domänen zu tun, liefern aber manchmal Fehler, wenn ein Computer längere Zeit nicht angemeldet war, oder wenn bei einer VM ein Snapshot zurückgesetzt wurde. Fehler in der Art „Die Vertrauensstellung xyz konnte nicht hergestellt werden“ tauchen auch auf, wenn Computer wiederhergestellt werden. Solche Fehler können in der PowerShell meistens leicht behoben werden. Dazu nutzt man folgendes Cmdlet:

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung
Reset-ComputerMachinePassword -Server <Domänencontroller> -Credential <Domäne>\<Administrator>

Ebenfalls hilfreich kann folgender Befehl sein:

Test-ComputerSecureChannel -Repair -Server -Server <Domänencontroller> -Credential <Domäne>\<Administrator>

Ob die Vertrauensstellung zwichen Domäne und Computer funktioniert, kann auch in der Befehlszeile überprüft werden:

nltest /sc_query:<Name der Domäne

9. Veraltete SIDs erkennen und löschen

In Laufe der Zeit sammeln sich in den Eigenschaften von Verzeichnissen oder anderen Objekte verwaiste SIDs an. Dabei handelt es sich um SIDs von Objekten, die bereits gelöscht sind, deren Einträge aber noch immer in Active Directory und den Eigenschaften von Objekten vorhanden sind.

Eine verwaiste SID (Security Identifier) tritt auf, wenn ein Benutzerkonto gelöscht wird, aber die SID dieses Kontos immer noch in der Zugriffssteuerungsliste (ACL) von Ressourcen vorhanden ist. Solche verwaisten SIDs können Sicherheitslücken darstellen und sollten bereinigt werden. Verwaiste SIDs können durch Überprüfung der ACLs von Ressourcen erkannt werden. In einer ACL erscheint eine verwaiste SID normalerweise als eine lange Zeichenkette statt als Benutzer- oder Gruppenname.

Ein Weg ist die Verwendung des Befehlszeilentools "icacls.exe". Mit diesem Tool können Sie die ACLs für eine Datei oder ein Verzeichnis anzeigen. Wenn es verwaiste SIDs gibt, werden diese in der Ausgabe angezeigt:

icacls C:\Pfad\zu\Ordner

Ein anderes nützliches Werkzeug zum Entfernen von verwaisten SIDs ist das PowerShell-Skript Remove-OrphanedSID. Für manuelle Änderungen können Sie die Sicherheitseinstellungen einer Datei oder eines Verzeichnisses öffnen und die verwaiste SID von dort aus entfernen. Es ist jedoch zu beachten, dass es sinnvoll ist, vor dem Entfernen von SIDs zu überprüfen, ob diese wirklich nicht mehr benötigt werden, da sonst möglicherweise der Zugriff auf bestimmte Ressourcen verweigert wird. Es wird auch empfohlen, ein Backup der ACLs zu erstellen, bevor Änderungen vorgenommen werden.

10. Identifizierung und Änderung von Benutzern mit der Option "Passwort läuft nie ab"

Aus Sicherheitsgründen kann es wünschenswert sein, dass Benutzerpasswörter regelmäßig ablaufen. Mit dem Cmdlet "Get-ADUser" können Admins Benutzer identifizieren, bei denen die Option "Passwort läuft nie ab" eingestellt ist:

Get-ADUser -Filter {PasswordNeverExpires -eq $true} -Properties PasswordNeverExpires

Wenn dieses Merkmal geändert werden soll, kann das Cmdlet "Set-ADUser" zum Einsatz kommen:

Get-ADUser -Filter {PasswordNeverExpires -eq $true} | Set-ADUser -PasswordNeverExpires $false

11. Benutzer mit abgelaufenen Kennwörtern erkennen

Mit der PowerShell lassen sich auch Benutzerkonten identifizieren, deren Passwörter abgelaufen sind. Dazu kommt das Cmdlet "Get-ADUser" zum Einsatz:

Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Dieser Befehl gibt eine Liste der Benutzerkonten zurück, deren Passwörter abgelaufen sind.

Alles, was Sie wissen müssen!

Active Directory & Domain Networking im Fokus

Active Directory & Domain Networking ist seit vielen Jahren ein Schwerpunktthema bei IP-Insider. Neben zahlreichen Fachartikeln finden Sie auch viele Definitionen und Begriffserklärungen aus diesem Themenkomplex auf unserer Website. Am Artikelende der Begriffserläuterung „Was ist Active Directory?“ haben wir als Service für Sie jetzt alle auf IP-Insider erschienenen Artikel rund um die Themen Active Directory, Entra ID und Domain Networking für Sie zusammengefasst. Viel Spaß beim Schmökern!

(ID:49629792)