Kerberos Single Sign-On mit SSH v2 unter Windows

Mithilfe von Kerberos lassen sich Dienste und Applikationen, die eine Authentifizierung benötigen, "kerberzisiert" absichern. Gegenüber der klassischen Benutzername-/Passwort-Authentifizierung werden bei der Anwendung von Kerberos zeitlich begrenzte Tickets generiert, die benutzerbasierend zur Verwendung der einzelnen Dienste und Anwendungen berechtigen.

In Kombination mit SSH lässt sich das verschlüsselte Remoteprotokoll weiter absichern - wer Sicherheitsbedenken hat (oder besonders paranoid ist) kann mit folgenden Änderungen an der SSH Server-Konfigurationsdatei (/etc/ssh/sshd_config) dafür sorgen, dass statt herkömmlichen Logins lediglich Kerberos-Tickets verarbeitet werden:

 1#PermitRootLogin yes
 2PermitRootLogin no
 3...
 4#PasswordAuthentication yes
 5PasswordAuthentication no
 6...
 7#KerberosAuthentication no
 8KerberosAuthentication yes
 9...
10#GSSAPIAuthentication no
11GSSAPIAuthentication yes
12#GSSAPICleanupCredentials yes
13GSSAPICleanupCredentials yes

Network Identity Manager mit aktivem Ticket

Nach einem Neustart des Dienstes lässt der Server nur noch Kerberos-User zu, root hat keine Anmelderechte über SSH mehr (was ebenfalls mehr Sicherheit verspricht!).

Von einem entsprechend beglaubigten Linux-Host funktioniert das auch bei der Verwendung eines gültigen Kerberos-Benutzers.

Unter Windows ist das leider ein wenig schwieriger, da Windows kein "reines" MIT-Kerberos spricht. Hierfür gibt es allerdings ein entsprechendes Software-Paket vom MIT: MIT Kerberos for Windows (unbedingt Version 3.2.2 und nicht 4.0 verwenden!).

GSSAPI-Einstellungen für PuTTy-Session

Dieses Software-Paket bringt neben den benötigten Bibliotheken den "Network Identity Manager" mit. Mithilfe dieses Programms werden Kerberos Tickets von den entsprechenden Servern angefragt, angezeigt und gelöscht - das Pendant zu den kinit / klist / kdestroy Utilities.

Wichtig ist, dass das Programm nach der Installation das erste Mal mit Administratorrechten ausgeführt wird, damit der vorkonfigurierte Kerberos-REALM entfernt und der eigene eingefügt werden kann. Anschließend kann das Programm mit herkömmlichen Benutzerprivilegien gestartet und verwendet werden. Mittels grafischen Assistenten werden binnen weniger Moment die benötigten Kerberos-Informationen eingetragen (KDC, Admin-Server, REALM).

Aktive PuTTy-Session mit durchgereichtem Kerberos-Ticket

Anschließend muss lediglich die GSSAPI-Authentifizierung innerhalb PuTTy aktiviert werden (erfordert Version 0.6.2 oder höher!). Sofern ein gültiges Kerberos-Ticket vorliegt erfolgt der Login nach Eingabe des Benutzernamens passwortlos (siehe Screenshot).

Übersetzungen: