Jede Maschine im Netzwerk muss einem bestimmten Kerberos-Bereich angehören und muss wissen, welches KDC kontaktiert werden muss. Erstellen Sie außerdem einen Host-Prinzipal dafür. Bis jetzt wurden nur Benutzerberechtigungen erläutert. Kerberos-kompatible Dienste müssen sich jedoch selbst beim Client-Benutzer authentifizieren. Daher müssen spezielle Host-Prinzipale in der Kerberos-Datenbank für jeden Host im Bereich vorhanden sein.
Die Namenkonvention für Host-Prinzipale lautet host/<hostname>@<REALM>
, wobei der Hostname
der vollständig qualifizierte Hostname ist. Host-Prinzipale ähneln Benutzer-Prinzipalen, aber es gibt wesentliche Unterschiede. Der hauptsächliche Unterschied zwischen einem Benutzer-Prinzipal und einem Host-Prinzipal ist, dass der Schlüssel des ersteren durch ein Passwort geschützt ist. Wenn ein Benutzer ein Ticket ausstellendes Ticket vom KDC erhält, muss er das 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 wird der Schlüssel zur Entschlüsselung des anfänglichen Tickets für den Host-Prinzipal vom Administrator über das KDC einmal extrahiert und in einer lokalen Datei namens keytab gespeichert. 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
.
Zum Erstellen eines Host-Prinzipals für test.example.com
geben Sie die folgenden Befehle während der kadmin-Sitzung ein:
kadmin -p newbie/admin Authenticating as principal newbie/admin@EXAMPLE.COM with password. Password for newbie/admin@EXAMPLE.COM: kadmin: addprinc -randkey host/test.example.com WARNING: no policy specified for host/test.example.com@EXAMPLE.COM; defaulting to no policy Principal "host/test.example.com@EXAMPLE.COM" created.
Statt ein neues Passwort für den neuen Prinzipal einzurichten, bedeutet das Flag -randkey
für kadmin eine Aufforderung zum Generieren eines willkürlichen Schlüssels. Diese Funktion wird verwendet, weil keine Benutzeraktion für diesen Prinzipal gewünscht ist. Es handelt sich um ein Serverkonto für die Maschine.
Extrahieren Sie nun den Schlüssel und speichern Sie ihn in der lokalen keytab-Datei /etc/krb5.keytab
. Diese Datei gehört dem Superuser. Daher müssen Sie als root
angemeldet sein, um den nächsten Befehl in der kadmin-Shell auszuführen:
kadmin: ktadd host/test.example.com Entry for principal host/test.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. Entry for principal host/test.example.com with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab. kadmin:
Vergewissern Sie sich nach der Fertigstellung, dass Sie das admin-Ticket, das Sie mit kinit erhalten haben, mit kdestroy vernichten.