Tutorials - Kerberos-Grundinstallation
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk
Kerberos-Grundinstallation
Diese Seite wurde 8352 mal aufgerufen.
Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.
Editieren Versionen Linkpartnerschaft Bottom Printversion
Keywords: kerberos basic setup nfs4 howto tutorial
Inhaltsverzeichnis
Kerberos ist ein System zur Authentifizierung (überprüfen der Login-Daten) und Authorisierung (Zugriffsregelung) mit Single-Sign-On (einmaliger Anmeldung für alle Dienste). Aktuell ist die Version 5, Version 4 sollte nicht mehr verwendet werden.
Es gibt davon mehrere Implementierungen, u.a. freie wie MIT-Kerberos, Heimdal und Shishi aber auch in Microsoft-Produkten ab Windows 2000.
Dieser Artikel behandelt lediglich die Grundkonfiguration von Kerberos. Anwendungsgebiete wie Systemanmeldung mit zentraler User-Verwaltung und Anmeldung an NFS4-Dateisystemen folgen noch.
Am Anfang meldet sich der User am System an und erhält dabei vom Key Distribution Center (KDC) ein Ticket Granting Ticket (TGT). Dieses TGT kann er dann verwenden, um ein Ticket zu erhalten, mit welchem er auf bestimmte Services zugreifen kann. Gleichzeitig bestätigt dabei der Service, dass er auch wirklich der ist, der er zu sein scheint und nicht ein, von einem Angreifer gestellter Host.
Dadurch dass zeitabhängige Tickets anstatt Passwörtern verwendet wird, ist es für Angreifer nahezu unmöglich durch Sniffing- und Replay-Attacken in das System einzudrigen. Andererseits muss dafür beim KDC besonders auf dessen Sicherheit geachtet werden, da dieser sämtliche Account-Daten enthält und den wunden Punkt des Systems darstellt.
Aufgrund der hohen Verbreitung entschied sich der Autor für MIT-Kerberos5. Unter Gentoo genügt es, das kerberos-Useflag in der make.conf zu aktivieren und ein emerge -DN world zu starten. Ein mit-krb5-Paket ist jedoch in nahezu allen Distributionen zu finden.
Es gibt zwei Arten, wie sich Kerberos-Clients grundsätzlich Konfigurieren lassen.
- die dynamische Weise - per DNS-Einträge und lokaler Domain für alle Client, sowie entsprechende Reverse-Records für IP-Adressen
- die statische Weise - direkt in der Konfiguration eingetragen
dynamische Konfiguration
Über die Einrichtung von lokalen Domains gibt es ein eigenes Tutorial.
Auf dem Kerberos-Server und den Clients ist nur eine minimale Konfigurationsdatei erforderlich.
/etc/krb5.conf:
[libdefaults]
default_realm = INTERN.BEISPIEL.LOCAL
[realms]
INTERN.BEISPIEL.LOCAL = {
}
[domain_realm]
.intern.beispiel.local = INTERN.BEISPIEL.LOCAL
intern.beispiel.local = INTERN.BEISPIEL.LOCAL
Zone intern.beispiel.local:
$ORIGIN intern.beispiel.local.
kdc A 192.168.0.2 ; IP des Kerberos-Servers
$ORIGIN _tcp.intern.beispiel.local.
_kerberos SRV 0 0 88 kdc.intern.beispiel.local.
_kerberos-adm SRV 0 0 749 kdc.intern.beispiel.local.
$ORIGIN _udp.intern.beispiel.local.
_kerberos SRV 0 0 88 kdc.intern.beispiel.local.
_kpasswd SRV 0 0 464 kdc.intern.beispiel.local.
Zone 0.168.192.in-addr.arpa:
$ORIGIN 0.168.192.in-addr.arpa.
2 PTR kdc.intern.beispiel.local
statische Konfiguration
Auch bei der statischen Konfiguration kann die krb5.conf vom Server auf alle Clients übernommen werden. DNS-Einträge für die Hosts sind nicht zwingend erforderlich (aber angenehm).
/etc/krb5.conf:
[libdefaults]
default_realm = INTERN.BEISPIEL.LOCAL
[realms]
INTERN.BEISPIEL.LOCAL = {
admin_server = kdc.intern.beispiel.local # hier könnte auch eine IP stehen
kdc = kdc.intern.beispiel.local # hier könnte auch eine IP stehen
}
[domain_realm]
.intern.beispiel.local = INTERN.BEISPIEL.LOCAL
intern.beispiel.local = INTERN.BEISPIEL.LOCAL
Bevor sich Kerberos starten lässt, muss noch eine Datenbank auf dem Server initialisiert werden.
Code:
kdb5_util create -s
Nun sollte sich der kdc-Daemon starten lassen. Dies geschieht meist durch ein /etc/init.d/mit-krb5kdc start.
Auf den Clients sind diese beiden Schritte nicht erforderlich.
Mit kadmin.local kann man auf dem Server nun beginnen User, Hosts und Services einzurichten.
Code:
# kadmin.local
kadmin.local: add_principal testuser
WARNING: no policy specified for testuser@INTERN.BEISPIEL.LOCAL; defaulting to no policy
Enter password for principal "testuser@INTERN.BEISPIEL.LOCAL":
Re-enter password for principal "testuser@INTERN.BEISPIEL.LOCAL":
Principal "testuser@INTERN.BEISPIEL.LOCAL" created.
Somit ist nun ein testuser angelegt. Auf dem Client können wir dies mit kinit testuser überprüfen.
Code:
# kinit testuser
Password for testuser@INTERN.BEISPIEL.LOCAL:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: testuser@INTERN.BEISPIEL.LOCAL
Valid starting Expires Service principal
11/22/07 13:08:00 11/23/07 13:08:00 krbtgt/INTERN.BEISPIEL.LOCAL@INTERN.BEISPIEL.LOCAL
Um jetzt diesem User Zugang zu einem Service zu gewähren, müssen noch Principals in Form von service/hostname (z.B. ssh/kdc.intern.beispiel.local) erstellt werden.
Damit der Service-Host über die Zugangsdaten zum KDC verfügt, wird der Service-Principal mit ktadd ssh/kdc.intern.beispiel.local in die Keytab-Datei /etc/krb5.keytab exportiert und auf dem Service-Host abgelegt.
Hier gehts weiter mit Teil 2.
Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?
Editieren Versionen Linkpartnerschaft Top Printversion
Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk/Kerberos-Grundinstallation