Создание keytab-файла

15 ноября 2023

ID 228435

Вы можете использовать одну учетную запись для аутентификации на нескольких серверах Central Node. Для этого требуется создать keytab-файл, содержащий имена субъекта-службы (далее также "SPN") для каждого из этих серверов. При создании keytab-файла потребуется использовать атрибут для генерации соли (salt, модификатор входа хеш-функции).

Сгенерированную соль необходимо сохранить любым удобным способом для дальнейшего добавления новых SPN в keytab-файл.

Вы также можете создать отдельную учетную запись Active Directory для каждого сервера Central Node, для которого вы хотите настроить Kerberos-аутентификацию.

Чтобы создать keytab-файл, используя одну учетную запись:

  1. На сервере контроллера домена в оснастке Active Directory Users and Computers создайте учетную запись пользователя (например, с именем control-user).
  2. Если вы хотите использовать алгоритм шифрования AES256-SHA1, то в оснастке Active Directory Users and Computers выполните следующие действия:
    1. Откройте свойства созданной учетной записи.
    2. На закладке Account установите флажок This account supports Kerberos AES 256 bit encryption.
  3. Создайте keytab-файл для пользователя control-user с помощью утилиты ktpass. Для этого в командной строке выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) сервера Central Node>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <путь к файлу>\<имя файла>.keytab

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

    В созданный keytab-файл будет добавлено SPN выбранного сервера. На экране отобразится сгенерированная соль: Hashing password with salt "<хеш-значение>".

  4. Добавьте в keytab-файл запись SPN для каждого следующего сервера Central Node. Для этого выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) сервера Central Node>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <путь и имя ранее созданного файла>.keytab -out <путь и новое имя>.keytab -setupn -setpass -rawsalt "<хеш-значение соли, полученное при создании keytab-файла на шаге 3>"

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

Keytab-файл будет создан. Этот файл будет содержать все добавленные SPN выбранных серверов.

Пример:

Например, вам нужно создать keytab-файл, содержащий SPN-имена 3 серверов: control-01.test.local, secondary-01.test.local и secondary-02.test.local.

Чтобы создать в папке C:\keytabs\ файл под названием filename1.keytab, содержащий SPN сервера, требуется выполнить команду:

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

Допустим, вы получили соль "TEST.LOCALHTTPcontrol-01.test.local".

Для добавления еще одного SPN необходимо выполнить следующую команду:

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"

Для добавления третьего SPN необходимо выполнить следующую команду:

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"

В результате будет создан файл с именем filename3.keytab, содержащий все три добавленные SPN.

Чтобы создать keytab-файл, используя отдельную учетную запись для каждого сервера Central Node:

  1. На сервере контроллера домена в оснастке Active Directory Users and Computers создайте отдельную учетную запись пользователя для каждого сервера (например, учетные записи с именами control-user, secondary1-user, secondary2-user и т.д.).
  2. Если вы хотите использовать алгоритм шифрования AES256-SHA1, то в оснастке Active Directory Users and Computers выполните следующие действия:
    1. Откройте свойства созданной учетной записи.
    2. На закладке Account установите флажок This account supports Kerberos AES 256 bit encryption.
  3. Создайте keytab-файл для пользователя control-user с помощью утилиты ktpass. Для этого в командной строке выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) сервера Central Node>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <путь к файлу>\<имя файла>.keytab

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

    В созданный keytab-файл будет добавлено SPN выбранного сервера.

  4. Добавьте в keytab-файл запись SPN для каждого следующего сервера Central Node. Для этого выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) сервера Central Node>@<realm имя домена Active Directory в верхнем регистре> -mapuser secondary1-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <путь и имя ранее созданного файла>.keytab -out <путь и новое имя>.keytab

    Утилита запросит пароль пользователя secondary1-user в процессе выполнения команды.

Keytab-файл будет создан. Этот файл будет содержать все добавленные SPN выбранных серверов.

Пример:

Например, вам нужно создать keytab-файл, содержащий SPN-имена 3 серверов: control-01.test.local, secondary-01.test.local и secondary-02.test.local.

Чтобы создать в папке C:\keytabs\ файл под названием filename1.keytab, содержащий SPN сервера, требуется выполнить команду:

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

Для добавления еще одного SPN необходимо выполнить следующую команду:

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

Для добавления третьего SPN необходимо выполнить следующую команду:

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

В результате будет создан файл с именем filename3.keytab, содержащий все три добавленные SPN.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!