Erstellen der Kerberos-Host-Prinzipals

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. Im Gegensatz zum Schlüssel des Host-Prinzipals ist der Schlüssel des Benutzer-Prinzipals durch ein Passwort geschützt. Wenn ein Benutzer ein Ticket zur Ticket-Ausstellung vom KDC erhält, muss er sein 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 extrahiert der Administrator den Schlüssel zur Entschlüsselung des anfänglichen Tickets für den Host-Prinzipal einmal aus dem KDC und speichert ihn in einer lokalen Datei namens keytab. 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.