Partilhar via


Habilitar ou desabilitar uma regra de firewall em um sistema operacional convidado da VM do Azure

Aplica-se a: ✔️ VMs do Windows

Este artigo fornece uma referência para solução de problemas em uma situação na qual você suspeita que o firewall do sistema operacional convidado esteja filtrando o tráfego parcial em uma máquina virtual (VM). Isso pode ser útil pelas seguintes razões:

  • Se uma alteração foi feita deliberadamente no firewall que causou falha nas conexões RDP, o uso do recurso Custom Script Extension pode resolver o problema.

  • Desabilitar todos os perfis de firewall é uma maneira mais infalível de solucionar problemas do que definir a regra de firewall específica do RDP.

Solução

A forma como você configura as regras de firewall depende do nível de acesso necessário à VM. Os exemplos a seguir usam regras RDP. No entanto, os mesmos métodos podem ser aplicados a qualquer outro tipo de tráfego, apontando para a chave de registro correta.

Solução de problemas on-line

Mitigação 1: extensão de script personalizado

  1. Crie seu script usando o modelo a seguir.

    • Para habilitar uma regra:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Para desativar uma regra:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
      
  2. Carregue este script no portal do Azure usando o recurso Custom Script Extension.

Mitigação 2: PowerShell remoto

Se a VM estiver online e puder ser acessada em outra VM na mesma rede virtual, você poderá fazer as seguintes mitigações usando a outra VM.

  1. Na VM de solução de problemas, abra uma janela do console do PowerShell.

  2. Execute os seguintes comandos, conforme apropriado.

    • Para habilitar uma regra:

      Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
      Enable-NetFirewallRule -DisplayName  "RemoteDesktop-UserMode-In-TCP"
      exit
      
    • Para desativar uma regra:

      Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
      Disable-NetFirewallRule -DisplayName  "RemoteDesktop-UserMode-In-TCP"
      exit
      

Mitigação 3: comandos do PSTools

Se a VM estiver online e puder ser acessada em outra VM na mesma rede virtual, você poderá fazer as seguintes mitigações usando a outra VM.

  1. Na VM de solução de problemas, baixe PSTools.

  2. Abra uma instância CMD e acesse a VM por meio de seu IP interno (DIP).

    • Para habilitar uma regra:

      psexec \\<DIP> ​-u <username> cmd
      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Para desativar uma regra:

      psexec \\<DIP> ​-u <username> cmd
      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
      

Mitigação 4: registro remoto

Se a VM estiver online e puder ser acessada em outra VM na mesma rede virtual, você poderá usar o Registro Remoto na outra VM.

  1. Na VM de solução de problemas, inicie o Editor do Registro (regedit.exe) e selecione Arquivo>Conectar Registro de Rede.

  2. Abra a ramificação TARGET MACHINE\SYSTEM e especifique os seguintes valores:

    • Para habilitar uma regra, abra o seguinte valor de registro:

      MÁQUINA ALVO\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Em seguida, altere Active=FALSE para Active=TRUE na string:

      v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

    • Para desabilitar uma regra, abra o seguinte valor de registro:

      MÁQUINA ALVO\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Em seguida, altere Ativo =TRUE para Ativo=FALSE:

      v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

  3. Reinicie a VM para aplicar as alterações.

Solução de problemas off-line

Se você não conseguir acessar a VM por nenhum método, o uso da extensão de script personalizado falhará e você terá que trabalhar no modo OFFLINE trabalhando diretamente no disco do sistema.

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

  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 que a letra da unidade atribuída ao disco do sistema anexado.

  4. Antes de fazer qualquer alteração, crie uma cópia da pasta \windows\system32\config caso seja necessário reverter as alterações.

  5. Na VM de solução de problemas, inicie o Editor do Registro (regedit.exe).

  6. Destaque a chave HKEY_LOCAL_MACHINE e selecione Arquivo>Carregar Hive no menu.

    Captura de tela da chave HKEY_LOCAL_MACHINE e da opção Carregar Hive no menu Arquivo do Editor do Registro.

  7. Localize e abra o arquivo \windows\system32\config\SYSTEM.

    Observação

    Você será solicitado a fornecer um nome. Digite BROKENSYSTEM e expanda HKEY_LOCAL_MACHINE. Agora você verá uma chave adicional chamada BROKENSYSTEM. Para esta solução de problemas, estamos montando essas seções de problemas como BROKENSYSTEM.

  8. Faça as seguintes alterações na ramificação BROKENSYSTEM:

    1. Verifique de qual chave de registro ControlSet a VM está iniciando. Você verá seu número de chave em HKLM\BROKENSYSTEM\Select\Current.

    2. Para habilitar uma regra, abra o seguinte valor de registro:

      HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Em seguida, altere Ativo=FALSE para Ativo=True.

      v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

    3. Para desabilitar uma regra, abra a seguinte chave de registro:

      HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Em seguida, altere Ativo=True para Ativo=FALSE.

      v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

  9. Destaque BROKENSYSTEM e selecione Arquivo>Descarregar Hive no menu.

  10. Desconecte o disco do sistema e recrie a VM.

  11. 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.