Création d'un fichier keytab

3 juillet 2024

ID 206091

Vous pouvez utiliser un compte utilisateur pour l'authentification sur tous les nœuds du cluster. Pour ce faire, il faut créer un fichier keytab qui contient les noms principaux de service (ci-après « SPN ») pour chacun de ces nœuds. Lors de la création d'un fichier keytab, il faudra utiliser l'attribut de génération du sel (salt, modificateur d'entrée de fonction de hachage).

Le sel généré doit être sauvegardé de la manière la plus pratique pour ajouter de nouveaux SPN au fichier keytab.

Vous pouvez également créer un compte Active Directory séparé pour chaque nœud de cluster pour lequel vous voulez configurer l'authentification Kerberos.

Actions avant la création d'un fichier keytab

Avant de créer un fichier keytab, vous devez vous assurer pour chaque SPN qu'il n'est pas enregistré dans Active Directory. Vous pouvez le faire en utilisant la commande setspn -Q <SPN>, où <SPN> a la forme suivante : HTTP/<nom de domaine complet (FQDN) du nœud du cluster>@<realm nom de domaine Active Directory en majuscules>.

La commande doit renvoyer la réponse "No such SPN found", ce qui signifie que ce SPN n'est pas enregistré. Si le SPN est déjà enregistré, avant de créer le fichier keytab, vous devez supprimer la liaison du SPN au compte ou supprimer le compte Active Directory auquel ce SPN était lié.

Exemple de vérification du SPN pour un Nœud primaire et deux Nœuds secondaires :

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

Création d'un fichier keytab

Le fichier keytab est créé sur le serveur du contrôleur de domaine ou sur l'ordinateur tournant sous Windows Server dans le domaine, sous un compte utilisateur doté des autorisations d'administrateur de domaine.

Pour créer un fichier keytab en utilisant un compte :

  1. Dans le composant logiciel enfichable Active Directory Users and Computers, créez un compte utilisateur (par exemple, avec le nom control-user).
  2. Si vous souhaitez utiliser l'algorithme de chiffrement AES256-SHA1, procédez comme suit dans le composant logiciel enfichable Active Directory Users and Computers :
    1. Ouvrez les propriétés du compte utilisateur créé.
    2. Sous l'onglet Account, cochez la case This account supports Kerberos AES 256 bit encryption.
  3. Créez un fichier keytab pour l'utilisateur control-user à l'aide de l'utilitaire ktpass. Pour ce faire, saisissez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud principal>@<nom de domaine realm Active Directory en majuscules> -mapuser control-user@< nom de domaine realm Active Directory en majuscules> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <chemin d'accès au fichier>\<nom du fichier>.keytab

    L'utilitaire demandera le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

    Le SPN du Nœud primaire est ajouté au fichier keytab créé. L'écran affichera le sel généré : Hashing password with salt "<valeur de hash>".

  4. Pour chaque nœud du cluster, ajoutez l'enregistrement SPN au fichier keytab. Pour ce faire, exécutez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud>@<realm nom de domaine Active Directory en majuscule> -mapuser control-user@<realm nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <chemin d'accès et nom du fichier créé auparavant>.keytab -out <chemin d'accès et nouveau nom>.keytab -setupn -setpass -rawsalt "<valeur de hash du sel obtenue lors de la création du fichier keytab à l'étape 3>"

    L'utilitaire demandera le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

Le fichier keytab sera créé. Ce fichier contient tous les SPN des nœuds du cluster.

Exemple :

Par exemple, vous devez créer un fichier keytab contenant les noms SPN de 3 nœuds : control-01.test.local, secondary-01.test.local et secondary-02.test.local.

Pour créer dans le dossier C:\keytabs\ un fichier portant le nom filename1.keytab et contenant le SPN du Nœud primaire, exécutez la commande :

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

Disons que vous avez du sel "TEST.LOCALHTTPcontrol-01.test.local".

Pour pouvoir ajouter encore un autre SPN, il faut exécuter la commande suivante :

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"

Pour pouvoir ajouter un troisième SPN, il faut exécuter la commande suivante :

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"

