Das Erstellen der keytab-Datei

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. Bei der Erstellung der keytab-Datei muss ein Attribut für die Generierung von Salz (salt, Modifikator der Eingabe in eine Hashfunktion) benutzt werden.

Das generierte Salz muss auf eine beliebige Art und Weise gespeichert werden für das weitere Hinzufügen in die keytab-Datei von neuen SPN.

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

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 Konto-Bindung entfernen oder das Active Directory-Konto löschen, an das der SPN gebunden ist.

Beispiel für die Überprüfung des 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änen-Controllers oder unter einem Benutzerkonto mit den Domänenadministrator-Berechtigungen auf einem Computer, auf dem Windows-Server installiert ist und der Teil der Domäne ist.

Um eine keytab-Datei zu erstellen, während ein Benutzerkonto benutzt wird:

  1. Erstellen im Snap-In Active Directory Users and Computers ein Benutzerkonto (z. B. mit dem Namen control-user).
  2. Wenn Sie den Kryptoalgorithmus AES256-SHA1 verwenden wollen, so 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 Programms 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 den folgenden Befehl aus:

    C:\Windows\system32\ktpass.exe -princ HTTP/<vollständiger Domänenname (FQDN) des Knotes>@<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 <neue Dateipfad und Name>.keytab -setupn -setpass -rawsalt "<Hash-Wert des Salt, 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.

Keytab-Datei wird erstellt. In dieser Datei sind alle hinzugefügten SPN der Cluster-Knoten enthalten.

Beispiel:

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

Um im Verzeichnis C:\keytabs\ eine Datei mit dem Namen filename1.keytab, die die SPN des Verwaltungsknotens enthält, zu erstellen, ist folgender Befehl auszuführen:

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 Salz "TEST.LOCALHTTPcontrol-01.test.local" erhalten.

Zum Hinzufügen eines weiteren SPN müssen Sie folgenden Befehl ausführen:

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"

Beim Hinzufügen eines dritten SPN müssen Sie folgenden Befehl ausführen:

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"

Daraufhin wird eine Datei mit dem Namen filename3.keytab erstellt, die alle drei hinzugefügten SPN enthält.

Um eine keytab-Datei zu erstellen, während für jeden Knoten je ein eigenes Benutzerkonto benutzt wird:

  1. Erstellen im Snap-In Active Directory Users and Computers je ein separates Benutzerkonto für jeden Knoten (z. B. mit den Namen control-user, secondary1-user, secondary2-user usw.).
  2. Wenn Sie den Kryptoalgorithmus AES256-SHA1 verwenden wollen, so 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 Programms 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 den 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.

Keytab-Datei wird erstellt. In dieser Datei sind alle hinzugefügten SPN der Cluster-Knoten enthalten.

Beispiel:

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

Um im Verzeichnis C:\keytabs\ eine Datei mit dem Namen filename1.keytab, die die SPN des Verwaltungsknotens enthält, zu erstellen, ist folgender Befehl auszuführen:

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

Zum Hinzufügen eines weiteren SPN müssen Sie folgenden Befehl ausführen:

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

Beim Hinzufügen eines dritten SPN müssen Sie folgenden Befehl ausführen:

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

Daraufhin wird eine Datei mit dem Namen filename3.keytab erstellt, die alle drei hinzugefügten SPN enthält.

Notwendige Schritte nach dem Erstellen einer keytab-Datei

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

Der Befehl sollte die Antwort Exisiting 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. Dies können Sie tun, indem Sie den Befehl setspn -L <Konto> ausführen, wobei <Konto> für Folgedes steht: <Benutzername>@<realm Name der Active Directory-Domäne in Großbuchstaben>.

Wenn die keytab-Datei mit einem einzelnen Konto erstellt wurde, sollte der Befehl eine Liste aller SPNs zurückgeben, für welche die 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 mit separaten Konten für jeden Knoten:

setspn -L control-user@TEST.LOCAL

setspn -L secondary1-user@TEST.LOCAL

setspn -L secondary2-user@TEST.LOCAL

Nach oben