Das Erstellen der keytab-Datei

3. Juli 2024

ID 206091

Sie können ein Benutzerkonto für die Authentifizierung in allen Cluster-Knoten verwenden. Dazu ist es erforderlich, die keytab-Datei, die die Namen des Subjekt-Dienstes (im Weiteren auch "SPN") enthält, für jeden dieser Knoten zu erstellen. Beim Erstellen der keytab-Datei muss ein Attribut für die Generation von Salt (salt, Modifikator der Eingabe der Hash-Funktion) verwendet werden.

Das generierte Salt muss auf eine beliebige geeignete Art und Weise zwecks späteren Hinzufügens von neuen SPN in die keytab-Datei gespeichert werden.

Sie können ebenso ein separates Active Directory-Benutzerkonto für jeden Cluster-Knoten erstellen, für den Sie die Kerberos-Authentifizierung einstellen möchten.

Notwendige Schritte vor dem Erstellen einer Keytab-Datei

Bevor Sie eine Keytab-Datei erstellen, sollten Sie für jeden SPN sicherstellen, dass dieser nicht im Active Directory registriert ist. Um dies zu tun, können Sie den Befehl setspn -Q <SPN> ausführen, wobei <SPN> für Folgendes steht: HTTP/<vollständig qualifizierter Domänenname (FQDN) des Cluster-Knotes>@<realm Name der Active Directory–Domäne in Großbuchstaben>.

Der Befehl sollte die Antwort "No such SPN found" zurückgeben, was bedeutet, dass dieser SPN nicht registriert ist. Wenn der SPN bereits registriert ist, müssen Sie vor dem Erstellen der Keytab-Datei für den SPN die Bindung zu dem Konto entfernen oder das Active Directory-Konto löschen, an das dieser SPN gebunden war.

Beispiel für die Überprüfung der SPN eines Verwaltungsknotens und zweier untergeordneter Knoten:

setspn -Q HTTP/control-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL

Das Erstellen der keytab-Datei

Erstellt wird die Keytab-Datei entweder auf dem Server des Domänencontrollers oder auf einem in der Windows-Domäne befindlichen Computer mit Windows Server unter Verwendung eines Benutzerkontos mit der Berechtigung des Domänenadministrators.

Um eine keytab-Datei mithilfe eines Benutzerkonto zu erstellen:

  1. Erstellen Sie im Snap-In Active Directory Users and Computers ein Benutzerkonto (z.B. mit dem Namen control-user).
  2. Um den Kryptoalgorithmus AES256-SHA1 zu verwenden, gehen Sie im Snap-In Active Directory Users and Computers wie folgt vor:
    1. Öffnen Sie die Eigenschaften des erstellten Benutzerkontos.
    2. Auf der Registerkarte Account werden das Kontrollkästchen This account supports Kerberos AES 256 bit encryption aktivieren.
  3. Erstellen Sie eine keytab-Datei für den Benutzer control-user mithilfe des Dienstprogramms ktpass. Führen Sie dazu in der Befehlszeile den folgenden Befehl aus:

    C:\Windows\system32\ktpass.exe -princ HTTP/<vollständiger Domänenname (FQDN) des Verwaltungsknotens>@<realm Name der Active Directory Domäne in Großbuchstaben> -mapuser control-user@<realm Name der Active Directory Domäne in Großbuchstaben> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <Dateipfad>\<Dateiname>.keytab

    Das Dienstprogramm fragt während der Befehlsausführung das Kennwort des Benutzers control-user ab.

    In der erstellten keytab-Datei wird der SPN des Verwaltungsknotens hinzugefügt. Auf dem Bildschirm wird das generierte Salt angezeigt: Hashing password with salt "<Hash-Wert>".

  4. Fügen Sie für jeden Cluster-Knoten in der keytab-Datei den Eintrag SPN hinzu. Führen Sie dazu folgenden Befehl aus:

    C:\Windows\system32\ktpass.exe -princ HTTP/<vollständiger Domänenname (FQDN) des Knotens>@<realm Name der Active Directory Domäne in Großbuchstaben> -mapuser control-user@<realm Name der Active Directory Domäne in Großbuchstaben> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <Dateipfad und -name der zuvor erstellten Datei>.keytab -out <Dateipfad und neuer Name>.keytab -setupn -setpass -rawsalt "<Hash-Wert des Salz, der bei der Erstellung der keytab-Datei bei Schritt 3 erhalten wurde>"

    Das Dienstprogramm fragt während der Befehlsausführung das Kennwort des Benutzers control-user ab.

Die keytab-Datei wird erstellt. Diese Datei enthält alle hinzugefügten SPN der Cluster-Knoten.

Beispiel:

Sie wollen z.B. eine keytab-Datei erstellen, die SPN-Namen von 3 Knoten enthält: control-01.test.local, secondary-01.test.local und secondary-02.test.local.

Um im Ordner C:\keytabs\ eine Datei mir dem Namen filename1.keytab zu erstellen, die den SPN des Verwaltungsknotens enthält, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

Angenommen, Sie haben das Salt "TEST.LOCALHTTPcontrol-01.test.local" erhalten.

Um einen weiteren SPN hinzuzufügen, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

