Springe zum Hauptinhalt
Universitätsrechenzentrum
Kerberos

Kerberos an der TU Chemnitz

Kerberos ist ein Basisdienst zur Authentisierung von Nutzern, Diensten und Rechnern. Das URZ setzt Kerberos für alle Authentisierungsvorgänge ein. Jedesmal wenn Sie bei der Nutzung von Diensten des URZ nach Ihrem Nutzerkennzeichen und Passwort "gefragt" werden, überprüft Kerberos Ihre Identität und stellt ein sog. Ticket aus, welches anschließend anderen Diensten und Rechnern Ihre Identität bestätigt.

Sie finden hier alle Informationen zum Einsatz von Kerberos im URZ der TU Chemnitz.

Kerberos im Linux

Kommandos

Mit der Einführung von Scientific Linux 7 werden die Werkzeuge der MIT-Kerberos-Implementation bereitgestellt. Auf Linux-System bis einschließlich Scientific Linux 6 finden Sie in den Verzeichnissen /usr/heimdal/bin/ und /usr/kerberos/bin/ die Kommandos zur Benutzung von Kerberos in den beiden gängigen Implementationen. Die meisten Kommandos besitzen in beiden Implementationen denselben Namen, jedoch teilweise unterschiedliche Optionen und Ausgabeformate. Die PATH-Variable ist so eingestellt, dass immer die Heimdal-Implementation bevorzugt wird.

Tickets anzeigen

Das Kommando klist zeigt den Inhalt der Credential Caches an. Entscheidend ist die Anzeige eines Tickets für den Dienst krbtgt/TU-CHEMNITZ.DE@TU-CHEMNITZ.DE. Das ist das sog. Ticket Granting Ticket (TGT). Dieses Ticket beweist die Identität seines Inhabers und wird benötigt, um weitere Service-Tickets zu erstellen.

Das folgende Beispiel zeigt die typische Situation nach dem Anmelden:

[otto@tiras ~]$ klist
Ticket cache: KEYRING:persistent:20934:krb_ccache_37OavJH
Default principal: otto@TU-CHEMNITZ.DE

Valid starting       Expires              Service principal
15.07.2015 10:26:55  16.07.2015 11:26:55  krbtgt/TU-CHEMNITZ.DE@TU-CHEMNITZ.DE
    renew until 14.08.2015 10:26:55
15.07.2015 10:26:55  16.07.2015 11:26:55  afs/tu-chemnitz.de@TU-CHEMNITZ.DE
    renew until 14.08.2015 10:26:55

Der Credential Cache (seit Scientific Linux 7 im Kernel-Keyring) enthält Tickets für das Principal otto@TU-CHEMNITZ.DE. Ein Principal bezeichnet einen Nutzer (hier otto in der Realm TU-CHEMNITZ.DE). Dieser Benutzer besitzt zwei Tickets, das schon erwähnte TGT und ein Ticket zur Benutzung des Dienstes afs@TU-CHEMNITZ.DE. Principals bezeichnen also auch Dienste (Service-Principals).

Die Gültigkeit von Tickets ist immer befristet. Vor Ablauf der Gültigkeit des TGT kann man innerhalb der renew time das TGT ohne Passworteingabe erneuern. Die renew time und weitere Parameter des Tickets (verwendeter Schlüsseltyp, IP-Adresse, ...) werden angezeigt durch den Aufruf von klist -efa (MIT) bzw. klist -v (Heimdal).

Tickets beschaffen

Das TGT wird während des Anmeldevorgangs (login) automatisch beschafft oder vom lokalen Rechner übernommen, wenn Sie dort eines besitzen und sich mittels ssh an einem entfernten Rechner anmelden. Ausgehend vom TGT wird ein Ticket für AFS erzeugt und daraus wird ein AFS-Token erstellt.

Sie können ein TGT explizit erstellen durch den Aufruf des Kommandos kinit. Dabei werden Sie nach Ihrem Passwort gefragt:

[otto@tiras ~]$ kinit
otto@TU-CHEMNITZ.DE's Password:
[otto@tiras ~]$ 

