Schutz vor Account Lockouts auch für andere Konten als “Administrator”?

Hallo, Fabian hier. Neulich habe ich an einer Kundenanfrage gearbeitet, bei der ich feststellen mußte, daß die Antwort bisher nicht besonders gut dokumentiert bzw. in unseren Dokumentationen nicht sonderlich gut herausgearbeitet wurde: Ist es möglich, neben dem ersten Administrator Konto (standardmäßig mit dem sAMAccountName “Administrator”) einer Windows Server 2003 Domäne, auch andere Benutzerkonten vor Account Lockouts zu schützen?

Um nicht einfach nur “nein” zu sagen, hier ein paar erläuternde Sätze dazu:

Standardmäßig ist das erste Benutzerkonto einer Domäne vor Account Lockouts (deutsch: “Kontosperrungen”) geschützt. D.h. ist auf einer Domäne eine Password Policy (deutsch: “Kennwortrichtlinie”) inklusive Account Lockout Policies (deutsch: “Richtlinie für Kontosperrung”) verknüpft, die beispielsweise nach 10 ungültigen Anmeldeversuchen das entsprechende Benutzerkonto sperrt, ist das “Administrator” Konto (oder mit anderem Namen, falls manuell umbenannt) davor geschützt, bei fehlschlagenden Logins gesperrt zu werden.

Man kann dieses Verhalten zwar auch ändern (siehe http://msdn.microsoft.com/en-us/library/ms679431(VS.85).aspx und http://support.microsoft.com/default.aspx?scid=kb;EN-US;885119), jedoch ist das selbsterklärend nicht immer und in jeder Umgebung uneingeschränkt empfehlenswert. 😉

Diese “Sperr-Resistenz” ist über den Schutz der RID (also “Relative Identifier” oder in diesem Fall auch “Benutzer ID”) dieses Kontos gewährleistet. Der entsprechende Account hält die RID “500” als letzten Teil seiner SID, so z.B. “S-1-5-21-105687452-965872365-2697845569-500”. Diese RID wird über die Konstante “DOMAIN_USER_RID_ADMIN” mit dem hexadezimalen Wert “0x000001F4” (= dezimal “500”) zur Verfügung gestellt, siehe http://msdn.microsoft.com/en-us/library/cc245516.aspx. Diese Konstante ist hardcoded in der Funktion, die die Account Lockouts für das “Administrator” Benutzerkonto in einer Domäne verhindert, und kann daher nicht verändert werden. Als Konsequenz ist es unter Windows Server 2003 innerhalb einer Domäne nicht möglich, zusätzliche Konten vor dem Account Lockout / der Kontosperrung zu schützen.

Muß man ein solches Account Lockout verhindern, gibt es im Moment zwei Möglichkeiten:

  1. Jede Domäne stellt eine Sicherheitsgrenze dar. Sind also bestimmte Konten besonders schützenswert, kann man diese in einer (Ressourcen-) Domäne erzeugen, die mit einer eigenen Domain Password Policy ausgestattet wird. In dieser Password Policy kann das das Account Lockout abgeschaltet oder die entsprechenden Werte verändert werden.
  2. Unter Windows Server 2008 gibt es die sogenannten “Fine Grained Password Policies”, die eigene Password Policies (und damit auch eigene Account Lockout Einstellungen) für Benutzer oder Globale Gruppen erlauben. Hierfür muß jedoch die Domäne auf den Domänenfunktionsmodus “Windows Server 2008” angehoben werden. Das bedeutet, daß alle DCs dieser Domäne auf Windows Server 2008 laufen müssen.

Sind zusätzlich “schützenswerte” Accounts von Account Lockouts in Windows Server 2003 Umgebungen betroffen, sollten natürlich die Ursachen dafür herausgefunden werden. In manchen Fällen kann es jedoch Hintergründe für die Lockouts geben, die nicht so einfach behoben werden können (oder sollen) und die beiden oben genannten Workarounds keine Alternative darstellen. In diesem Fall wäre eine denkbare “quick & dirty” Lösung, im besten Fall auf dem PDC-Emulator der entsprechenden Domäne je nach Anforderung alle 5 bis 15 Minuten die entsprechenden Accounts per Script, welches als geplanter Task läuft, wieder zu entsperren. Jedoch muß man sich hier im Klaren darüber sein, daß dies keine empfohlene Variante ist, da man sich damit neben einigen Performance-, Replikations- und Überwachungsschwierigkeiten auch eine große Sicherheitslücke in die Umgebung reißen kann.

Viele Grüße, Fabian.