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)