monsitj - stock.adobe.com
Sichern und Wiederherstellen von AD-Gruppenmitgliedschaften
Gruppenmitgliedschaften sind ein zentraler Teil des Zugriffsmanagements in Active Directory. Wir erklären, wie Sie Mitgliedschaften sichern und nach einem Fehler wiederherstellen.
Active Directory-Gruppen und ihre Gruppenmitgliedschaften sind ein wichtiges Instrument zum Steuern der Sicherheit in Ihrer Umgebung. Wenn in diesem Bereich etwas schiefläuft, muss es schnell korrigiert werden.
Das Zuweisen von Zugriffsrechten über Gruppen ist eine der gängigsten Methoden, um die Rechte in Ihrer Active-Directory-Domäne zu steuern. Die meisten Unternehmen haben Hunderte, wenn nicht Tausende von Gruppen in ihrem Active Directory. Obwohl sie für das Unternehmen wichtig sind, ist das Sichern von AD-Gruppen und Gruppenmitgliedschaften zum Schutz vor Verlust keine häufige Aufgabe. Es gibt einige Optionen für das Sichern und Wiederherstellen von AD-Gruppenmitgliedschaften, die Administratoren kennen sollten, wenn Probleme auftreten.
Was sind Active Directory-Gruppenmitgliedschaften?
In Active Directory ist ein Sicherheitsprinzipal eine Entität, die das Betriebssystem authentifiziert. In Kontext von Active Directory werden die Sicherheitsprinzipale üblicherweise als Objekte bezeichnet. Die beiden häufigsten Sicherheitsprinzipale in Active Directory sind Benutzer- und Computerobjekte.
Ein Benutzerobjekt steht für eine Person oder einen Dienst, ein Computerobjekt für einen bestimmten Computer. Diese Objekte können Ressourcen in einer Domäne nur dann nutzen, wenn sie eine Erlaubnis für den Zugriff haben. So kann ein Benutzer beispielsweise auf einem Netzwerkdrucker drucken, wenn wir ihm den Zugriff auf die Ressource gewähren.
Für Ressourcen, auf die viele Personen oder Computer zugreifen müssen, ist es sinnvoller, diese Erlaubnis über eine Sicherheitsgruppe zu vergeben. Sicherheitsgruppen sind Sammlungen von Sicherheitsprinzipalen, die zu überschaubaren Einheiten zusammengefasst werden. Eine Sicherheitsgruppe kann eine beliebige Kombination von Benutzern, Computern und sogar andere Gruppen enthalten.
Das Konzept der Gruppenzugehörigkeit lässt sich auf verschiedene Weise betrachten. So bildet beispielsweise die Liste der Benutzer, Computer oder Gruppen, die einer Sicherheitsgruppe zugeordnet sind, die Gruppenmitgliedschaft einer Sicherheitsgruppe. Aber auch Benutzer und Computer haben Gruppenmitgliedschaftslisten. Eine Gruppenmitgliedschaftsliste für einen Benutzer wäre die Liste der Gruppen, in denen der Benutzer Mitglied ist. Wenn ich in diesem Artikel von einer Gruppenmitgliedschaft spreche, ist damit die Mitgliederliste in einer Sicherheitsgruppe gemeint.
Die Mitgliederliste einer Gruppe entsteht auf unterschiedlichen Wegen. Das erste Szenario ist, dass wir eine neue Gruppe erstellen und eine definierte Liste von Benutzern haben, die wir der Gruppe hinzufügen. In diesem Szenario packen wir alle Benutzer in einem einzigen Vorgang dazu.
Das andere, häufigere Szenario ist, dass Administratoren im Laufe der Zeit Personen zu einer bestehenden Gruppe hinzufügen. Bei sehr aktiven Gruppen kann die Liste schon seit Jahren Mitglieder sammeln. Wenn Sie die Gruppe löschen und neu erstellen, ist es aufgrund dieser inkrementellen Änderung im Laufe der Zeit schwierig, die Gruppe nach einem Ausfall händisch wieder zusammenzustellen. Es würde einen erheblichen Aufwand erfordern, all diese alten Anfragen zu finden und die Gruppenmitgliedschaft neu zu erstellen.
Wo werden die Informationen zur Gruppenmitgliedschaft gespeichert?
Active Directory ermöglicht es uns, Objekten Namen zu geben, die wiedererkennbar und vertraut sind. So benennen Administratoren beispielsweise Benutzerobjekte oft nach einer Kombination aus Vor- und Nachnamen des Benutzers. Die Namen von Computerobjekten basieren oft auf Hardware-Modellnummern, Abteilungsnamen oder Seriennummern von Firmeninventar.
Administratoren verwenden den Objektnamen, um Objekte im Verzeichnis zu identifizieren. Active Directory hingegen weist jedem Objekt eine Sicherheitskennung (SID) zu. Anhand der SID definiert und zu kontrolliert es, worauf ein Objekt zugreifen darf und worauf nicht. Active Directory verwendet SIDs, weil sich Namen ändern können, die SID für ein Objekt aber immer dieselbe ist.
Wenn wir eine Gruppe erstellen, weist die Active-Directory-Datenbank der Gruppe eine SID zu. Active Directory verwaltet in seiner Datenbank eine Tabelle für diese Gruppe und für die Mitglieder, die der Gruppe hinzugefügt werden.
Active Directory speichert und verfolgt Informationen über die Gruppe, einschließlich der Gruppen-SID, der SID jedes Objekts in der Gruppe und der SID anderer Objekte in Active Directory, welche die Einstellungen der Gruppe verwalten. Diese Informationen sind auf den ersten Blick versteckt, aber sie sind über die grafische Benutzeroberfläche und PowerShell zugänglich, wenn Sie wissen, wo Sie suchen müssen. Im folgenden Beispiel nutzen wir einen PowerShell-Befehl, um eine Zugriffskontrollliste für eine Gruppe zu lesen.
Get-ACL -path "ad:$($Group.distinguishedname)").access | select $selectprops
Was passiert, wenn mit Active Directory etwas schiefläuft?
Microsoft stellte Active Directory 1999 vor und hat seither mit jeder größeren Betriebssystemversion neue Funktionen veröffentlicht. Es ist eine der zuverlässigsten Software überhaupt, aber es kann immer noch etwas schief gehen.
So werden gelegentlich Objekte in der Datenbank so beschädigt, dass sie nicht mehr lesbar sind. Hierfür gibt es verschiedene Ursachen; die meisten davon sind auf Benutzerfehler zurückzuführen. Ein Beispiel ist, wenn zwei verschiedene Personen innerhalb eines sehr kurzen Zeitraums, zum Beispiel innerhalb weniger Sekunden, die gleichen Objekte ändern und die Änderungen einen Konflikt verursachen. Ein weiteres Beispiel ist die Beschädigung von Objekten beim Verschieben großer Datenmengen zwischen verschiedenen Organisationseinheiten (OUs) in Active Directory und das Unterbrechen des Schreibevorgangs.
Das sind seltene Ereignisse. Häufiger kommt es vor, dass der Administrator einen Benutzer oder eine Gruppe aus dem Active Directory entfernt, aber ein Verweis auf das Objekt bestehen bleibt. Dies geschieht, wenn Sie einen Benutzer oder eine Gruppe zu einem Ordner hinzufügen und das Objekt dann aus Active Directory löschen. In der Zugriffskontrollliste für den Ordner wird immer noch der Verweis auf das gelöschte Objekt angezeigt, mit einer SID anstelle des Objektnamens.
Was ist der Active Directory Tombstone-Prozess?
Microsoft hat schon sehr früh erkannt, dass Objekte in Active Directory geschützt werden müssen. Wenn der Admin ein Objekt – einen Benutzer, ein Computer, eine Gruppe, eine OU und andere – in Active Directory löscht, verschiebt das System das Objekt in einen versteckten Container in der Datenbank. Das Objekt erscheint nicht mehr in der Ansicht, aber es wurde nicht physisch aus Active Directory gelöscht.
Dies geschieht erst nach Ablauf einer bestimmten Zeitspanne. Dieser Abstand wird als Tombstone-Lebensdauer bezeichnet. Solange sie anhält, stellen Sie das Objekt über einen einfachen Prozess wieder her. Nach Ablauf der Tombstone-Zeit wird das Objekt physisch aus dem Active Directory entfernt und lässt sich nur aus einem früheren Offline Backup wiederherstellen.
Wie kann man die Lebensdauer des Active Directory Tombstones ändern?
Die Standardzeit für den Tombstone-Prozess betrug in der ersten Version von Active Directory 60 Tage. Microsoft hat die Standardzeit mit Windows Server 2008 auf 180 Tage erhöht. Wir können die maximale Tombstone-Lebensdauer in den neuesten Versionen von Active Directory auf 365 Tage anpassen. Um Ihre eigenen Einstellungen zu überprüfen, führen Sie die folgenden PowerShell-Befehle aus.
#Standard path for AD environments
$DefaultADPath = "CN=Directory Service,CN=Windows NT,CN=Services"
#Your corp's naming context
$ConfigNameContext = (Get-ADRootDSE).configurationNamingContext
#Create ADObject by joining variables
$ADObject = $DefaultADPath + "," + $ConfigNameContext
Get-ADObject -Identity $ADObject -Partition $ConfigNameContext -Properties * | select TombstoneLifeTime
Wie stellt man einen gelöschten Benutzer eines Gruppenobjekts wieder her?
Das Wiederherstellen eines Objekts aus dem ausgeblendeten Container ist heute dank PowerShell einfacher als in früheren Jahren. Auch das LDP-Tool oder NTDSUTIL sind geeignet, um gelöschte Objekte wiederzuholen. Wichtiger als die Wahl des Tools ist die Syntax, die Sie für die Wiederherstellung verwenden.
Active Directory verwendet LDAP, und dessen Syntax ist häufig etwas unverständlich. Für unsere Suche müssen wir einen LDAP-Filter verwenden, der zwar schneller Ergebnisse liefert als die standardmäßigen Active-Directory-Filter über PowerShell, aber sie sind schwer zu lesen oder zu schreiben. Ich setze sie sie nur unter besonderen Umständen ein, zum Beispiel bei der Wiederherstellung von Dateien.
Bevor wir damit loslegen, müssen wir aber die Informationen über das gelöschte Objekt finden. Wir verwenden das Cmdlet Get-ADObject und einen LDAP-Filter, um nur gelöschte Objekte abzufragen. Ohne den LDAP-Filter würden wir sowohl aktive als auch gelöschte Objekte zurückgeben. Wir könnten das Ergebnis immer noch finden, müssten aber einen potenziell riesigen Datensatz durchsuchen.
Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=*)" - IncludeDeletedObjects
Das Beispiel zeigt nur wenige gelöschte Objekte, was die Suche erleichtert. In einer Produktionsversion von Active Directory können jedoch Hunderte oder Tausende von gelöschten Objekten vorhanden sein. Sie müssen das Objekt, das Sie wiederherstellen möchten, in der Liste der gelöschten Objekte finden, was einfacher klingt, als es ist. Sie können den Namen des Objekts im Feld Name oder im Feld DistinguishedName finden. Sobald Sie wissen, wonach Sie genau suchen, ist es mit PowerShell-Code leicht zu finden.
Der folgende PowerShell-Befehl führt eine Suche nach einer Gruppe namens AppDeploy-PDFReader aus und speichert die Ausgabe in einer Variablen namens $DeletedObject. AppDeploy-PDFReader ist der Anfang einer längeren Zeichenfolge von Daten. Das Platzhalterzeichen * schließt alles in die Suche mit ein, was mit AppDeploy-PDFReader beginnt.
Get-ADObject -ldapFilter:"(msDS-LastKnownRDN=*)" – IncludeDeletedObjects
Sobald wir die Objektinformationen haben, stellen wir das Objekt mit dem Cmdlet Restore-ADObject wieder her. Dieses Cmdlet benötigt einen der folgenden Datentypen für eine erfolgreiche Objektwiederherstellung:
- ausgezeichneter Name;
- GUID (objectGUID);
- Sicherheitsbezeichner (objectSid); oder
- Security Account Manager-Kontoname (sAMAccountName).
Die Wiederherstellungssyntax ist sehr einfach, aber sie hat standardmäßig keine Ausgabe, was bedeutet, dass wir den Parameter -passthru verwenden müssen, um die Ergebnisse zu sehen. Das folgende PowerShell-Codebeispiel verwendet die ObjectGUID, um das wiederherzustellende Objekt zu identifizieren, aber Sie können auch einfach die Variable übergeben, und das Programm findet selbst heraus, welche Eigenschaft es abrufen soll.
Restore-ADObject $DeletedObject.objectGUID -passthru
Wie der Active Directory-Papierkorb funktioniert
Der Active-Directory-Papierkorb wurde in Windows Server 2008 R2 eingeführt und bietet Administratoren eine weitere Möglichkeit, gelöschte Active-Directory-Objekte über eine grafische Benutzeroberfläche relativ einfach wiederherzustellen. Es ist möglicherweise die beste Funktion, die in den letzten 15 Jahren für Active Directory eingeführt wurde. Sie wird Ihnen gute Dienste leisten, wenn ein kritisches Objekt – oder mehrere Objekte – fälschlicherweise gelöscht wurden.
Im vorherigen Beispiel haben Sie gesehen, dass die Wiederherstellung mit PowerShell nicht allzu schwierig ist. Der AD-Papierkorb verkürzt die Wiederherstellung eines gelöschten Objekts zu einem einfachen Vorgang, der nur ein paar Klicks erfordert. Der einzige Nachteil des AD-Papierkorbs ist, dass er schwer zu finden ist, wenn man ihn nicht kennt, und dass man ihn manuell einschalten muss, bevor man ihn benutzen kann.
Um den Status des Active-Directory-Papierkorbs zu überprüfen, geben Sie in PowerShell den folgenden Befehl ein; wenn er eine Liste von Bereichen zurückgibt, ist der AD-Papierkorb aktiviert.
Get-ADOptionalFeature "recycle bin feature" | select EnabledScopes
So aktivieren Sie den Active-Directory-Papierkorb
Es gibt zwei Methoden, um den Active Directory-Papierkorb zu aktivieren. Dabei ist jedoch zu beachten, dass Sie diesen Schritt nicht mehr rückgängig machen können.
Wenn Sie mit der grafischen Benutzeroberfläche besser zurechtkommen, verwenden Sie das Active Directory Administrative Center, indem Sie mit der rechten Maustaste auf den Domänennamen im linken Fensterbereich klicken und Papierkorb aktivieren auswählen.
Mit der PowerShell aktivieren Sie ihn folgendermaßen:
Enable-ADOptionalFeature -Identity 'Recycle Bin Feature' -Scope ForestOrConfigurationSet -Target 'mklab.local' -Server dc1
Welche Voraussetzungen müssen erfüllt sein, um den Active Directory-Papierkorb zu aktivieren?
Die folgenden Voraussetzungen müssen erfüllt sein, bevor Sie den Active Directory-Papierkorb verwenden können:
- Das Active Directory-Schema muss mindestens auf Windows Server 2008 R2 erweitert sein.
- Alle Domänencontroller in der Gesamtstruktur müssen Windows Server 2008 R2 oder höher sein.
- Der Forest und die Domänenfunktionsebene müssen Windows Server 2008 R2 oder höher sein.
Es gibt noch ein weiteres Element, das ordnungsgemäß funktionieren muss, aber nicht immer erwähnt wird. Die Replikation zwischen den Domänencontrollern muss auf dem neuesten Stand sein, und die Domäne muss in Ordnung sein.
So stellen Sie eine Gruppe mit dem AD-Papierkorb wieder her
Sobald Sie den Papierkorb aktiviert haben, ist die Wiederherstellung eines Objekts sehr einfach.
- Starten Sie zunächst das Active Directory Administrative Center. Sobald die Konsole geöffnet ist, suchen Sie nach einem Ordner namens Gelöschte Objekte.
- Klicken Sie auf den Ordner Gelöschte Objekte im linken Fensterbereich, um eine Liste der gelöschten Objekte anzuzeigen.
- Suchen Sie das Objekt, das Sie wiederherstellen möchten, klicken Sie mit der rechten Maustaste darauf und wählen Sie Wiederherstellen, um den Vorgang abzuschließen.
- Sie können Objekte auch an einem anderen Ort als dem ursprünglichen Speicherort wiederherstellen, wenn Sie dies wünschen.
So stellen Sie eine Gruppenmitgliederliste wieder her
Das Sichern und Wiederherstellen von Gruppenmitgliedschaften ist etwas schwieriger. Es ist nicht möglich, eine Gruppenmitgliedschaft über den eingebauten AD-Tombstone-Prozess oder den AD-Papierkorb wiederherzustellen.
Es gibt keinen Mechanismus zum Wiederherstellen einer Gruppenmitgliedschaftsliste, da Active Directory die Gruppenmitgliedschaftsdaten nicht speichert, wenn sie sich ändern. Die einzigen diesbezüglichen Daten, die aufgezeichnet werden, sind die separaten Einträge im Sicherheitsereignisprotokoll, in denen der Vermerk zu finden ist, wenn es Änderungen an einer Mitgliedschaft gibt und welches Objekt entfernt wurde. Das hilft Ihnen also nicht weiter – was können wir jetzt tun?
Ein Sicherungsplan für Active Directory oder jede andere wichtige Infrastruktur sollte sich nie nur auf einen Papierkorb verlassen. Sie sollten auf jeden Fall regelmäßig Backups erstellen. Diese Sicherungen enthalten Kopien der Gruppen und der Gruppenmitglieder. Sie können dann die Gruppenmitgliedschaft wiederherstellen, indem Sie den Sicherungszeitrahmen für die Wiederherstellung des Objekts wählen.
Backup-Anwendungen für Active Directory sind so alt wie Active Directory selbst. Es stehen viele Produkte von Drittanbietern zur Auswahl, und auch Microsoft hat ein Sicherungsprogramm in Windows integriert, das Sie jedoch erst installieren müssen.
Was sind mögliche Probleme bei der Wiederherstellung von Active Directory-Objekten?
Wenn Sie eine gelöschte AD-Gruppe mit einer beliebigen Methode wiederherstellen – dem AD-Papierkorb, der Offline-Sicherung oder dem Tombstone-Prozess – gibt es einen möglichen Nachteil. Ein Gruppenobjekt enthält mindestens zwei Informationen: die Gruppeninformationen und die Informationen über die Gruppenmitgliedschaft. Wenn wir die Gruppe und auch das Objekt eines Gruppenmitglieds löschen, müssen wir beide Objekte wiederherstellen, damit die Gruppenmitgliedschaft korrekt angezeigt wird.
Im folgenden Beispiel habe ich die Gruppe Splunk Admins und dann das Objekt DGreenhaus, das einzige Mitglied der Gruppe Splunk Admins, gelöscht. Ich habe jedoch nur das Gruppenobjekt wiederhergestellt. Somit hat die Gruppe nun keine Mitglieder mehr.
Wenn ich nun das DGreenhaus-Objekt wiederherstelle, wird der Benutzer wieder in die Liste der Gruppenmitglieder aufgenommen.
Wenn Sie vorsichtig sind, können Sie Probleme bei der Wiederherstellung von Active Directory vermeiden
Active Directory verfügt über zwei Tools zum Wiederherstellen von Active-Directory-Gruppen und deren Gruppenmitgliedschaften. Gelöschte Objekte sind mindestens 180 Tage lang über den integrierten Tombstone-Prozess verfügbar. Der AD-Papierkorb macht die Wiederherstellung von Objekten zu einer einfachen Aufgabe. Der einzige Nachteil ist, dass Active Directory eine frühere Version der Gruppenmitgliedschaftsliste einer Gruppe nicht wiederherstellen kann. Das ist jedoch kein großes Problem, wenn Sie regelmäßig Offline-Sicherungen durchführen.