Kerberos-Troubleshooting

11.02.2007 von Martin Kuppinger
Auch wenn Kerberos kaum Konfigurationseinstellungen erfordert und prinzipiell als Dienst im Hintergrund arbeitet, kommt es doch erstaunlich oft zu Problemen – und das nicht nur in heterogenen Umgebungen. Der Artikel soll Ihnen ein paar Tipps zum Kerberos-Troubleshooting an die Hand geben.

Nicht alle Schwierigkeiten, die im Zusammenhang mit Kerberos auftreten, sind auf den ersten Blick als Kerberos-Probleme zu identifizieren. Grundsätzlich gilt, dass jedes Authentifizierungsproblem, ob lokal oder über das Netzwerk, ebenso wie der Zugriff auf Netzwerkressourcen ein Problem bei Kerberos sein kann, weil Kerberos in vielen Situationen als Authentifizierungsprotokoll genutzt wird.

Auf der anderen Seite sind viele Kerberos-Fehler eigentlich keine Probleme bei Kerberos, sondern Folgefehler, weil erforderliche Basisdienste im Netzwerk nicht funktionieren. Folgende Dienste sind für Kerberos zwingend erforderlich:

Voraussetzungen für das Troubleshooting

Um Kerberos-Probleme oder Fehler, die mit Kerberos in Zusammenhang stehen könnten, erfolgreich zu analysieren, müssen einige Voraussetzungen erfüllt sein:

Auf dem System sollten die Windows Support-Tools und die im vorangegangenen Artikel genannten Resource-Kit-Tools installiert sein. Außerdem sollte die Überwachung von Anmeldeereignissen laufen, um Fehler besser nachvollziehen zu können.

Bild 1: Beim Internet Explorer muss die Windows- Authentifizierung aktiviert sein.

Fehlerhafte SPNs

Ein häufiger Fehler im Zusammenhang mit Kerberos sind nicht korrekt gesetzte SPNs (Service Principal Names). Für jeden Dienst sollte genau ein SPN definiert sein. Mehrere SPNs können dazu führen, dass Clients ein fehlerhaftes Service Ticket erhalten, das beispielsweise mit einem Schlüssel eines anderen SPNs verschlüsselt ist. Es gibt eine Reihe von Fehlermeldungen im Zusammenhang mit nicht korrekt gesetzten SPNs, die an die aufrufenden Anwendungen zurückgeliefert werden. Die Anwendung muss solche Meldungen verarbeiten. Die typischen Fehlermeldungen weisen darauf hin, dass entweder ein Client oder Server nicht in der Kerberos-Datenbank gefunden wurde, was schlicht daran liegt, dass im Active Directory das SPN-Attribut nicht gesetzt ist und entsprechend der SPN nicht aufgelöst werden kann.

NTLM statt Kerberos

Ein weiteres Problem kann dadurch entstehen, dass mit NTLM statt Kerberos gearbeitet wird. Auf die Anpassung der entsprechenden Einstellungen bei der Authentifizierung über die IIS wurde bereits im Artikel Kerberos-Konfiguration in diesem Heft eingegangen.

Betroffen davon ist ansonsten noch der Internet Explorer. Bei diesem lassen sich die Einstellungen bei den Internet-Optionen im Register Erweitert anpassen. Dort findet sich die Option Integrierte Windows-Authentifizierung aktivieren (erfordert Neustart). Sie ist standardmäßig aktiviert. Wenn sie nicht aktiviert ist, wird Kerberos nicht verwendet.

Ein weiteres Problem beim Internet Explorer entsteht, wenn eine Website nicht zur lokalen Intranet-Zone gehört. Die integrierte Authentifizierung und damit auch Kerberos wird nur für diese Zone genutzt.

Als Workaround gibt es ab dem Windows Server 2003 außerdem immer die Möglichkeit, mit der Umsetzung der Authentifizierung auf Kerberos auf der Ebene des IIS zu arbeiten, wenn die Client-Konfiguration nicht entsprechend angepasst werden kann.

Für den SQL Server 2005 wird unter http://support.microsoft.com/kb/090801/en-us erklärt, wie geprüft werden kann, ob mit Kerberos gearbeitet wird.

