Auch wenn Kerberos von seinem Konzept her nicht einfach ist, muss man sich – soweit man nicht die Delegationseinstellungen anpasst oder Sicherheitsarchitekturen auf Basis von Kerberos entwirft – als Administrator in den meisten Fällen nicht wirklich mit dem Protokoll auseinander setzen. Aber mit einigen Konfigurationsoptionen sollte man zumindest einigermaßen vertraut sein.
Kerberos-Richtlinien
Die Gruppenrichtlinien enthalten auch die Kerberos-Richtlinien. Damit können einige grundlegende Verhaltensweisen des Protokolls gesteuert werden. Unter Computerkonfiguration/ Windows-Einstellungen/Sicherheitseinstellungen/Konto richtlinien/Kerberos-Richtlinie stehen fünf verschiedene Einstellungen zur Verfügung:
-
Benutzeranmeldeeinschränkungen erzwingen sorgt dafür, dass der KDC bei jeder Anforderung für Session Tickets auch überprüft, ob der Benutzer für den Server, auf den er zugreifen möchte, entweder die Berechtigung zum lokalen Zugriff oder zum Zugriff über das Netzwerk besitzt. Falls der Benutzer keine entsprechenden Berechtigungen hat, wird kein Session Ticket ausgestellt. Die Option ist standardmäßig und sollte es auch bleiben. Allerdings kann die zusätzliche Überprüfung die Antwortzeiten verschlechtern.
-
Max. Gültigkeitsdauer des Benutzertickets gibt die maximale Lebensdauer des TGTs (Ticket Granting Tickets) an, das für einen Benutzer ausgestellt wird. Standardwert ist 10 Stunden. Nach diesem Zeitraum kann das Ticket erneuert werden. In der Regel muss dieser Wert nicht angepasst werden.
-
Max. Gültigkeitsdauer des Diensttickets legt die maximale Lebensdauer eines Session Tickets fest. Auch hier beträgt der Standardwert 10 Stunden, wird aber aus unerfindlichen Gründen hier in Minuten angegeben. Auch diese Einstellung muss normalerweise nicht angepasst werden.
-
Auch bei Max. Toleranz für die Synchronisation des Computertakts sollten normalerweise keine Änderungen vorgenommen werden – allerdings kann die Einstellung in der Praxis zu Problemen führen. Aus Sicherheitsgründen ist bei Kerberos festgelegt, dass die Uhren auf den verschiedenen Computern – KDCs, Servern, Clients – relativ gut synchronisiert sein müssen. Wenn die Uhrzeit auf einzelnen Systemen nun abweicht, können keine Tickets erstellt werden. Daher ist eine genaue Synchronisation der Systemzeiten erforderlich. Sie wird bei Windows-Systemen ohnehin automatisch durchgeführt, weshalb nur gravierende Mängel bei der Hardware-Uhr zu Fehlern führen sollten.
-
Max. Zeitraum, in dem ein Benutzerticket erneuert werden kann legt ein Intervall fest, in dem ein TGT erneuert werden kann, ohne dass es neu angefordert werden muss. Für die erneute Anforderung ist auch die Eingabe des Kennworts erforderlich. Der Standardwert 7 Tage muss normalerweise ebenfalls nicht angepasst werden.
Kerberos und IIS
Die IIS können sowohl mit Kerberos als auch NTLM (Windows NT/LAN Manager Authentication) arbeiten. Standardmäßig werden beide Mechanismen unterstützt, wobei Kerberos aus Sicht des verwendeten Mechanismus bevorzugt wird. Die Konfiguration erfolgt über ein Utility adsutil. vbs. Mit diesem kann beispielsweise auch die Kerberos-Authentifizierung deaktiviert und wieder aktiviert werden, wobei diese vom Mechanismus Negotiate abgedeckt wird. Die Syntax des Befehls ist im Artikel 251383 der Knowledge Base von Microsoft genau beschrieben. Außerdem kann natürlich auch das Skript analysiert werden, da es im Sourcecode im System vorliegt.
In Ergänzung zu den Informationen in diesem Artikel ist noch die Anweisung
Adsutil set w3svc/ntauthenticationproviders Negotiate, Kerberos
zu nennen. Mit dieser wird definiert, dass Kerberos gegenüber NTLM bevorzugt wird. Prinzipiell sollte es durch Weglassen von Negotiate auch möglich sein, Kerberos als einziges Protokoll für die Authentifizierung zu konfigurieren – was aber Probleme im Zusammenspiel mit Browsern verursachen kann.
Kerberos, UDP, TCP
Ein weiterer Knowledge Base-Artikel, 244474, beschäftigt sich mit der Verwendung von UDP (User Datagram Procotol) bzw. TCP (Transmission Control Protocol) im Zusammenhang mit Kerberos. Standardmäßig wird für Kerberos über den Port 88 mit UDP gearbeitet.
Es gibt nun aber Situationen, in denen die Kerberos-Pakete relativ groß sind. Das hängt vor allem von der Anzahl der SIDs aus der SIDHistory und der Gruppen ab, in denen ein Benutzer Mitglied ist. Da diese Informationen als Autorisierungsdaten bei Kerberos-Tickets mitgeliefert werden, wächst die Größe der Tickets mit der Anzahl der SIDs.
Die Größe von UDP-Paketen ist aber beschränkt, so dass es zu Situationen kommen kann, in denen diese fragmentiert, also in mehrere Pakete aufgeteilt werden müssen. Das führt bei UDP relativ leicht zu Datenverlust, während TCP in dieser Situation erkennt, dass ein Paket fehlt, und es erneut anfordert. In solchen Situationen macht die Umstellung auf TCP als Protokoll daher Sinn. Die Vorgehensweise dafür ist im genannten Artikel beschrieben.
Kerberos-Protokollierung
Treten bei Kerberos Schwierigkeiten auf, lässt sich auch die erweitere Protokollierung von Kerberos-Ereignissen aktivieren. Die Ereignisse werden in das Ereignisprotokoll geschrieben. Um die Informationen umfassend zu sammeln, müssen Sie einen Registry-Parameter für das Log-Level setzen. Die Vorgehensweise ist im Artikel 262177 der Knowledge Base beschrieben.
Kerberos im Cluster
Interessant ist auch der Einsatz von Kerberos in Clustern mit dem Network Load Balancing (NLB). Die Unterstützung gibt es erst beim Windows Server 2003. Wichtig sind dabei eigentlich nur zwei Punkte:
-
Die korrekte Konfiguration des SPNs (Service Principal Name) für den Cluster. Dieser Name muss von den Clients verwendet werden.
-
Die Konfiguration der IIS mit Hilfe von adsutil. vbs und den Konfigurationsschnittstellen so, dass Kerberos das bevorzugte Authentifizierungsprotokoll ist.
Die Vorgehensweise ist im Detail unter www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/
security/kerbnlb.mspx beschrieben.