Como forçar o Kerberos a usar o TCP em vez do UDP no Windows

Este artigo descreve como forçar Kerberos a usar o TCP em vez de UDP.

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número de KB original: 244474

Resumo

O pacote de autenticação do Windows Kerberos é o pacote de autenticação padrão no Windows Server 2003, no Windows Server 2008 e no Windows Vista. Ele coexiste com o protocolo de desafio/resposta NTLM e é usado em instâncias em que um cliente e um servidor podem negociar Kerberos. A Solicitação de Comentários (RFC) 1510 afirma que o cliente deve enviar um datagram UDP (Protocolo de Dados de Usuário) para a porta 88 no endereço IP do KDC (Key Distribution Center) quando um cliente entra em contato com o KDC. O KDC deve responder com um datagram de resposta à porta de envio no endereço IP do remetente. O RFC também afirma que o UDP deve ser o primeiro protocolo que é testado.

Observação

O RFC 4120 agora obsoleta o RFC 1510. O RFC 4120 especifica que um KDC deve aceitar solicitações TCP e deve escutar essas solicitações na porta 88 (decimal). Por padrão, o Windows Server 2008 e o Windows Vista tentarão o TCP primeiro para Kerberos porque o padrão MaxPacketSize agora é 0. Você ainda pode usar o valor do registro MaxPacketSize para substituir esse comportamento.

Uma limitação no tamanho do pacote UDP pode causar a seguinte mensagem de erro no logon do domínio:

Erro do Log de Eventos 5719
Fonte NETLOGON

Nenhum Windows NT ou o Controlador de Domínio do Windows 2000 está disponível para domínio. O seguinte erro ocorreu:

No momento, não há servidores de logon disponíveis para atender à solicitação de logon.

Além disso, a ferramenta Netdiag pode exibir as seguintes mensagens de erro:

  • Mensagem de erro 1

    Teste de lista DC. . . . . . . . . . . : Falha [AVISO] Não é possível chamar dsBind para COMPUTERNAMEDC.domain.com (159.140.176.32). [ERRO_CONTROLADOR_DE_DOMÍNIO_NÃO_ENCONTRADO]

  • Mensagem de erro 2

    Teste de Kerberos. . . . . . . . . . . : Falha [FATAL] Kerberos não tem um tíquete para MEMBERSERVER$.] Os logs de eventos do Windows XP que são sintomas desse problema são SPNegotiate 40960 e Kerberos 10.

Mais informações

Importante

Esta seção, método ou tarefa contém etapas que descrevem como modificar o Registro. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, siga essas etapas cuidadosamente. Para mais proteção, faça o backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema. Para saber mais sobre como fazer o backup e restaurar o registro, consulte Como fazer o backup e restaurar o registro no Windows.

Se você usar o UDP para Kerberos, seu computador cliente poderá parar de responder (trava) quando receber a seguinte mensagem: Carregando suas configurações pessoais.

Por padrão, o tamanho máximo dos pacotes de datagram para os quais o Windows Server 2003 usa UDP é de 1.465 bytes. Para Windows XP e para Windows 2000, esse máximo é de 2.000 bytes. O TCP (Protocolo de Controle de Transmissão) é usado para qualquer pacote de datagrampacket maior que esse máximo. O tamanho máximo dos pacotes de datagram para os quais o UDP é usado pode ser alterado modificando uma chave e um valor do registro.

Por padrão, Kerberos usa pacotes de datagram UDP sem conexão. Dependendo de uma variedade de fatores, incluindo histórico de SID (identificador de segurança) e associação de grupo, algumas contas terão tamanhos maiores de pacote de autenticação Kerberos. Dependendo da configuração de hardware de VPN (rede virtual privada), esses pacotes maiores precisam ser fragmentados ao passar por uma VPN. O problema é causado pela fragmentação desses grandes pacotes Kerberos UDP. Como o UDP é um protocolo sem conexão, os pacotes UDP fragmentados serão descartados se chegarem ao destino fora de ordem.

Se você alterar MaxPacketSize para um valor de 1, forçará o cliente a usar o TCP para enviar tráfego Kerberos pelo túnel VPN. Como o TCP é orientado à conexão, é um meio de transporte mais confiável no túnel VPN. Mesmo que os pacotes sejam descartados, o servidor solicitará novamente o pacote de dados ausente.

Você pode alterar MaxPacketSize para 1 para forçar os clientes a usar o tráfego Kerberos por TCP. Para fazer isso, siga estas etapas:

  1. Inicie o Editor do Registro.

  2. Localize e clique na subchave do Registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters.

    Observação

    Se a chave Parâmetros não existir, crie-a agora.

  3. No menu Editar, aponte para Novo e clique em Valor DWORD.

  4. Digite MaxPacketSize e pressione ENTER.

  5. Clique duas vezes em MaxPacketSize, digite 1 na caixa de dados Valor , clique para selecionar a opção Decimal e clique em OK.

  6. Saia do Editor do Registro.

  7. Restart your computer.

Essa é a abordagem de solução para Windows 2000, XP e Server 2003. O Windows Vista e o mais recente usam um padrão de "0" para MaxPacketSize, que também desativa o uso de UDP para o Cliente Kerberos.

O modelo a seguir é um modelo administrativo que pode ser importado para Política de Grupo para permitir que o valor MaxPacketSize seja definido para todos os computadores corporativos que estão executando o Windows Server 2003, Windows XP ou Windows 2000. Para exibir as configurações maxpacketSize em Política de Grupo Objeto Editor, clique em Mostrar Políticas Somente no menu Exibir para que Mostrar Políticas Somente não esteja selecionado. Este modelo modifica as chaves do registro fora da seção Políticas. Por padrão, Política de Grupo Objeto Editor não exibe essas configurações de registro.