Dabei gehen alle bisher vorhandenen Service-Tickets verloren.
Die Heimdal-Implementation von kinit beschafft zusätzlich ein AFS-Ticket und ein AFS-Token, während die MIT-Implementation nur das TGT beschafft.
Dort ist zusätzlich der Aufruf von aklog, afslog oder afs5log erforderlich, um ein AFS-Ticket und AFS-Token ausgehend vom TGT zu beschaffen - dafür ist allerdings keine weitere Passwort-Eingabe notwendig.

Alternativ kann auch das Kommando klog.krb5 -t aus der OpenAFS-Installation benutzt werden um ein AFS-Token sowie ein Kerberos Ticket (TGT) zu beschaffen.

Das Kommando klog sollte nicht mehr benutzt werden, weil es ein veraltetes Kerberos-Protokoll verwendet und kein TGT beschaffen kann.

Das Beschaffen weitere Service-Tickets erfolgt immer automatisch, wenn die beteiligten Applikationen entsprechend vorbereitet sind.
(siehe auch weiter unten: Kerberisierte Anwendungen im URZ)

Ticket erneuern

Ein noch gültiges TGT kann ohne Passwort-Eingabe erneuert werden, sofern die renew time noch nicht verstrichen ist. Diese renew time beträgt vier Wochen, d.h. innerhalb von vier Wochen nach der Ausgabe des TGT während login oder kinit kann die Erneuerung erfolgen, ohne das Passwort eingeben zu müssen, sofern die Erneuerung jeweils erfolgt bevor die Gültigkeit des TGT abgelaufen ist.
Dazu benutzen Sie das Kommando kinit -R.

Tickets verwerfen

Sie können Tickets explizit verwerfen durch den Aufruf von kdestroy. Das AFS-Token kann mit dem Kommando unlog verworfen werden.

Kerberisierte Anwendungen im URZ

Die folgenden Anwendungen benutzen Kerberos.

Login

Das Anmelden an Rechnern des URZ erfolgt immer auf Basis von Kerberos. Sobald Sie sich an der ersten Maschine angemeldet haben, verfügen Sie über ein TGT. Auf Basis des TGT können Sie weitere Dienste nutzen, die mit Kerberos geschützt werden.

OpenAFS

Im OpenAFS wird die Identität eines Benutzers durch ein AFS-Token repräsentiert. Das AFS-Token wird ausgehend vom Ticket für den Dienst afs/tu-chemnitz.de@TU-CHEMNITZ.DE erstellt. Das geschieht in den meisten Fällen transparent (bei Verwendung der PAM-Moduln pam_krb5, pam_afs_session oder dem Kommando klog.krb5).
Die Kommandos aklog, afslog, afs5log können ausgehend von einem Kerberos TGT ein AFS-Token erstellen.

OpenSSH

Der Zugang zu Maschinen des URZ mittels ssh, scp, ... funktioniert auf Basis von Kerberos (Principal: host/<servername>@TU-CHEMNITZ.DE ).

Siehe auch: Zusammenwirken von OpenSSH, Kerberos und OpenAFS

HTTP/WTC

Das Web Trust Center benutzt Kerberos zur Verifizierung der Identität des Benutzers. Bei Verwendung eines kerberisierten Browsers kann WTC auch auf Basis eines TGT arbeiten (Principal: HTTP/wtc.tu-chemnitz.de@TU-CHEMNITZ.DE). Sie brauchen dann Ihr Nutzerkennzeichen/Passwort bei der Anmeldung am WTC nicht eingeben.

Damit Ihr Browser das TGT benutzt, müssen Sie ihn entsprechend einstellen. Für firefox gehen Sie folgendermassen vor:

  1. Geben Sie als URL ein: about:config
  2. Geben Sie als Filter ein: network.negotiate
  3. Ändern Sie die folgenden Werte
    • network.auth.use-sspi in false
    • network.negotiate-auth.allow-proxies in false
    • network.negotiate-auth.delegation-uris in https://wtc.tu-chemnitz.de
    • network.negotiate-auth.trusted-uris in https://

IMAP

Kerberisierte Mail-Clients (z.B. thunderbird, pine/alpine) können auf Basis des TGT ein Ticket für den Dienst imap/mailbox.hrz.tu-chemnitz.de@TU-CHEMNITZ.DE erstellen und damit den Zugriff auf die Mailbox ohne Pasworteingabe ermöglichen.

