Kerberos
Die wichtigsten Befehle zum Merken
kinit— anfängliche Zugangsdaten vom Realm beziehen.klist— gespeicherte Tickets und Gültigkeitszeiten prüfen.kvno— ein Ticket für einen bestimmten Dienst anfordern.
Befehle und Optionen
| Befehl oder Syntax | Bedeutung |
|---|---|
mktemp -d / kerberos_lab=$(…) |
Privates temporäres Verzeichnis erzeugen / Pfad speichern. |
-c "FILE:$kerberos_lab/ccache" |
Separaten dateibasierten Credential-Cache dieses Beispiels wählen. |
kinit student@LAB.EXAMPLE |
Anfängliche Zugangsdaten anfordern; Passwort an der Eingabeaufforderung eingeben. |
klist |
Client-Principal und gespeicherte Tickets anzeigen. |
kvno HTTP/web.lab.example@LAB.EXAMPLE |
Dienstticket beschaffen und Schlüsselversionsnummer ausgeben. |
kdestroy / rmdir |
Gewählten Cache löschen / leeres Verzeichnis entfernen. |
Anführungszeichen erhalten den Cache-Pfad. Die Principal-Namen müssen im Labor existieren; die Befehle erzeugen sie nicht.
Die entscheidenden Konzepte
1. Ein Realm koordiniert Vertrauen
Kerberos authentifiziert Principals über ein vertrauenswürdiges Key Distribution Center, kurz KDC. Ein Realm ist ein administrativer Authentifizierungsbereich mit Benutzer- und Dienstidentitäten.
Ein Principal bezeichnet etwa einen Benutzer oder einen HTTP-Dienst auf einem bestimmten Rechner. Der Dienst teilt langfristiges Schlüsselmaterial mit dem Realm, um seine Tickets verarbeiten zu können. Realm-Namen ähneln oft DNS-Domänen, sind aber ein anderes Konzept.
2. Ein TGT vermeidet wiederholte Passwortübergabe
Die anfängliche Authentifizierung liefert ein Ticket-Granting Ticket, kurz TGT, samt zugehörigen Client-Zugangsdaten. Damit fordert der Client weitere Diensttickets an, ohne jedem Dienst das Benutzerpasswort zu übergeben.
Tickets besitzen Gültigkeitszeiten und liegen in einem Credential-Cache. Dieser ist sensibel: Nutzbare Zugangsdaten können Handeln als Principal ermöglichen. Ein gespeicherter Login ist daher keine harmlose Diagnoseinformation.
3. Ein Dienstticket richtet sich an einen Dienst
Der Client fordert ein Ticket für einen konkreten Dienst-Principal an und legt es bei dessen Authentifizierung vor. Sitzungsschlüssel und frische Authentifikatoren weisen Besitz nach; das Protokoll überträgt mehr als einen wiederverwendbaren Benutzernamen.
Ein erhaltenes Ticket belegt die Ausstellung durch das KDC, nicht seine Annahme oder erlaubten Anwendungszugriff. Die Webanwendung entscheidet nach der Authentifizierung weiterhin über Berechtigungen.
4. Namen, Schlüssel und Uhren müssen passen
Ein falscher Dienst-Principal kann die Anmeldung trotz funktionierendem DNS und erreichbarem Server verhindern. Dienste benötigen außerdem korrektes Schlüsselmaterial, häufig in einer Keytab, zur Ticketannahme.
Gültigkeitsfenster und Replay-Schutz brauchen Uhren innerhalb der erlaubten Abweichung. Prüfe Ticketlaufzeit, Dienstnamen und Schlüsselkonfiguration getrennt von der Netzwerkerreichbarkeit. Passwortänderung oder Cache-Löschung reparieren diese unterschiedlichen Fehler nicht pauschal.
Ein kleines Beispiel
Optional: Nutze den vorkonfigurierten Test-Realm und gegebenenfalls deine zugewiesenen Test-Principals. Führe nach erfolgreicher Verzeichniserstellung die Zeilen einzeln aus. Der eigene Cache trennt das Beispiel von deinem normalen Login.
kerberos_lab=$(mktemp -d)
kinit -c "FILE:$kerberos_lab/ccache" student@LAB.EXAMPLE
klist -c "FILE:$kerberos_lab/ccache"
kvno -c "FILE:$kerberos_lab/ccache" HTTP/web.lab.example@LAB.EXAMPLE
klist -c "FILE:$kerberos_lab/ccache"
kdestroy -c "FILE:$kerberos_lab/ccache"
rmdir "$kerberos_lab"
Nach kinit sollte ein TGT mit Dienstnamen beginnend mit krbtgt erscheinen. Vergleiche nach kvno das HTTP-Dienstticket und seine Start- und Ablaufzeit. Die Schlüsselversion ist weder Softwareversion noch Erfolgsantwort der Webanwendung.
Scheitert die Anmeldung, interpretiere Folgebefehle nicht als Erfolg und räume erstellte Zugangsdaten auf. kdestroy entfernt nur den gewählten lokalen Cache, widerruft aber keine kopierten Tickets weltweit. Die letzte Zeile entfernt das leere Verzeichnis.
Merke dir: Kerberos macht Realm-Authentifizierung zu zeitlich begrenzten Tickets für benannte Dienste. Ausstellung und Anwendungsberechtigung bleiben getrennt.