Überwachung von AdminSDHolder bzw. adminCount im AD mit PRTG
Windows "tagged" Administratorkonten. Dies geschieht mit Hilfe des Attributs adminCount des AD-Objekts des betreffenden Benutzers.
Wird der Benutzer einer Administratorgruppe hinzugefügt, wird dieses Attribut auf einen Wert > 0 gesetzt. Wird der Benutzer aus der Administratorengrupe entfernt, wird das vorhandene Attribut nicht verändert. Das Attribut adminCount existiert und ist größer 0 wenn das Konto entweder Admin ist oder einmal war. Dieses Verfahren wird (verkürzt ausgedrückt) auf alle Gruppen angewendet, die irgendetwas auf einem Domänencontroller zu melden haben könnten. Wichtig: auch das krbtgt-Konto wird auch überwacht, dieses ist aber normalerweise deaktiviert.
Nähere Infos gibt es z.B. unter:
Wir überwachen mit PRTG die Anzahl der Konten über einen Powershell-Sensor.
Zunächst erstellt man ein Powershellskript unter C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXE mit folgendem Inhalt:
Das Skript liest alle AD-Benutzer aus und filtert, ob diese aktiviert sind und das Attribut adminCount größer als Null ist. Wenn man die deaktivierten Konten mitzählen will, kann man einfach den Filter anpassen:
oder nur die deaktivierten Konten:
Alternativ kann man einen XML-Sensor für alle 3 verwenden.
Will man wissen, welche Benutzer betroffen sind, kann man schnell in Powershell über
nachschauen.
Der Sensor wird als Custom Skript in PRTG eingebunden.
https://kb.paessler.com/en/topic/71356-guide-for-powershell-based-custom ... , am besten auf dem "Gerät der Probe" um Remote-Abfrageprobleme zu vermeiden.
Für den Sensor legt man dann in der PRTG-UI Grenzwerte fest, so dass er bei Änderungen von Grün auf Rot schaltet. Dabei sieht besser aus, wenn man mit +-0,5 arbeitet, damit man den grünen Bereich auch gut sehen kann. Bei uns sind 6 Konten "normal". "Oberer Grenzwert für Fehler (#)" steht auf 6,5 und "Unterer Grenzwert für Fehler (#)" auf 5,5.
Der Sensor schaltet dann auf rot, sobald sich die Anzahl der Benutzer ändert, bei denen adminCount größer 0 ist. Das ist der Fall, wenn jemand eine Admin-Berechtigung zugewiesen bekommt, die er vorher nicht hatte. Man kann also schön nachverfolgen, ob da jemand einen Benutzer mit neuen Adminrechten ausgestattet hat. Wenn das OK ist, kann man den Schwellenwert anpassen, wenn nicht, hat man ein Problem. Überwacht man die deaktivierten Konten, kann man überprüfen, ob vielleicht jemand vergessen hat, ein Admin-Konto nach getaner Arbeit wieder zu deaktivieren.
Grüße
lcer
Edit: XML-Sensor
Edit: Typos
Wird der Benutzer einer Administratorgruppe hinzugefügt, wird dieses Attribut auf einen Wert > 0 gesetzt. Wird der Benutzer aus der Administratorengrupe entfernt, wird das vorhandene Attribut nicht verändert. Das Attribut adminCount existiert und ist größer 0 wenn das Konto entweder Admin ist oder einmal war. Dieses Verfahren wird (verkürzt ausgedrückt) auf alle Gruppen angewendet, die irgendetwas auf einem Domänencontroller zu melden haben könnten. Wichtig: auch das krbtgt-Konto wird auch überwacht, dieses ist aber normalerweise deaktiviert.
Nähere Infos gibt es z.B. unter:
- https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/sec ...
- https://social.technet.microsoft.com/wiki/contents/articles/22331.admins ...
- https://www.msxfaq.de/konzepte/adminsdholder.htm
Wir überwachen mit PRTG die Anzahl der Konten über einen Powershell-Sensor.
Zunächst erstellt man ein Powershellskript unter C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXE mit folgendem Inhalt:
$admincount = (get-aduser -Filter {(admincount -gt 0) -and (enabled -eq $true) } -Properties adminCount).count
$admincount = [math]::truncate( $admincount)
write-output "$($admincount):OK"
$admincount = (get-aduser -Filter {admincount -gt 0 } -Properties adminCount).count
$admincount = [math]::truncate( $admincount)
write-output "$($admincount):OK"
$admincount = (get-aduser -Filter {(admincount -gt 0) -and (enabled -eq $false) } -Properties adminCount).count
$admincount = [math]::truncate( $admincount)
write-output "$($admincount):OK"
Alternativ kann man einen XML-Sensor für alle 3 verwenden.
$admincount1 = [math]::truncate((get-aduser -Filter {admincount -gt 0 } -Properties adminCount).count)
$admincount2 = [math]::truncate((get-aduser -Filter {(admincount -gt 0) -and (enabled -eq $true) } -Properties adminCount).count)
$admincount3 = [math]::truncate((get-aduser -Filter {(admincount -gt 0) -and (enabled -eq $false) } -Properties adminCount).count)
$StringWriter = New-Object System.IO.StringWriter;
$xmlWriter = New-Object System.Xml.XmlTextWriter $StringWriter
$xmlWriter.Formatting = [System.Xml.Formatting]::Indented
$xmlWriter.Indentation = 2;
$xmlWriter.WriteStartElement("prtg")
$xmlWriter.WriteStartElement("result")
$xmlWriter.WriteElementString("channel","adminCountUsers")
$xmlWriter.WriteElementString("value",$admincount1);
$xmlWriter.WriteEndElement()
$xmlWriter.WriteStartElement("result")
$xmlWriter.WriteElementString("channel","enabled adminCountUsers")
$xmlWriter.WriteElementString("value",$admincount2);
$xmlWriter.WriteEndElement()
$xmlWriter.WriteStartElement("result")
$xmlWriter.WriteElementString("channel","disabled adminCountUsers")
$xmlWriter.WriteElementString("value",$admincount3);
$xmlWriter.WriteEndElement()
$xmlWriter.WriteEndElement()
Write-Output $StringWriter.ToString();
Will man wissen, welche Benutzer betroffen sind, kann man schnell in Powershell über
get-aduser -Filter {(admincount -gt 0) -and (enabled -eq $true)}
Der Sensor wird als Custom Skript in PRTG eingebunden.
https://kb.paessler.com/en/topic/71356-guide-for-powershell-based-custom ... , am besten auf dem "Gerät der Probe" um Remote-Abfrageprobleme zu vermeiden.
Für den Sensor legt man dann in der PRTG-UI Grenzwerte fest, so dass er bei Änderungen von Grün auf Rot schaltet. Dabei sieht besser aus, wenn man mit +-0,5 arbeitet, damit man den grünen Bereich auch gut sehen kann. Bei uns sind 6 Konten "normal". "Oberer Grenzwert für Fehler (#)" steht auf 6,5 und "Unterer Grenzwert für Fehler (#)" auf 5,5.
Der Sensor schaltet dann auf rot, sobald sich die Anzahl der Benutzer ändert, bei denen adminCount größer 0 ist. Das ist der Fall, wenn jemand eine Admin-Berechtigung zugewiesen bekommt, die er vorher nicht hatte. Man kann also schön nachverfolgen, ob da jemand einen Benutzer mit neuen Adminrechten ausgestattet hat. Wenn das OK ist, kann man den Schwellenwert anpassen, wenn nicht, hat man ein Problem. Überwacht man die deaktivierten Konten, kann man überprüfen, ob vielleicht jemand vergessen hat, ein Admin-Konto nach getaner Arbeit wieder zu deaktivieren.
Exkurs
Das Zurücksetzten des adminCount Attributes ist ein eigenes Thema. Dazu gibt es mehrere Herangehensweisen. Man muss im Grunde- den Benutzer aus der auslösenden Gruppe entfernen
- das Attribut auf 0 setzen oder löschen
- die Sicherheits-Berechtigungen für das Benutzerobjekt korrigieren, denn die originalen Berechtigungen wurden mit den Vorgaben von AdminSDHolders ersetzt.
Grüße
lcer
Edit: XML-Sensor
Edit: Typos
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5735080246
Url: https://administrator.de/contentid/5735080246
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
Gruß,
Dani
Der Sensor wird als Custom Skript in PRTG eingebunden. Als Parameter gibt man die URL des Sperrliste an.
Was hast eine Sperrliste mit dem Sensor zu tun?Für den Sensor legt man dann in der PRTG-UI Grenzwerte fest, so dass er bei Änderungen von Grün auf Rot schaltet. Dabei sieht besser aus, wenn man mit +-0,5 arbeitet, damit man den Grünen Bereich auch gut sehen kann. Bei uns sind 6 Konten "normal". "Oberer Grenzwert für Fehler (#)" steht auf 6,5 und "Unterer Grenzwert für Fehler (#)" auf 5,5.
in wie fern sieht das besser aus?Gruß,
Dani