In Microsoft Windows 2000 und Windows Server 2003 Active Directory-Domänen konnte bisher nur eine Passwort- bzw. Kontosperrungsrichtlinie, die in der Default Domain Policy angegeben wurde, für alle Benutzer in der Domäne angewendet werden. Wenn verschiedene Kennwort-und Kontosperrungsrichtlinien für unterschiedliche Gruppen von Benutzern eingesetzt werden sollten, musste man mehrere Domains hierfür vorsehen – eine eher kostspieliege Alternative.
Ab Windows Server 2008 (R2) können nun fein abgestimmte Kennwortrichtlinien angelegt werden, welche man auf unterschiedliche Gruppen von Benutzern innerhalb einer einzigen Domäne anwenden kann. Zum Beispiel, um die Sicherheit von privilegierten Admin-Accounts zu erhöhen, kann man nun strengere Einstellungen vornehmen, als für unprivilegierte Benutzer-Accounts.
Um fein abgestimmte (fine-granulare) Kennwortrichtlinien zu speichern, enthält Windows Server 2008 zwei neue Objektklassen im Active Directory Domain Services (AD DS)-Schema:
- Password Settings Container
- Password Settings
Wie und welche Möglichkeiten es ab Windows Server 2008 zur Erstellung der granularen Passwortrichtlinien gibt, möchte ich kurz in diesem Howto nahebringen. Folgende Möglichkeiten stehen ab Windows Server 2008 zur Verfügung.
- AD-PowerShell
- LDIFDE
- ADSI-Editor
Im folgenden Howto erkläre ich, Schritt für Schritt wie ein PSO (Password-Settings-Object) im ADSI-Editor angelegt wird, den Attributen des Objekts Werte zuweist und am Ende die angepasste Passwort-Richtlinie Benutzern bzw. Gruppen zuweist.
Zuerst startet Ihr den ADSI-Editor auf dem Domain Controller mit Administratorrechten und verbindet Euch.
Nach der Verbindung navigiert Ihr zu: DN=<domain> CN=System CN=Passwords Settings und erstellt per Rechtsklick ein neues Objekt. Im darauffolgenden Dialogfenster wählt Ihr: msDS-PasswordSettings aus und klickt auf weiter. Sollte der Common-Name “System” einmal nicht zu sehen sein, klickt Ihr auf “Ansicht->erweiterte Features anzeigen” und CN=System sollte als Auswahlmöglichkeit erscheinen.
Im ersten Dialogfenster legt Ihr den CN fest. Dieser wird später im Container CN=System CN=Password Settings angezeigt. Legt hier bitte einen eindeutigen Namen fest. Dies erleichtert Euch das Auseinanderhalten, falls Ihr mehrere granulare Passwortrichtlinien erstellen möchtet.
msDS-PasswordSettingsPrecedence
Unter PasswordSettingsPrecedence könnt Ihr einen Wert zwischen 0 und 65535 auswählen. Je kleiner der Wert, desto eher wird die Passwortrichtlinie später auf Eure Benutzer angewendet, falls mehrere Passwortrichtlinien auf ein und denselben Benutzer wirken sollten.
msDS-PasswordReversibleEncryptionEnabled
Holprig mit “Passwort-Rückwärts-Verschlüsselung-eingeschaltet” übersetzt, korrekt heißt es Kennwörter mit umkehrbarer Verschlüsselung speichern. Dieses Attribut nimmt einen booleschen Wert an. True bedeutet in diesem Fall, dass die Passwörter im Klartext gespeichert werden. Somit versteht sich von selbst, dass man aus Sicherheitsgründen an dieser Stelle den Wert “false” einzugeben hat.
msDS-PasswordHistoryLength
Dieses Attribut gibt an, wie lange sich Windows alte Passwörter merken soll. Das heißt, wenn Ihr Euch bei Windows anmeldet und zum Passwortwechsel aufgefordert werdet, dürft Ihr keines der alten Passwörter als neues Passwort verwenden. In unserem Fall sind es die letzten 24 Passwörter.
msDS-PasswordComplexityEnabled
Hiermit schaltet Ihr die Passwortkomplexität ein oder aus. Sollen Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen gemischt verwendet werden oder nicht.
msDS-MinimumPasswordLength
Wie lang muss das Passwort mindestens sein!
msDS-MinimumPasswordAge
Wie alt muss das Passwort mindestens sein, damit es wieder geändert werden darf. Dabei wird eine Zeitangabe nach folgendem Format abgefragt: “Tage : Stunden : Minuten : Sekunden”. Achtet hierbei bitte darauf, dass einführende “0” eingeben wird. Ansonsten kann es sein, dass Ihr am Ende der Eingabe eine Fehlermeldung erhaltet, da ein Wert nicht dem korrekten Format entspricht.
msDS-MaximumPasswordAge
Wie alt darf das Passwort maximal sein, bevor es abläuft und geändert werden muss. Hierbei wird das gleiche Format wie bei “msDS-MinimumPasswordAge” verwendet.
msDS-Lockout-Threshold
Dieser Wert gibt an, nach wie viel Login-Fehlversuchen das Benutzerkonto gesperrt werden soll.
msDS-LockoutDuration
Dieses Attribut gibt an, wie lange ein Benutzerkonto nach Login-Fehlversuchen gesperrt bleiben soll, bis es automatisch wieder entsperrt wird. Format: “Tage : Stunden : Minuten : Sekunden” (z.B. für 30 Minuten: “00:00:30:00”)
Damit sind wir mit dem ersten Schritt, dem Anlegen einer granularen Passwortrichtlinie fertig und werden im zweiten Schritt diese Passwortrichtlinie einem Benutzer zuordnen.
Hier sehen wir, dass wir die granulare Passwortrichtlinie erstellt haben.
Per Doppelklickt oder Rechtsklick auf die Policy und dann auf “bearbeiten” öffnet sich das Kontextmenü, in dem alle Attribute aufgeführt werden, welche das PSO (Password Setting Object) aufnehmen kann.
Hier finden wir auch unsere Werte wieder, die wir hier auch noch nachbearbeiten könnten und das Attribut:
msDS-PSOAppliesTo
Mit diesem Attribut können wir festlegen, auf wen denn unsere Passwortrichtlinie wirken soll. Ich wähle dazu einfach meinen Benutzernamen in der Testumgebung aus und bestätige alles mit OK. Damit wirkt die Passwortrichtlinie auf mich, bei der nächsten Änderung meines Passwortes.
An dieser Stelle sehen wir, dass ich hinzugefügt wurde. Momentan steht an dieser Stelle zwar noch die SID, welche aber nach kurzer Zeit in meinen Namen aufgelöst wird.
Das war es zur Erstellung von granularen Passwortrichtlinien (fine-grained password policies) mit Hilfe des ADSI-Editors unter Windows Server 2008 R2.
Viel Grüße,
Patrick Jahn
