Criar um arquivo keytab

23 de maio de 2024

ID 206091

É possível usar a mesma conta para autenticação em todos os nodes de cluster. Para isso, basta criar um arquivo keytab contendo os nomes principais do serviço (SPN) para cada um destes nodes. Ao criar um arquivo keytab, será necessário usar um atributo para gerar o salt, que modifica a entrada da função hash.

É necessário usar qualquer método conveniente para salvar o "salt" gerado para que ele possa ser usado posteriormente ao adicionar novos SPNs ao arquivo keytab.

Também é possível criar uma conta de usuário separada do Active Directory para cada node do cluster que requer a configuração de autenticação Kerberos.

O arquivo keytab será criado no servidor do controlador de domínio ou em um computador do Windows Server que faz parte do domínio, sob a conta de administrador do domínio.

Para criar um arquivo keytab usando uma conta de usuário:

  1. No snap-in de Usuários e Computadores do Active Directory, crie uma conta de usuário (por exemplo, chamada control-user).
  2. Caso queira usar o algoritmo de criptografia AES256-SHA1, no snap-in Usuários e Computadores do Active Directory:
    1. Abra as propriedades da conta criada.
    2. Na guia Conta, marque a caixa de seleção Esta conta oferece suporte para criptografia de 256 bits Kerberos AES.
  3. Use a ferramenta ktpass para criar um arquivo keytab para control-user. Para isso, execute o seguinte comando na linha de comando:

    C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node Controle>@ <nome de domínio do Active Directory do realm em letras maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em letras maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <caminho para o arquivo>\<nome do arquivo>.keytab

    A ferramenta solicitará a senha do usuário de controle ao executar o comando.

    O SPN do Nó de controle é adicionado ao arquivo keytab criado. A tela exibirá o salt gerado: Hashing senha com salt "<valor de hash>".

  4. Para cada node do cluster, adicione uma entrada SPN ao arquivo keytab. Para isso, execute o seguinte comando:

    C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node>@<nome de domínio do Active Directory do realm em maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em maiúsculas > -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <caminho e nome do arquivo criado anteriormente>.keytab -out <caminho e novo nome>.keytab -setupn -setpass -rawsalt "<valor de hash salt obtido ao criar o arquivo keytab na etapa 3>"

    A ferramenta solicitará a senha do usuário de controle ao executar o comando.

O arquivo keytab será criado. Esse arquivo cria todos os SPNs de nodes do cluster adicionados.

Exemplo:

Por exemplo, é necessário criar um arquivo keytab contendo os SPNs de 3 nodes: control-01.test.local, secondary-01.test.local e secondary-02.test.local.

Para criar um arquivo denominado filename1.keytab contendo o SPN do node de controle na pasta C:\keytabs\, execute o seguinte comando:

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

Suponhamos que o salt "TEST.LOCALHTTPcontrol-01.test.local" tenha sido recebido.

Para adicionar mais um SPN, execute o seguinte comando:

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"

Para adicionar um terceiro SPN, execute o seguinte comando:

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"

Isso resultará na criação de um arquivo chamado filename3.keytab contendo todos os três SPNs adicionados.

Para criar um arquivo keytab usando uma conta de usuário separada para cada node:

  1. No snap-in de Usuários e Computadores do Active Directory, crie uma conta de usuário separada para cada node do cluster (por exemplo, é possível criar contas de usuário chamadas control-user, secondary1-user, secondary2-user e assim por diante).
  2. Caso queira usar o algoritmo de criptografia AES256-SHA1, no snap-in Usuários e Computadores do Active Directory:
    1. Abra as propriedades da conta criada.
    2. Na guia Conta, marque a caixa de seleção Esta conta oferece suporte para criptografia de 256 bits Kerberos AES.
  3. Use a ferramenta ktpass para criar um arquivo keytab para control-user. Para isso, execute o seguinte comando na linha de comando:

    C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node de controle>@ <nome de domínio do Active Directory do realm em maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <caminho para o arquivo>\<nome do arquivo>.keytab

    A ferramenta solicitará a senha do usuário de controle ao executar o comando.

    O SPN do Nó de controle é adicionado ao arquivo keytab criado.

  4. Para cada node do cluster, adicione uma entrada SPN ao arquivo keytab. Para isso, execute o seguinte comando:

    C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node>@<nome de domínio do Active Directory do realm em maiúsculas> -mapuser secondary1-user@<nome de domínio do Active Directory do realm em maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <caminho e nome do arquivo criado anteriormente>.keytab -out <caminho e novo nome>.keytab

    A ferramenta solicitará a senha secondary1-user ao executar o comando.

O arquivo keytab será criado. Esse arquivo cria todos os SPNs de nodes do cluster adicionados.

Exemplo:

Por exemplo, é necessário criar um arquivo keytab contendo os SPNs de 3 nodes: control-01.test.local, secondary-01.test.local e secondary-02.test.local.

Para criar um arquivo denominado filename1.keytab contendo o SPN do node de controle na pasta C:\keytabs\, execute o seguinte comando:

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

Para adicionar mais um SPN, execute o seguinte comando:

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

Para adicionar um terceiro SPN, execute o seguinte comando:

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

Isso resultará na criação de um arquivo chamado filename3.keytab contendo todos os três SPNs adicionados.

Este artigo foi útil?
O que podemos melhorar?
Agradecemos o seu comentário! Ele nos ajuda a melhorar.
Agradecemos o seu comentário! Ele nos ajuda a melhorar.