O firewall do sistema operacional convidado da VM do Azure está bloqueando o tráfego de entrada

Este artigo discute como corrigir o problema do Remote Desktop Portal (RDP) que ocorre se o firewall do sistema operacional convidado bloqueia o tráfego de entrada.

Sintomas

Você não pode usar uma conexão RDP para se conectar a uma máquina virtual (VM) do Azure. A partir do diagnóstico de inicialização -> Captura de tela, mostra que o sistema operacional está totalmente carregado na tela de boas-vindas (Ctrl+Alt+Del).

Motivo

Causa 1

A regra RDP não está configurada para permitir o tráfego RDP.

Causa 2

Os perfis de firewall do sistema convidado são configurados para bloquear todas as conexões de entrada, incluindo o tráfego RDP.

Captura de tela da opção bloquear todas as conexões de entrada na guia Perfil de domínio da janela de configuração do firewall.

Solução

Antes de seguir essas etapas, faça um instantâneo do disco do sistema da VM afetada como um backup. Para obter mais informações, consulte Instantâneo de um disco.

Para corrigir o problema, use um dos métodos em Como usar ferramentas remotas para solucionar problemas de VM do Azure para se conectar à VM remotamente e, em seguida, edite as regras de firewall do sistema operacional convidado para Permitir tráfego RDP.

Solução de problemas on-line

Conecte-se ao Console Serial e abra uma instância do PowerShell. Se o console serial não estiver ativado na VM, vá para "Reparar a VM offline.

Mitigação 1

  1. Se o Azure Agent estiver instalado e funcionando corretamente na VM, você poderá usar a opção "Redefinir configuração apenas" em Ajuda>Redefinir senha no menu da VM.

  2. Executar esta opção de recuperação faz o seguinte:

    • Habilita um componente RDP se ele estiver desabilitado.

    • Ativa todos os perfis de firewall do Windows.

    • Certifique-se de que a regra RDP esteja ativada no Firewall do Windows.

    • Se as etapas anteriores não funcionarem, redefinirá manualmente a regra de firewall. Para fazer isso, consulte todas as regras que contêm o nome "Área de Trabalho Remota" executando o seguinte comando:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(Name.*Remote Desktop)" -context 9,4 | more
      

      Se a porta RDP foi definida para qualquer outra porta diferente de 3389, você deve encontrar qualquer regra personalizada que possa ter sido criada e definida para esta porta. Para consultar todas as regras de entrada que possuem uma porta personalizada, execute o seguinte comando:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(LocalPort.*<CUSTOM PORT>)" -context 9,4 | more
      
  3. Se você perceber que a regra está desativada, ative-a. Para abrir um grupo inteiro, como o grupo integrado de Área de Trabalho Remota, execute o seguinte comando:

    netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
    

    Caso contrário, para abrir a regra específica da Área de Trabalho Remota (TCP-In), execute o seguinte comando:

    netsh advfirewall firewall set rule name="<CUSTOM RULE NAME>" new enable=yes
    
  4. Para solução de problemas, você pode desativar os perfis de firewall:

    netsh advfirewall set allprofiles state off
    

    Depois de concluir a solução de problemas e configurar o firewall corretamente, reative o firewall.

    Observação

    Não é necessário reiniciar a VM para aplicar estas alterações.

  5. Tente fazer uma conexão RDP para acessar a VM.

Mitigação 2

  1. Consulte os perfis de firewall para determinar se a política de firewall de entrada está definida como BlockInboundAlways:

    netsh advfirewall show allprofiles | more
    

    Captura de tela do resultado da consulta dos perfis de firewall de entrada que contém BlockInboundAlways.

    Observação

    As seguintes diretrizes se aplicam à política de firewall, dependendo de como ela está configurada:

    • BlockInbound: Todo o tráfego de entrada será bloqueado, a menos que você tenha uma regra em vigor para permitir esse tráfego.
    • BlockInboundAlways: Todas as regras de firewall serão ignoradas e todo o tráfego será bloqueado.
  2. Defina DefaultInboundAction para nem sempre bloquear o tráfego. Para fazer isso, execute o seguinte comando:

    netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
    
  3. Consulte os perfis novamente para certificar-se de que sua alteração foi feita com sucesso. Para fazer isso, execute o seguinte comando:

    netsh advfirewall show allprofiles | more
    

    Observação

    Não é necessário reiniciar a VM para aplicar as alterações.

  4. Certifique-se de adicionar a regra de entrada para conexão RDP.

  5. Tente novamente acessar sua VM por meio do RDP.

Mitigações off-line

  1. Anexe o disco do sistema a uma VM de recuperação.

  2. Inicie uma conexão de área de trabalho remota com a VM de recuperação.

  3. Certifique-se de que o disco esteja sinalizado como Online no console de gerenciamento de disco. Observe a letra da unidade atribuída ao disco do sistema anexado.

Mitigação 1

Consulte Como Enable-Disable uma regra de Firewall em um sistema operacional convidado.

Mitigação 2

  1. Anexe o disco do sistema a uma VM de recuperação.

  2. Inicie uma conexão de área de trabalho remota com a VM de recuperação.

  3. Depois que o disco do sistema for anexado à VM de recuperação, verifique se o disco está sinalizado como Online no console de gerenciamento de disco. Observe a letra da unidade atribuída ao disco do sistema operacional anexado.

  4. Abra uma instância do PowerShell elevada e execute o seguinte script:

    REM Backup the registry prior doing any change
    robocopy f:\windows\system32\config f:\windows\system32\config.BACK /MT
    
    REM Mount the hive
    reg load HKLM\BROKENSYSTEM f:\windows\system32\config\SYSTEM
    
    REM Delete the keys to block all inbound connection scenario
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    
    REM Unmount the hive
    reg unload HKLM\BROKENSYSTEM
    
  5. Desconecte o disco do sistema e recrie a VM.

  6. Verifique se o problema foi resolvido.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.