RDP “logon attempt failed” via Internet no Windows Server 2016 Essentials: como diagnosticar e corrigir (RD Gateway, NLA, direitos de logon)

Conseguir RDP na LAN mas falhar via Internet com “logon attempt failed” quase sempre indica problema de autenticação ao atravessar o RD Gateway (ou no salto com NLA). Este guia mostra como diagnosticar e corrigir de forma objetiva no Windows Server 2016 Essentials.

Índice

Visão geral do cenário

Ao tentar se conectar por Área de Trabalho Remota (RDP) ao Windows Server 2016 Essentials a partir de uma rede externa, a sessão é negada com a mensagem “logon attempt failed”. Internamente (LAN), o mesmo usuário — tipicamente um Administrador de Domínio — conecta sem dificuldades. Os logs indicam que o RD Gateway autoriza a sessão, o que sugere que a recusa acontece no servidor de destino, durante a fase de NLA (Network Level Authentication) ou na validação final de políticas/direitos de logon.

No Essentials 2016, o acesso remoto normalmente passa pelo Anywhere Access/RD Gateway (porta 443/TLS). O Gateway aceita a conexão e cria o túnel, mas a autenticação contra o host de destino ainda precisa ser concluída com as credenciais corretas, obedecendo NLA e políticas de segurança do Windows.

Sinais que apontam a causa

Comportamento observadoInterpretação provável
Funciona na LAN, falha via Internet, RDG “Authorized”Credenciais erradas no salto, NLA/cliente desatualizado ou política de direitos de logon no host
Falha só quando “Usar minhas credenciais do RD Gateway” está marcadoO servidor tenta autenticar com UPN externo em vez do domínio interno
Falha para contas com senha expirada/“deve alterar”Troca de senha bloqueada via NLA/RDG; precisa renovar senha antes
Evento 4625 com SubStatus 0xC000015BUsuário não possui direito “Permitir logon por Serviços de Área de Trabalho Remota”
Conectividade 443 OK no Gateway, 3389 não expostoCenário correto de RDG; se mesmo assim falha, foque em credenciais/NLA/política

Plano de resolução, passo a passo

Verificações rápidas de caminho de rede

Antes de mexer em políticas, garanta que o caminho até o servidor de destino está realmente chegando da forma esperada.
Como a conexão chega de fora

  • Com RD Gateway (recomendado) — Porta TCP 443 exposta externamente: confirme FQDN público do Gateway e certificado TLS válido no cliente. Em Essentials, costuma ser o modo padrão.
  • Sem Gateway (redirecionamento 3389) — Porta TCP 3389 encaminhada direto ao host: evite em produção; se estiver usando, verifique NAT/port‑forward e firewall perimetral.

Testes de conectividade úteis

No cliente remoto:

# Teste moderno (PowerShell)
Test-NetConnection gateway.seudominio.tld -Port 443
Se for acesso direto (não recomendado):
Test-NetConnection IP_PUBLICO -Port 3389

Alternativa clássica, se Telnet estiver instalado:

telnet gateway.seudominio.tld 443
telnet IP\_PUBLICO 3389 

Sem conectividade, ajuste firewall/NAT antes de seguir. Se o RD Gateway responde em 443, avance para credenciais/NLA.

Diferencie credenciais do RD Gateway e do host de destino

O erro “logon attempt failed” costuma ocorrer quando o cliente envia ao host as credenciais do Gateway (geralmente UPN público) em vez do formato esperado pelo domínio interno.

  1. Abra mstsc.exeMostrar opçõesAvançadoConfigurações… (Gateway).
  2. Desmarque “Usar minhas credenciais do RD Gateway para o computador de destino”.
  3. Em Geral, no campo Usuário, force DOMÍNIO\usuário ou usuario@dominio.interno.
  4. No campo Computador, aponte para o FQDN interno do servidor (ex.: srv01.corp.local), não para o FQDN do Gateway.

Para eliminar credenciais equivocadas:

