Heimdal einrichten
Im Großen und Ganzen folgend wir folgenden How-To: http://www.freebsd.org/doc/handbook/kerberos5.html
Die Installation geht z.B. erfolgt über das Portssystem
[root@itoko /var/heimdal]# cd /usr/ports/security/heimdal [root@itoko /usr/ports/security/heimdal]# make [root@itoko /usr/ports/security/heimdal]# make install [root@itoko /usr/ports/security/heimdal]# make clean
Sollte Heimdal nach dem nächsten Bootup automatich gestartet werden genügt folgender Eintrag in die /etc/rc.conf
kerberos5_server_enable="YES" kadmind5_server_enable="YES"
Danach die Konfiguration. Genauso wie MIT Kerberos benötigen wir eine /etc/krb5.conf. Hier werden REALM, und die dazugehörigen Server definiert.
Hier gibt es unsere Beispieldatei: Heimdal /etc/krb5.conf
Zuerst müssen wir mal die Datenbak initialisieren:
[root@itoko /usr/ports/security/heimdal]# kstash Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx
Jetzt starten wir also root direkt das Verwaltungstool kdamin und legen zuerst den REALM an:
[root@itoko /usr/ports/security/heimdal]# kadmin -l kadmin> init CALMAR.NET Realm max ticket life [unlimited]:
Und jetzt legen wir den ersten User an. Hier legen wir gleich den User ijin an der der Untergruppe admin angehört.
kadmin> add ijin/admin Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx
Jetzt starten wir den Heimdal das erste Mail per Hand
[root@itoko /usr/ports/security/heimdal]# /etc/rc.d/kerberos start [root@itoko /usr/ports/security/heimdal]# /etc/rc.d/kadmind start
Nun versuchen wir uns das erste Mal beim Kerberos anzumelden.
[root@itoko /var/heimdal]# kinit ijin/admin ijin/admin@CALMAR.NET's Password:
Und Bingo - es hat geklappt. Das Kommando klist zeigt unser "Ticket".
[root@itoko /var/heimdal]# klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: ijin/admin@CALMAR.NET
Issued Expires Principal
Apr 3 23:56:26 Apr 4 09:56:26 krbtgt/CALMAR.NET@CALMAR.NETUnd das Ticker wieder "zerstören" mit dem Kommando kdestroy
[root@itoko /var/heimdal]# kdestroy
Nun wollen wir eine keytab Datei erzeugen.In dieser werden die Schlüsseĺ der Serverdienste gespeichert, die mit Kerberos arbeiten sollen. z.B. der OpenLDAP Server oder Cyrus IMAP etc. Dabei werden im Programm kadmin Zufallsschlüssel durch einen Schlüsselgenerator geschickt:
Allerdings haben wir im Moment noch nicht die Berechtigung dazu. Die Rechte, wer was darf sind in der /var/heimdal/kadmind.acl gespeichert. Dabei handelt es sich um eine einfache Textdatei. Nachfolgend unsere Beispieldatei mit genau einer Zeile.
ijin/admin@CALMAR.NET all
Achtung bei Heimdal heißt die Freigabe für die Dienste "all" und nicht "*"
Nun sind wir also berechtigt alle Operationen durchzuführen. Zuerst also den Zufallsschlüssel erstellen:
kadmin> add --random-key ldap/itoko.calmar.net
Die Syntax ist immer Dienst/Server. Nach der Schlüsselgenerierung muss das Ganze noch in die Datei /etc/krb5.keytab geschrieben werden mit. Und das geht so.
kadmin> ext ldap/itoko.calmar.net
Jetzt ist der Schlüssel für diesen Dienst in der Datei /etc/krb5.keytab gespeichert. Der muss nun auch vom entsprechenden Dienst aus lesbar sein. Ldap zum Beispiel ist nicht Mitglied in der Gruppe wheel (FreeBSD) und kann deshalb die krb5.keytab gar nicht auslesen.
Hier muss man z.B. die Rechte anpassen
[root@itoko /usr/home/ijin]# chmod 640 /etc/krb5.keytab [root@itoko /usr/home/ijin]# chgrp ldap /etc/krb5.keytab
Fertig. Der LDAP kann jetzt ohne weitere Konfiguration beim Kerberos anmelden. Die Test ob die Kombination OpenLDAP/Heimdal läuft können wir lokal austesten indem wir folgendes Kommando absetzen.
bic@haruka:/home$ ldapsearch -h itoko -b uid=ijin,ou=people,dc=calmar,dc=net -Y gssapi -U ijin SASL/GSSAPI authentication started SASL username: ijin@CALMAR.NET SASL SSF: 56 SASL data security layer installed. ..........
(V1.04)