Um einen dritten SPN hinzuzufügen, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

Als Ergebnis wird eine Datei mit dem Namen filename3.keytab mit allen drei hinzugefügten SPN erstellt.

Um eine keytab-Datei mithilfe eines separaten Benutzerkontos für jeden Knoten zu erstellen:

  1. Erstellen Sie im Snap-In Active Directory Users and Computers je ein separates Benutzerkonto für jeden Cluster-Knoten (z.B. Benutzerkonten mit den Namen control-user, secondary1-user, secondary2-user usw.).
  2. Um den Kryptoalgorithmus AES256-SHA1 zu verwenden, gehen Sie im Snap-In Active Directory Users and Computers wie folgt vor:
    1. Öffnen Sie die Eigenschaften des erstellten Benutzerkontos.
    2. Auf der Registerkarte Account werden das Kontrollkästchen This account supports Kerberos AES 256 bit encryption aktivieren.
  3. Erstellen Sie eine keytab-Datei für den Benutzer control-user mithilfe des Dienstprogramms ktpass. Führen Sie dazu in der Befehlszeile den folgenden Befehl aus:

    C:\Windows\system32\ktpass.exe -princ HTTP/<vollständiger Domänenname (FQDN) des Verwaltungsknotens>@<realm Name der Active Directory Domäne in Großbuchstaben> -mapuser control-user@<realm Name der Active Directory Domäne in Großbuchstaben> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <Dateipfad>\<Dateiname>.keytab

    Das Dienstprogramm fragt während der Befehlsausführung das Kennwort des Benutzers control-user ab.

    In der erstellten keytab-Datei wird der SPN des Verwaltungsknotens hinzugefügt.

  4. Fügen Sie für jeden Cluster-Knoten in der keytab-Datei den Eintrag SPN hinzu. Führen Sie dazu folgenden Befehl aus:

    C:\Windows\system32\ktpass.exe -princ HTTP/<vollständiger Domänenname (FQDN) des Knotens>@<realm Name der Active Directory Domäne in Großbuchstaben> -mapuser secondary1-user@<realm Name der Active Directory Domäne in Großbuchstaben> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <Dateipfad und -name der zuvor erstellen Datei>.keytab -out <Dateipfad und neuer Name>.keytab

    Das Dienstprogramm fragt während der Befehlsausführung das Kennwort des Benutzers secondary1-user ab.

Die keytab-Datei wird erstellt. Diese Datei enthält alle hinzugefügten SPN der Cluster-Knoten.

Beispiel:

Sie wollen z.B. eine keytab-Datei erstellen, die SPN-Namen von 3 Knoten enthält: control-01.test.local, secondary-01.test.local und secondary-02.test.local.

Um im Ordner C:\keytabs\ eine Datei mir dem Namen filename1.keytab zu erstellen, die den SPN des Verwaltungsknotens enthält, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

Um einen weiteren SPN hinzuzufügen, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

Um einen dritten SPN hinzuzufügen, führen Sie folgenden Befehl aus:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

Als Ergebnis wird eine Datei mit dem Namen filename3.keytab mit allen drei hinzugefügten SPN erstellt.

Notwendige Schritte nach dem Erstellen einer Keytab-Datei

Nachdem Sie die Keytab-Datei erstellt haben, sollten Sie dies für jeden SPN sicherstellen, dass es registriert und mit dem entsprechenden Konto verbunden ist. Um dies zu tun, können Sie den Befehl setspn -Q <SPN> ausführen, wobei <SPN> für Folgendes steht: HTTP/<vollständig qualifizierter Domänenname (FQDN) des Cluster-Knotes>@<realm Name der Active Directory–Domäne in Großbuchstaben>.

Der Befehl sollte die Antwort "Existing SPN found" und das Konto zurückgeben, dem der SPN zugeordnet ist.

Darüber hinaus können Sie nach dem Erstellen der Keytab-Datei die SPN-Liste überprüfen, die dem entsprechenden Konto zugeordnet ist. Um dies zu tun, können Sie den Befehl setspn -L <Konto> ausführen, wobei <Konto> für Folgendes steht: <Benutzername>@<realm Name der Active Directory-Domäne in Großbuchstaben>.

Wenn die Keytab-Datei mit einem Konto erstellt wurde, sollte der Befehl eine Liste aller SPN zurückgeben, für die eine Keytab-Datei erstellt wurde. Wenn die Keytab-Datei für jeden Knoten mit einem separaten Konto erstellt wurde, sollte der Befehl einen SPN zurückgeben, der einem bestimmten Konto zugeordnet ist.

Beispiel des Befehls für ein Konto:

setspn -L control-user@TEST.LOCAL

Beispiel der Befehle für separate Konten für jeden Knoten:

setspn -L control-user@TEST.LOCAL

setspn -L secondary1-user@TEST.LOCAL

setspn -L secondary2-user@TEST.LOCAL

War dieser Artikel hilfreich?
Helfen Sie uns, diesen Artikel zu verbessern. Wählen Sie den Grund für Ihre Bewertung:
Danke für Ihr Feedback! Sie helfen uns, besser zu werden.
Danke für Ihr Feedback! Sie helfen uns, besser zu werden.