Kerberos-Konfiguration von Linux-/Unix-Systemen

Wenn Sie ein Linux-/Unix-System so einstellen wollen, dass es die Kerberos-Installation der TU Chemnitz benutzt, dann finden Sie hier die entsprechenden Hinweise ...

Basiseinstellungen

Die Datei /etc/krb5.conf enthält alle Einstellungen. Das Format der Datei ist unabhängig davon, ob Sie die Heimdal- oder MIT-Kerberos-Implemenatation benutzen.

Sie können sich einfach die Datei /etc/krb5.conf von einer beliebigen Linux-Maschine des URZ kopieren, wenn Sie keine anderen Kerberos-Realms benutzen wollen.

Alternativ können Sie auch die folgenden Einstellungen in /etc/krb5.conf vornehmen:

[libdefaults]
 dns_lookup_realm = false
 dns_lookup_kdc = true
 ticket_lifetime = 30d
 renew_lifetime = 30d
 forwardable = true
 rdns = false
 default_realm = TU-CHEMNITZ.DE

[realms]
 TU-CHEMNITZ.DE = {
  kdc = kerberos.tu-chemnitz.de
  kdc = kerberos-1.tu-chemnitz.de
  kdc = kerberos-2.tu-chemnitz.de
 }

[domain_realm]
 .tu-chemnitz.de = TU-CHEMNITZ.DE
 tu-chemnitz.de = TU-CHEMNITZ.DE

PAM-Konfiguration

Zur Integration von Kerberos in verschiedene Applikationen können Sie den PAM-Modul pam_krb5 benutzen. Er ist für fast alle Linux-Distributionen verfügbar.

(Achtung: Ältere Versionen von pam_krb5 nutzen noch Kerberos4-Funktionen im Zusammenhang mit AFS. In diesen Fällen müssen Sie die AFS-Funktionalität von pam_krb5 mittels der Option ignore_afs = true deaktivieren und die Beschaffung des AFS-Tokens mit dem PAM-Modul pam_afs_session organisieren. Verwenden Sie hierfür zusätzlich die Option program = /usr/bin/aklog)

Weiterführende Kerberos-Integration

Soll Ihr Rechner selbst Services anbieten, die auf Basis der Kerberos-Authentisierung genutzt werden können, müssen für diese Dienste Kerberos-Principals angelegt werden.

Am ehesten wünschenswert ist das für SSH, damit sich Benutzer auf Basis Ihres Kerberos-TGT an Ihrem Rechner anmelden können, ohne Ihr Passwort eingeben zu müssen und dabei auch transparent ein AFS-Token erhalten. Voraussetzung dafür ist ein sog. Host-Principal für Ihre Maschine.

Auftrag: Kerberos-Integration für einen Computer (Host-Principal einrichten)

Sie erhalten nach Einrichtung des Host-Principal das erforderliche krb5.keytab-File welches im /etc-Verzeichnis bereitgestellt werden muss. (nur für root lesbar)

Ergänzen Sie die Konfiguration des SSH-Daemon (/etc/ssh/sshd_config) um folgende Einträge:

   GSSAPIAuthentication yes
   GSSAPICleanupCredentials yes

Damit der SSH-Client die erforderlichen Kerberosinformationen, insbesondere zum erstellen des AFS-Tokens übermittelt, muss die Konfiguration (systemweit: /etc/ssh/ssh_config oder persönlich: $HOME/.ssh/config) um folgende Einträge ergänzt werden:

Host *
   GSSAPIAuthentication yes
   GSSAPIDelegateCredentials yes

Möchten Sie Principals für andere Dienste einrichten lassen, so wenden Sie sich bitte an den Helpdesk.

Kerberos im Windows

Kerberosintegration ist unter Windows mit der Software MIT Kerberos for Windows möglich und wird beim Einatz des OpenAFS Client Software dringend empfohlen.

Auf vom URZ verwalteten Windows-Systemen ist der Network Identity Manager so in das System integriert, dass bei der Anmeldung bereits ein Kerberosticket beschafft wird.

Folgende Windows-Anwendungen sind für Kerberos vorbereitet:

  • Mozilla Firefox (siehe auch: Kerberos im Linux)
  • Mozilla Thunderbird
  • OpenAFS Client
  • putty
  • winscp