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:
- Geben Sie als URL ein:
about:config
- Geben Sie als Filter ein:
network.negotiate
- Ändern Sie die folgenden Werte
-
network.auth.use-sspi
infalse
-
network.negotiate-auth.allow-proxies
infalse
-
network.negotiate-auth.delegation-uris
inhttps://wtc.tu-chemnitz.de
-
network.negotiate-auth.trusted-uris
inhttps://
-
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.
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