Painel de Controle > Gerenciador de Credenciais > Credenciais do Windows
- Remova itens TERMSRV/* e do RD Gateway
- Tente conectar novamente

Diagnóstico com NLA

A NLA é a causa mais comum de falhas quando há salto via RDG, especialmente com clientes antigos ou com políticas de criptografia desatualizadas.

  1. No servidor de destino, execute sysdm.cpl › guia Remoto.
  2. Desmarque temporariamente “Permitir conexões somente de computadores com Área de Trabalho Remota com NLA”.
  3. Tente a conexão externa via RDG novamente.

Se a conexão passar a funcionar, o problema está no cliente (RDP desatualizado, TLS/Schannel incompatível) ou no encadeamento de credenciais pelo Gateway. Atualize o cliente RDP do PC remoto, reforce TLS modernos e reative a NLA após o teste — manter NLA desabilitada não é recomendável.

Dica: se você desabilitar a NLA para testar, documente e agende a reversão. Deixe claro para a operação quando NLA for reativada.

Senha expirada ou “deve alterar no próximo logon”

Contas com senha expirada ou marcadas para troca podem falhar via NLA/RDG com “logon attempt failed”, embora funcionem em cenários onde a troca de senha é possível (por exemplo, logon local/console).

  • Verifique a conta no AD (Active Directory Users and Computers).
  • Renove a senha e remova temporariamente a marca “O usuário deve alterar a senha no próximo logon”, se aplicável.

Comandos úteis de domínio (executar em host com RSAT)

# Ver se a senha expirou e quando foi alterada
Get-ADUser "Administrador" -Properties PasswordLastSet, PasswordExpired, msDS-UserPasswordExpiryTimeComputed |
  Select-Object SamAccountName, PasswordExpired, PasswordLastSet,
    @{Name="Expiry";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Resetar senha de forma imediata

Set-ADAccountPassword -Identity "Administrador" -Reset -NewPassword (Read-Host -AsSecureString "Nova senha") 

Direitos de logon e grupos

Mesmo com credenciais corretas, o logon RDP pode falhar se o usuário não possuir o direito adequado ou se houver política de negação.

  • Permitir logon por Serviços de Área de Trabalho Remota deve incluir Administrators e/ou Remote Desktop Users.
  • Negar logon por Serviços de Área de Trabalho Remota não deve conter sua conta/grupo.

Onde verificar:

Configuração do Computador
  > Configurações do Windows
    > Configurações de Segurança
      > Políticas Locais
        > Atribuição de Direitos de Usuário

Em ambientes Essentials, valide também no RD Gateway Manager se as políticas CAP (Connection Authorization Policy) e RAP (Resource Authorization Policy) ainda permitem seu grupo de usuários e o servidor de destino.

Logs que explicam a recusa

O SubStatus dos eventos de segurança é a sua pista de ouro.

  • No servidor de destino: Log de Segurança › evento 4625 (Falha de logon). Observe Status e SubStatus.
  • Nos logs do RDP: Applications and Services LogsMicrosoftWindowsTerminalServices-RemoteConnectionManager e RemoteDesktopServices-RdpCoreTS.
  • No RD Gateway: MicrosoftWindowsTerminalServices-Gateway (confirma CAP/RAP e mapeia o alvo).

Consulta rápida por PowerShell

# Últimos 50 eventos 4625 com foco nos códigos
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-2)} -MaxEvents 50 |
  Select-Object TimeCreated,
                @{N='Status';E={$_.Properties[7].Value}},
                @{N='SubStatus';E={$_.Properties[9].Value}},
                @{N='IpOrigem';E={$_.Properties[19].Value}},
                @{N='Conta';E={$_.Properties[5].Value}} |
  Format-Table -Auto

Tabela de SubStatus comuns e como agir

SubStatusSignificadoCorreção típica
0xC000006ASenha incorretaLimpar credenciais salvas; confirmar senha; verificar políticas de conta
0xC0000064Usuário inexistenteConferir domínio e grafia; usar DOMÍNIO\usuário ou UPN interno
0xC0000234Conta bloqueadaDesbloquear a conta; investigar repetição de tentativas com credenciais antigas
0xC0000072Conta desabilitadaHabilitar a conta ou usar conta apropriada
0xC0000193Conta expiradaEstender validade ou recriar a conta
0xC0000224Senha deve ser alteradaTrocar a senha fora do túnel RDP (ADUC, portal, help desk) e tentar novamente
0xC0000071Senha expiradaRedefinir senha; verificar políticas de expiração
0xC000015BTipo de logon não concedidoGarantir direito Permitir logon por Serviços de Área de Trabalho Remota
0xC000018DFalha de relacionamento de confiançaReassociar máquina ao domínio se necessário; checar canal seguro
0xC000006ERestrição de conta (ex.: horário)Ajustar horários permitidos ou política de estação de trabalho

Outros pontos que costumam resolver

  • DNS/Nomes: no campo Computador do mstsc, use o nome interno (srv01.dominio.local) ou o IP interno do servidor, não o FQDN público do Gateway.
  • Certificados: o certificado do RDG deve corresponder ao nome público e a cadeia precisa ser confiável no cliente. Se houver alerta de certificado, corrija antes de culpar credenciais.
  • Cliente alternativo: se tiver VPN, conecte e teste RDP direto ao IP interno. Se via VPN funciona, mas via RDG não, o gargalo está no Gateway/credenciais/NLA.
  • TLS/Schannel: clientes legados com TLS antigos podem falhar NLA. Atualize o cliente RDP e a pilha TLS do sistema.
  • Sinc. de horário: diferenças de tempo grandes entre cliente/servidor podem quebrar Kerberos. Verifique com w32tm /query /status.
  • Porta RDP alterada: se o host usa porta diferente de 3389, ajuste no cliente (srv01:3390) e na RAP do Gateway.
  • Firewall do servidor: confirme regra Remote Desktop (TCP‑In) ativa no perfil aplicável.

Fluxo de autenticação explicado

[Cliente RDP]
   | 1. Autentica no RD Gateway (TLS 443) com credenciais A
   v
[RD Gateway]
   | 2. CAP verifica usuário/grupo
   | 3. RAP autoriza alvo (host/porta)
   v
[Túnel RDG->Host]
   | 4. NLA no host solicita credenciais B (podem ser diferentes das de A)
   v
[Servidor de Destino]
   | 5. Valida B (AD/políticas/direitos) → se falhar, evento 4625
   v
[Conexão RDP estabelecida]

Se o passo 5 falhar com “logon attempt failed”, foque em formato de credenciais, NLA, senha expirada e direitos de logon.

Playbook de correção rápida

  1. No cliente, desmarque “Usar minhas credenciais do RDG para o computador de destino”.
  2. Informe usuário como DOMÍNIO\usuário ou usuario@dominio.interno.
  3. Limpe credenciais salvas do RDP/Gateway e tente novamente.
  4. Teste temporariamente sem NLA; se passar, atualize o cliente e reative NLA.
  5. Verifique se a conta não está expirada/bloqueada/obrigada a trocar senha.
  6. Revise CAP/RAP do RDG e os direitos de logon RDP no host.
  7. Leia o evento 4625 e anote o SubStatus — ele diz exatamente o que arrumar.

Procedimentos detalhados no RD Gateway

No servidor Essentials (com RD Gateway instalado automaticamente):

  • Abra Server ManagerToolsRemote Desktop Gateway Manager.
  • Em Policies:
    • CAP: confirme que o grupo do seu usuário (ex.: Domain Users ou um grupo específico) está incluído; autenticação deve ser por senha (ou MFA, se configurado).
    • RAP: inclua o servidor de destino (Computer Group ou host específico) e a porta correta.
  • Em Monitoring, veja sessões recentes para confirmar “Connection authorized” e o Target Name correto.

Diagnóstico de ponta com comandos

Checar porta RDP configurada no host

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
  -Name PortNumber | Select-Object PortNumber

Exportar direitos de usuário locais (para auditar “Allow log on through RDS”)

secedit /export /cfg C:\Temp\secpol.cfg
notepad C:\Temp\secpol.cfg   # Procure por SeRemoteInteractiveLogonRight / SeDenyRemoteInteractiveLogonRight

Relatório de GPO efetiva

gpresult /h C:\Temp\gp.html
start C:\Temp\gp.html

Capturar eventos 4625 e logs RDP para enviar ao suporte

# Exportar eventos de Segurança e RDP
wevtutil epl Security C:\Temp\Security.evtx /q:"Event[System[(EventID=4625) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
wevtutil epl "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" C:\Temp\Rcm.evtx
wevtutil epl "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational" C:\Temp\RdpCore.evtx

Causas frequentes e soluções objetivas

Causa provávelSinaisComo corrigir
UPN externo usado no hostFunciona só quando usa DOMÍNIO\usuárioDesmarcar uso de credenciais do RDG; usar UPN interno ou DOMÍNIO\usuário
NLA com cliente antigoSem NLA funciona; com NLA falhaAtualizar cliente RDP; reforçar TLS; reativar NLA
Senha expirada/“deve alterar”4625 com 0xC0000224/0xC0000071Resetar senha no AD; remover “deve alterar” temporariamente
Direito de logon ausente4625 com 0xC000015BIncluir grupo do usuário em “Permitir logon por RDS” e remover de “Negar”
CAP/RAP restritivasRDG autoriza usuário, mas RAP não mapeia o hostAjustar RAP para incluir o servidor de destino e porta correta
Porta RDP customizadaRAP/Cliente apontando 3389, host escuta outraAtualizar RAP e cliente para host:porta
Skew de horário/KerberosErros intermitentes após reiníciosCorrigir NTP; manter desvios < 5 minutos

Boas práticas de segurança para produção

  • Evite expor a porta 3389 diretamente à Internet. Prefira RD Gateway na porta 443 ou VPN com MFA.
  • Restringa CAP/RAP por grupos específicos e recursos necessários. Menos é mais.
  • Habilite MFA no Gateway sempre que possível.
  • Monitore eventos 4625 e alarmes de bloqueio de conta; salve trilhas para auditoria.
  • Padronize formato de credenciais no seu how‑to corporativo: “Sempre usar DOMÍNIO\usuário no RDP”.
  • Mantenha clientes RDP e SOs atualizados para suportar NLA e TLS modernos.

Perguntas frequentes

Por que o RD Gateway “autoriza” e ainda assim o logon falha?

Porque a autorização do Gateway valida acesso ao túnel (CAP/RAP). A autenticação final ocorre no host de destino. Se falhar (NLA, senha expirada, direitos), o RDG já terá feito sua parte, mas o servidor recusará a sessão.

Posso usar a mesma credencial para Gateway e host?

Sim, mas isso não significa que o formato seja o mesmo. O Gateway aceita UPN público, enquanto o host pode requerer DOMÍNIO\usuário ou UPN do domínio interno. Desmarcar o uso automático de credenciais do RDG evita confusões.

Desabilitar a NLA resolve definitivamente?

Não é recomendado. A NLA protege o servidor antes de abrir a sessão RDP. Use a desativação apenas para teste, corrija o cliente e volte a ativar.

O problema ocorre só com um usuário específico. O que verificar?

Senha expirada, bloqueio por tentativas anteriores (cache do cliente), direitos de logon e membership em grupos que podem estar na lista “Negar logon por RDS”.

Exemplo de roteiro para o help desk

  1. Confirmar que o usuário está usando DOMÍNIO\usuário e que “Usar minhas credenciais do RDG…” está desmarcado.
  2. Pedir para limpar credenciais salvas (TERMSRV/* e Gateway) e refazer o teste.
  3. Executar Test-NetConnection gateway.seudominio.tld -Port 443 no cliente; registrar resultado.
  4. Solicitar ao time de servidores a leitura do evento 4625 mais recente no host, com SubStatus.
  5. Se o SubStatus for 0xC0000224/0xC0000071, resetar senha e liberar logon; se 0xC000015B, ajustar direitos de logon; se 0xC000006A, limpar credenciais e testar novamente.
  6. Caso a conexão funcione com NLA desabilitada, atualizar cliente RDP e reativar NLA.

Resumo prático

  • Cliente: desmarcar uso de credenciais do RDG para o host e informar DOMÍNIO\usuário.
  • Limpeza: remover credenciais salvas do RDP/Gateway.
  • NLA: testar temporariamente sem NLA; se funcionar, atualizar cliente e reativar.
  • Conta: checar expiração/bloqueio/“deve alterar”.
  • Políticas: CAP/RAP no RDG e direitos de logon RDP no host.
  • Logs: ler 4625 e agir pelo SubStatus.

Checklist copiável

[ ] Conectividade 443 (Gateway) ou 3389 (sem Gateway) confirmada
[ ] "Usar minhas credenciais do RDG..." desmarcado no mstsc
[ ] Usuário no formato DOMÍNIO\usuário ou usuario@dominio.interno
[ ] Credenciais TERMSRV/* removidas do Gerenciador de Credenciais
[ ] Teste sem NLA (temporário) → cliente RDP atualizado → NLA reativada
[ ] Senha verificada (sem expiração/obrigação de troca)
[ ] CAP/RAP conferidas (usuário/host/porta corretos)
[ ] Direitos de logon RDS conferidos (Allow/Deny)
[ ] Evento 4625 analisado (SubStatus mapeado e tratado)

Boa prática: evite expor a 3389 na Internet; padronize RD Gateway (443) ou VPN com MFA, e limite CAP/RAP por grupos e recursos mínimos necessários.

Índice