ktpass

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

Configura o nome da entidade de segurança do servidor para o host ou serviço no AD DS (Active Directory Domain Services) e gera um arquivo .keytab que contém a chave secreta compartilhada do serviço. O arquivo .keytab baseia-se na implementação do protocolo de autenticação Kerberos pelo MIT (Massachusetts Institute of Technology). A ferramenta de linha de comando ktpass permite que serviços não Windows que dão suporte à autenticação Kerberos usem os recursos de interoperabilidade fornecidos pelo serviço KDC (Centro de Distribuição de Chaves) Kerberos.

Sintaxe

ktpass
[/out <filename>]
[/princ <principalname>]
[/mapuser <useraccount>]
[/mapop {add|set}] [{-|+}desonly] [/in <filename>]
[/pass {password|*|{-|+}rndpass}]
[/minpass]
[/maxpass]
[/crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All}]
[/itercount]
[/ptype {KRB5_NT_PRINCIPAL|KRB5_NT_SRV_INST|KRB5_NT_SRV_HST}]
[/kvno <keyversionnum>]
[/answer {-|+}]
[/target]
[/rawsalt] [{-|+}dumpsalt] [{-|+}setupn] [{-|+}setpass <password>]  [/?|/h|/help]

Parâmetros

Parâmetro Descrição
/out <filename> Especifica o nome do arquivo .keytab da versão 5 do Kerberos a ser gerado. Nota: Esse é o arquivo .keytab que você transfere para um computador que não está executando o sistema operacional Windows e, em seguida, substitui ou mescla pelo arquivo .keytab existente, /Etc/Krb5.keytab.
/princ <principalname> Especifica o nome da entidade de segurança no host do formulário/computer.contoso.com@CONTOSO.COM. Aviso: Esse parâmetro diferencia maiúsculas de minúsculas.
/mapuser <useraccount> Mapeia o nome da entidade de segurança Kerberos, que é especificada pelo parâmetro princ , para a conta de domínio especificada.
/mapop {add|set} Especifica como o atributo de mapeamento é definido.
  • Adicionar – adiciona o valor do nome de usuário local especificado. Esse é o padrão.
  • Set – define o valor da criptografia somente de DES (Data Encryption Standard) para o nome de usuário local especificado.
{-|+}desonly A criptografia somente DES é definida por padrão.
  • + Define uma conta para criptografia somente DES.
  • - Libera a restrição em uma conta para criptografia somente DES. Importante: O Windows não dá suporte ao DES por padrão.
/Em <filename> Especifica o arquivo .keytab a ser lido de um computador host que não está executando o sistema operacional Windows.
/Passar {password|*|{-|+}rndpass} Especifica uma senha para o nome de usuário principal especificado pelo parâmetro princ . Use * para solicitar uma senha.
/minpass Define o comprimento mínimo da senha aleatória como 15 caracteres.
/maxpass Define o comprimento máximo da senha aleatória como 256 caracteres.
/Criptografia {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} Especifica as chaves geradas no arquivo keytab:
  • DES-CBC-CRC – usado para compatibilidade.
  • DES-CBC-MD5 – adere mais de perto à implementação do MIT e é usado para compatibilidade.
  • RC4-HMAC-NT - Emprega criptografia de 128 bits.
  • AES256-SHA1 – emprega criptografia AES256-CTS-HMAC-SHA1-96.
  • AES128-SHA1 – emprega criptografia AES128-CTS-HMAC-SHA1-96.
  • Todos – estados que todos os tipos criptográficos com suporte podem ser usados.

Nota: Como as configurações padrão são baseadas em versões mais antigas do MIT, você sempre deve usar o /crypto parâmetro .

/itercount Especifica a contagem de iteração usada para criptografia AES. O padrão ignora a itercount para criptografia não AES e define a criptografia AES como 4.096.
/Ptype {KRB5_NT_PRINCIPAL|KRB5_NT_SRV_INST|KRB5_NT_SRV_HST} Especifica o tipo de entidade de segurança.
  • KRB5_NT_PRINCIPAL - O tipo de entidade de segurança geral (recomendado).
  • KRB5_NT_SRV_INST - A instância de serviço de usuário
  • KRB5_NT_SRV_HST – a instância do serviço de host
/kvno <keyversionnum> Especifica o número de versão da chave. O valor padrão é 1.
/Resposta {-|+} Define o modo de resposta em segundo plano:
  • - As respostas redefinem os prompts de senha automaticamente com NO.
  • + As respostas redefinem os prompts de senha automaticamente com SIM.
/target Define qual controlador de domínio usar. O padrão é que o controlador de domínio seja detectado, com base no nome da entidade de segurança. Se o nome do controlador de domínio não for resolvido, uma caixa de diálogo solicitará um controlador de domínio válido.
/rawsalt força o ktpass a usar o algoritmo rawsalt ao gerar a chave. Esse parâmetro é opcional.
{-|+}dumpsalt A saída desse parâmetro mostra o algoritmo de sal MIT que está sendo usado para gerar a chave.
{-|+}setupn Define o NOME UPN (nome upn) além do SPN (nome da entidade de serviço). O padrão é definir ambos no arquivo .keytab.
{-|+}setpass <password> Define a senha do usuário quando fornecida. Se rndpass for usado, uma senha aleatória será gerada.
/? Exibe a Ajuda para este comando.

Comentários

  • Os serviços em execução em sistemas que não estão executando o sistema operacional Windows podem ser configurados com contas de instância de serviço no AD DS. Isso permite que qualquer cliente Kerberos se autentique em serviços que não estão executando o sistema operacional Windows usando KDCs do Windows.

  • O parâmetro /princ não é avaliado pelo ktpass e é usado conforme fornecido. Não há nenhuma verificação para ver se o parâmetro corresponde ao caso exato do valor do atributo userPrincipalName ao gerar o arquivo Keytab. Distribuições Kerberos que diferenciam maiúsculas de minúsculas usando esse arquivo Keytab poderão ter problemas se não houver correspondência exata de maiúsculas e minúsculas e podem até falhar durante a pré-autenticação. Para verificar e recuperar o valor correto do atributo userPrincipalName de um arquivo de exportação LDifDE. Por exemplo:

    ldifde /f keytab_user.ldf /d CN=Keytab User,OU=UserAccounts,DC=contoso,DC=corp,DC=microsoft,DC=com /p base /l samaccountname,userprincipalname
    

Exemplos

Para criar um arquivo .keytab Kerberos para um computador host que não esteja executando o sistema operacional Windows, você deve mapear a entidade de segurança para a conta e definir a senha da entidade de segurança do host.

  1. Use o snap-in Usuário e computadores do Active Directory para criar uma conta de usuário para um serviço em um computador que não esteja executando o sistema operacional Windows. Por exemplo, crie uma conta com o nome User1.

  2. Use o comando ktpass para configurar um mapeamento de identidade para a conta de usuário digitando:

    ktpass /princ host/User1.contoso.com@CONTOSO.COM /mapuser User1 /pass MyPas$w0rd /out machine.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop set
    

    Observação

    Não é possível mapear várias instâncias de serviço para a mesma conta de usuário.

  3. Mescle o arquivo .keytab com o arquivo /Etc/Krb5.keytab em um computador host que não esteja executando o sistema operacional Windows.