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
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
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.
Na VM de solução de problemas, abra uma janela do console do PowerShell.
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.
Na VM de solução de problemas, baixe PSTools.
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.
Na VM de solução de problemas, inicie o Editor do Registro (regedit.exe) e selecione Arquivo>Conectar Registro de Rede.
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|
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.
Inicie uma conexão de área de trabalho remota com a VM de recuperação.
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.
Antes de fazer qualquer alteração, crie uma cópia da pasta \windows\system32\config caso seja necessário reverter as alterações.
Na VM de solução de problemas, inicie o Editor do Registro (regedit.exe).
Destaque a chave HKEY_LOCAL_MACHINE e selecione Arquivo>Carregar Hive no menu.
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.
Faça as seguintes alterações na ramificação BROKENSYSTEM:
Verifique de qual chave de registro ControlSet a VM está iniciando. Você verá seu número de chave em HKLM\BROKENSYSTEM\Select\Current.
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|
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|
Destaque BROKENSYSTEM e selecione Arquivo>Descarregar Hive no menu.
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.