Zu große Tickets

In gemischten Umgebungen mit Windows und UNIX oder Linux sind auch zu große Tickets ein potenzielles Problem. Bei etwas älteren Kerberos-Implementierungen unter UNIX kann beispielsweise nur mit UDP gearbeitet werden und damit die Übertragung größerer Kerberos-Tickets scheitern. Solche Tickets entstehen, wenn sehr viele SIDs eingebunden werden müssen, was vor allem bei Benutzern mit vielen Gruppenmitgliedschaften der Fall ist. Windows wechselt automatisch auf TCP und kann auch so konfiguriert werden, dass generell nur TCP zum Einsatz kommt. Bei den MIT-Distributionen wird dies nur in den neueren Releases unterstützt.

Generell kritisch sind Benutzer, die Mitglied in mehr als 70 bis 120 Gruppen sind. Die Zahl hängt vom Typ der Gruppen ab. Mit dem Utility tokensz.exe, das von http://go.microsoft.com/fwlink/?LinkId=42933 geladen werden kann, lässt sich die Token-Größe berechnen. Falls solche Probleme auftreten, kann einerseits die Zahl der Gruppen reduziert werden – was in Fällen mit sehr vielen Gruppen meist keine schlechte Idee ist, denn in diesem Fall ist das Gruppenkonzept tendenziell überarbeitungsbedürftig, weil viel zu komplex. Daneben bietet Microsoft auch einen Hotfix unter http://go.microsoft.com/fwlink/?Link-Id=23044 an.

Prä-Authentifizierung

Ein weiterer potenzieller Fehler in heterogenen Umgebungen steht im Zusammenhang mit der Prä-Authentifizierung. Bei der Prä-Authentifizierung werden vorab bestimmte Authentifizierungsinformationen gesendet, die bestätigen, dass der Client das Kennwort kennt. Damit wird eine zusätzliche Sicherheitsstufe geschaffen, weil Authentifizierungsanforderungen überhaupt nur durchgeführt werden, wenn es wahrscheinlich ist, dass diese erfolgreich sein kann.

Bild 2: Die Kerberos-Präauthentifizierung kann auch deaktiviert werden.

Die Prä-Authentifizierung ist bei Windows standardmäßig aktiviert, während sie bei Kerberos-Clients auf anderen Plattformen oft nicht als Regelfall genutzt wird. Die meisten Clients reagieren aber auf eine Kerberos-Fehlermeldung, die auf die fehlende Prä-Authentifizierung hinweist, mit dem Senden der erforderlichen Daten. In den Fällen, in denen das nicht funktioniert, hat man zwei Optionen:

Verschlüsselungsprobleme

Im heterogenen Umfeld treten gelegentlich auch Schwierigkeiten mit der Verschlüsselung auf. Sie entstehen entweder, wenn das UNIX- oder Linux-System mit 3DES (Triple DES) arbeitet. Windows unterstützt nur DES und RC4. In diesem Fall muss die Konfiguration des KDC angepasst werden. Sie können aber auch entstehen, wenn ein Client keinen Schlüssel des richtigen Verschlüsselungsprotokolls besitzt. In diesem Fall lässt sich das Problem in der Regel durch eine Kennwortänderung beseitigen, weil dann neue Schlüssel generiert werden.

Problemfelder bei der Delegation

Bei der Delegation gibt es ebenfalls eine Reihe von Fehlerquellen. Besonders wichtig ist hier, dass alle Voraussetzungen erfüllt sind. Neben den generellen Anforderungen, die Kerberos beispielsweise an die Zeitsynchronisation stellt, sind das:

In dieser Kette von Abhängigkeiten kann natürlich einiges schief gehen. Die meisten Probleme entstehen aber dadurch, dass an einer Stelle nicht alle erforderlichen Aspekte konfiguriert worden sind.

Troubleshooting-Whitepaper

Microsoft hat gleich zwei umfangreiche Whitepapers herausgegeben, die sich mit dem Troubleshooting von Kerberos beschäftigen.

Beide Whitepapers werden mit der aktuellen CD-ROM von Expert’s inside Windows NT/2000 geliefert.