lug-in.de
Linux User Group Ingolstadt e.V.
Startseite
Der Verein
Technikecke
Mailingliste
Kalender
Impressum

Login

MIT Kerberos einrichten

Ausgangslage: Kerberos Testsystem

Zuerst die Installation des KDC (Key Distribution Centers) und des Admin Server mit

ijin@ritsuko:~$ sudo apt-get install krb5-kdc krb5-admin-server

Anschließend werden die Konfigurationsdateien /etc/krb5.conf und /etc/krb5kdc/kdc.conf anpassen. Die genauen Werte für REALM, kdc und kadminserver sind im Kerberos Testsystem aufgeführt.

Anmerkung:

Die /etc/krb5.conf ist identisch mit der Version die Heimdal verwendet. Die /etc/krb5kdc/kdc.conf ist spezifisch für MIT Kerberos

Und hier die fertige /etc/krb5.conf und die dazugehörige /etc/krb5kdc/kdc.conf.

Nun die Datenbank bauen und den REALM initialisieren.

ijin@ritsuko:sudo kdb5_util create -s

So jetzt ist der RALM erzeugt. Noch eine Anmerkung am Rande. Das Kommmando bricht in virtualisierten Umgebungen mit einem Fehler ab. Hier wurde zu Testen ein alter Laptop (Gericom Hummer - Codename Ritsuko ) verwendet.

Danach erstmaliges Einloggen mit dem Administrationstool (lokal als root):

ijin@ritsuko: sudo kadmin.local
kadmin.local: addprinc ijin/admin
kadmin.local: exit
ijin@ritsuko: sudo /etc/init.d/krb5-kdc start
ijin@ritsuko: kinit ijin/admin
ijin@ritsuko: klist

Jetzt die Benutzerrechte zuweisen. Wir erstellen eine Datei /etc/krb5kdc/kadm5.acl. In dieser ist gespeichert wer root innerhalb von Kerberos sein darf. Wir ernennen unseren user ijin als Mitglied der Gruppe admin (ijin/admin) zum Superuser innerhalb von Kerberos. Die Datei enthält erstmal nur einen Eintrag:

ijin/admin@CALMAR.NET *

Jetzt erzeugen wir eine keytab Datei mit sich der später unser LDAP Dienst bei Kerberos anmelden soll

Zuerst generieren wir für den Dienst LDAP ein Passwort (zufälliger Schlüssel)

kadmin:  addprinc -randkey ldap/itoko.calmar.net
WARNING: no policy specified for ldap/itoko.calmar.net@CALMAR.NET;
defaulting to no policy
Principal "dap/itoko.calmar.net@CALMAR.NET" created.

und speichern das ganze in der /etc/krb5.keytab ab

kadmin:  ktadd ldap/itoko.calmar.net
Entry for principal ldap/itoko.calmar.net with kvno 3, encryption type Triple
DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal ldap/itoko.calmar.net with kvno 3, encryption type DES
cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.

So fertig: Jetzt müssen wir nur noch sicherstellen, das unser LDAP-Dienst die Datei auch lesen kann.

Weiter gehts dann mit dem Einrichten der Clients.

Zum Verständnis (Quelle: http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.3/opensuse-manual_de/manual/sec.kerbadmin.hostprinc.html)

Dienst-Prinzipale ähneln Benutzer-Prinzipalen, aber es gibt wesentliche Unterschiede. Im Gegensatz zum Schlüssel des Dienst-Prinzipals ist der Schlüssel des Benutzer-Prinzipals durch ein Passwort geschützt. Wenn ein Benutzer ein Ticket zur Ticketausstellung vom KDC erhält, muss er sein Passwort eingeben, damit Kerberos das Ticket entschlüsseln kann. Für den Systemadministrator wäre es ziemlich unpraktisch, wenn alle acht Stunden für den SSH-Daemon neue Tickets ausgestellt werden müssten.

Stattdessen extrahiert der Administrator den Schlüssel zur Entschlüsselung des anfänglichen Tickets für den Dienst-Prinzipal einmal aus dem KDC und speichert ihn in einer lokalen Datei namens keytab. Dienste, wie der SSH-Daemon, lesen diesen Schlüssel und nutzen ihn, falls erforderlich, zum automatischen Erhalt neuer Tickets. Die standardmäßige keytab-Datei befindet sich im Pfad /etc/krb5.keytab.

(V 1.04)