L'exécution de la commande entraîne la création d'un fichier portant le nom filename3.keytab et contenant tous les trois SPN ajoutés.

Pour créer un fichier keytab à l'aide d'un compte séparé pour chaque nœud :

  1. Dans le composant logiciel enfichable Active Directory Users and Computers, créez un compte utilisateur séparé pour chaque nœud de cluster (par exemple, les comptes portant les noms control-user, secondary1-user, secondary2-user, etc.).
  2. Si vous souhaitez utiliser l'algorithme de chiffrement AES256-SHA1, procédez comme suit dans le composant logiciel enfichable Active Directory Users and Computers :
    1. Ouvrez les propriétés du compte utilisateur créé.
    2. Sous l'onglet Account, cochez la case This account supports Kerberos AES 256 bit encryption.
  3. Créez un fichier keytab pour l'utilisateur control-user à l'aide de l'utilitaire ktpass. Pour ce faire, saisissez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud d'administration>@<realm nom de domaine Active Directory en majuscule> -mapuser control-user@<realm nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <chemin d'accès au fichier>\<nom du fichier>.keytab

    L'utilitaire demandera le mot de passe de l'utilisateur control-user lors de l'exécution de la commande.

    Le SPN du Nœud primaire est ajouté au fichier keytab créé.

  4. Pour chaque nœud du cluster, ajoutez l'enregistrement SPN au fichier keytab. Pour ce faire, exécutez la commande suivante :

    C:\Windows\system32\ktpass.exe -princ HTTP/<nom de domaine complet (FQDN) du nœud>@<realm nom de domaine Active Directory en majuscule> -mapuser secondary1-user@<nom de domaine Active Directory en majuscule> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <chemin d'accès et nom du fichier créé auparavant>.keytab -out <chemin d'accès et nouveau nom>.keytab

    L'utilitaire demandera le mot de passe de l'utilisateur secondary1-user lors de l'exécution de la commande.

Le fichier keytab sera créé. Ce fichier contient tous les SPN des nœuds du cluster.

Exemple :

Par exemple, vous devez créer un fichier keytab contenant les noms SPN de 3 nœuds : control-01.test.local, secondary-01.test.local et secondary-02.test.local.

Pour créer dans le dossier C:\keytabs\ un fichier portant le nom filename1.keytab et contenant le SPN du Nœud primaire, exécutez la commande :

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

Pour pouvoir ajouter encore un autre SPN, il faut exécuter la commande suivante :

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

Pour pouvoir ajouter un troisième SPN, il faut exécuter la commande suivante :

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

L'exécution de la commande entraîne la création d'un fichier portant le nom filename3.keytab et contenant tous les trois SPN ajoutés.

Actions après la création d'un fichier keytab

Après avoir créé le fichier keytab, vous devez vous assurer pour chaque SPN qu'il est enregistré et lié au compte approprié. Vous pouvez le faire en utilisant la commande setspn -Q <SPN>, où <SPN> a la forme suivante : HTTP/<nom de domaine complet (FQDN) du nœud du cluster>@<realm nom de domaine Active Directory en majuscules>.

La commande doit renvoyer la réponse "Existing SPN found" et le compte auquel le SPN est lié.

De plus, après avoir créé le fichier keytab, vous pouvez vérifier la liste SPN lié au compte correspondant. Vous pouvez le faire en utilisant la commande setspn -L <account>, où <account> a la forme suivante : <nom d'utilisateur>@<realm nom de domaine Active Directory en majuscules>.

Si le fichier keytab a été créé avec un seul compte, la commande doit renvoyer une liste de tous les SPN pour lesquels le fichier keytab a été créé. Si le fichier keytab est créé avec des comptes distincts pour chaque nœud, la commande doit renvoyer un SPN lié à un compte spécifique.

Exemple de la commande pour un compte :

setspn -L control-user@TEST.LOCAL

Exemple de la commande pour des comptes distincts pour chaque nœud :

setspn -L control-user@TEST.LOCAL

setspn -L secondary1-user@TEST.LOCAL

setspn -L secondary2-user@TEST.LOCAL

Cet article vous a-t-il été utile ?
Que pouvons-nous améliorer ?
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.