Kerberos
Derzeit gibt es im Linux-Bereich zwei recht weit verbreitete Kerberos Implementierungen: Heimdal und MIT.
Heimdal
Ziel: Single-Sign-On Der Heimdal Kerberos Server besteht aus drei Teilen:
- kdc: Key Distribution Center
- kadmin:
- kpasswdd:
Datenbank initialisieren
In der Datei /etc/krb5.conf konfiguriert man danach die
Kerberos Domain:
...
[libdefaults]
default_realm = MYDOMAIN.DE
[realms]
MYDOMAIN.DE = {
kdc = kdc.mydomain.de:88
admin_server = kdc.mydomain.de:749
#kpasswd_server = MY.COMPUTER
default_domain = mydomain.de
}
[domain_realm]
# DNS domain = Kerberos domain
.mydomain.de = MYDOMAIN.DE
[kdc]
database = {
dbname = /var/heimdal/mydomain.db
}
...
Die ersten Einträge auf dem Kerberos Server erstellt man mit Hilfe des Tools
kadmin. Durch die Option -l wird das Kerberos Admin-Tool
im lokalen Modus ausgeführt, d.h. der KDC Server muss zu diesem Zeitpunkt nicht
laufen und alle Daten werden direkt in die Datenbank geschrieben.
linux ~# kadmin -l
kadmin> init MYDOMAIN.DE
Realm max ticket life [unlimited]:
Realm max renewable ticket life [unlimited]:
kadmin> add user1
Max ticket life [1 day]:
Max renewable life [1 week]:
Principal expiration time [never]:
Password expiration time [never]:
Attributes []:
user1@MYDOMAIN.DE's Password:
Verifying - user1@MYDOMAIN.DE's Password:
kadmin> exit
Host Principal anlegen (Option -r erzeugt zufälligen Key - kein Einloggen nötig)
linux ~# kadmin -l
kadmin> add -r host/host.mydomain.de
Max ticket life [1 day]:
Max renewable life [1 week]:
Principal expiration time [never]:
Password expiration time [never]:
Attributes []:
Anschließend kann man den so erzeugten Host Principal in die Datei /etc/krb5.keytab
ablegen.
linux ~# ktutil get -p kadmin/admin host/host.mydomain.de
MIT Kerberos
MIT Kerberos wir mittlerweile sowohl von SuSE als auch von RedHat als Standard Kerberos eingesetzt.
Kerberos-fähige Applikationen
PAM konfigurieren
/etc/security/pam_unix2.conf:
auth: use_krb5 nullok
account: use_krb5
password: use_krb5 nullok
session: none
Heimdal Daten im LDAP Verzeichnis
Statt die Daten in einer lokalen Datenbank abzulegen, unterstützen aktuelle Versionen auch ein LDAP Verzeichnis. Dazu sind nur minimale Anpassungen an der Konfiguration nötig.
Apache konfigurieren
Das nötige Apache Authentifizierungsmodul auth_mod_kerb
kann man bei
Sourceforge
herunterladen..htaccess:
AuthType Kerberos
AuthName "Kerberos Login"
KrbAuthRealms MYDOMAIN.DE
KrbServiceName HTTP
#KrbVerifyKDC off
Krb5Keytab /etc/apache2/krb5.keytab
require user user1@MYDOMAIN.DE
KrbServiceName/Apache-Servername muss exisitieren
linux ~# kadmin -p kadmin/admin@MYDOMAIN.DE -r MYDOMAIN.DE ank -r HTTP/servername@MYDOMAIN.DE
linux ~# kadmin -p kadmin/admin@MYDOMAIN.DE -r MYDOMAIN.DE ext -k /etc/apache2/krb5.keytab HTTP/servername@MYDOMAIN.DE
linux ~# chown nobody /etc/apache2/krb5.keytab
linux ~# chmod 400 /etc/apache2/krb5.keytab



