Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá a diagnosticar problemas de filtro de tráfego de rede para uma VM (máquina virtual). O processo envolve a exibição das regras de segurança efetivas aplicadas pelo NSG (grupo de segurança de rede).
NSGs permitem que você controle os tipos de tráfego que entram e saem de uma máquina virtual. Você pode associar um NSG a uma sub-rede em uma rede virtual do Azure, uma interface de rede conectada a uma VM ou ambos. As regras de segurança efetivas aplicadas a uma interface de rede são uma agregação das regras existentes no NSG associado a uma interface de rede e a sub-rede na qual a interface de rede está inserida. As regras em NSGs diferentes às vezes podem entrar em conflito entre si e afetar a conectividade de rede de uma VM. Você pode visualizar todas as regras de segurança efetivas dos NSGs aplicados nas interfaces de rede da VM. Se você não estiver familiarizado com os conceitos de rede virtual, interface de rede ou NSG, consulte Visão geral da rede virtual , Interface de rede e Visão geral dos grupos de segurança de rede .
Cenário
Você tenta se conectar a uma VM pela porta 80 da internet, mas a conexão falha. Para determinar por que você não pode acessar a porta 80 da Internet, é possível visualizar as regras de segurança eficazes para uma interface de rede usando o Portal do Azure , PowerShell ou o CLI do Azure .
As etapas a seguir supõem que você tenha uma VM existente para visualizar as regras de segurança efetivas. Se você não tiver uma VM existente, primeiro implemente uma VM Linux ou Windows para concluir as tarefas deste artigo. Os exemplos neste artigo são para uma VM nomeada myVM com um adaptador de rede nomeado myVMVMNic. A VM e o adaptador de rede estão em um grupo de recursos nomeado myResourceGroup, e estão na região Leste dos EUA. Altere os valores nas etapas, conforme apropriado, para a VM para a qual você está diagnosticando o problema.
Diagnosticar usando o portal do Azure
Faça logon no portal do Azure com uma conta do Azure que tenha as permissões necessárias.
Na parte superior do portal do Azure, insira o nome da VM na caixa de pesquisa. Quando o nome da VM aparecer nos resultados da pesquisa, selecione-o.
Expanda Networking no painel esquerdo. Selecione configurações de rede. As figuras a seguir mostram as configurações do grupo de segurança de rede para a interface de rede da VM.
As regras que você vê listadas nos números anteriores são para um adaptador de rede chamado vm-1445. Veja que há regras de porta de entrada para a interface de rede de dois diferentes grupos de segurança de rede:
- sub-rede NSG: associado à sub-rede na qual o adaptador de rede está.
- nsg-nic: associado à interface de rede na VM chamada vm-1445.
A regra nomeada DenyAllInBound é o que está impedindo a comunicação de entrada para a máquina virtual pela porta 80, da internet, conforme descrito no cenário. A regra lista 0.0.0.0/0 para Fonte, que inclui a internet. Nenhuma outra regra com uma prioridade mais alta (número menor) permite que a porta 80 entrada. Para permitir o acesso da porta 80 à máquina virtual a partir da internet, consulte Resolver um Problema. Para saber mais sobre as regras de segurança e como o Azure aplica-las, consulte grupos de segurança de rede.
Na parte inferior da imagem, você também vê regras de porta de saída. As regras de porta de saída para a interface de rede são listadas.
Embora a imagem mostre apenas quatro regras de entrada para cada NSG, seus NSGs podem ter muito mais de quatro regras. Na imagem, você verá VirtualNetwork em Origem e Destino e AzureLoadBalancer em SOURCE. VirtualNetwork e AzureLoadBalancer são marcas de serviço. As tags de serviço representam um grupo de prefixos de endereço IP para ajudar a minimizar a complexidade da criação de regras de segurança.
Para exibir as regras de segurança efetivas, selecione a interface nas configurações de rede da máquina virtual. Verifique se a VM está em um estado em execução antes de continuar.
Nas configurações do adaptador de rede, expanda a Ajuda e selecione Regras de segurança efetivas.
O exemplo a seguir mostra o exemplo de interface de rede vm-1445 com as regras de segurança efetivas selecionadas.
As regras listadas são o mesmo que você viu no passo 3, embora existam em diferentes guias para o NSG associado à interface de rede e a sub-rede. Como você pode ver na imagem, somente as primeiras 50 regras são mostradas. Para fazer o download de um arquivo. csv que contém todas as regras, selecione baixar.
As etapas anteriores mostraram as regras de segurança para um adaptador de rede chamado vm-1445. E se uma VM tiver dois adaptadores de rede? A máquina virtual neste exemplo tem duas interfaces de rede conectadas a ela. As regras de segurança efetivas podem ser diferentes para cada interface de rede.
Para ver as regras para a interface de rede vm-nic-2, selecione-a. Conforme mostrado no exemplo a seguir, o adaptador de rede tem as mesmas regras associadas à sua sub-rede que o adaptador de rede vm-1445 , porque ambos os adaptadores de rede estão na mesma sub-rede. Quando você associa um NSG a uma sub-rede, suas regras são aplicadas a todas as interfaces de rede na sub-rede.
Ao contrário do adaptador de rede vm-1445 , o adaptador de rede vm-nic-2 não tem um grupo de segurança de rede associado a ele. Cada interface de rede e sub-rede podem ter zero ou um NSG associado a ele. O NSG associado a cada interface de rede ou sub-rede pode ser o mesmo ou diferente. Você pode associar o mesmo grupo de segurança de rede a quantas interfaces de rede e sub-redes desejar.
Embora as regras de segurança efetivas tenham sido visualizadas na VM, também é possível visualizar regras de segurança efetivas por meio de um indivíduo.
- Adaptador de rede: Saiba comoexibir um adaptador de rede.
- NSG: Saiba como exibir um NSG.
Diagnosticar usando o PowerShell
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
É possível executar os comandos a seguir no Azure Cloud Shell ou executando o PowerShell no computador. O Azure Cloud Shell é um shell interativo gratuito. Ele possui ferramentas comuns do Azure instaladas e configuradas para usar com sua conta. Se executar o PowerShell do computador, será necessário o módulo do Azure PowerShell, versão 1.0.0 ou posterior. Execute Get-Module -ListAvailable Az
no computador para localizar a versão instalada. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se estiver executando o PowerShell localmente, também precisará executar Connect-AzAccount
para fazer logon no Azure com uma conta que tenha as permissões necessárias.
Obtenha as regras de segurança efetiva para uma interface de rede com Get-AzEffectiveNetworkSecurityGroup. O exemplo a seguir obtém as regras de segurança efetivas para um adaptador de rede chamado vm-nic que está em um grupo de recursos chamado test-rg:
$Params = @{
NetworkInterfaceName = "vm-nic"
ResourceGroupName = "test-rg"
}
Get-AzEffectiveNetworkSecurityGroup @Params
A saída é retornada no formato JSON. Para reconhecimento da saída, consulte Interpretar a saída do comando. A saída é retornada somente se um NSG estiver associado à interface de rede, à sub-rede em que a interface de rede está, ou a ambos. A máquina virtual deve estar no estado de execução. Uma VM pode ter várias interfaces de rede com diferentes NSGs aplicados. Ao solucionar problemas, execute o comando para cada interface de rede.
Se você ainda estiver tendo um problema de conectividade, confira mais diagnósticos e considerações.
Se você souber apenas o nome da VM, use os comandos a seguir para listar todas as IDs de interface de rede anexadas à VM.
$Params = @{
Name = "vm-1"
ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile
Você receberá uma saída semelhante ao exemplo a seguir:
NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/vm-nic
Na saída anterior, o nome da interface de rede é vm-nic.
Diagnosticar usando a CLI do Azure
Se usar os comandos da CLI do Azure para concluir as tarefas neste artigo, execute os comandos no Azure Cloud Shell ou então executando a CLI do computador. Este artigo requer a CLI do Azure versão 2.0.32 ou posterior. Execute az --version
para localizar a versão instalada. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure. Se você estiver executando a CLI do Azure localmente, também precisará executar az login
e fazer logon no Azure com uma conta que tenha as permissões necessárias.
Obtenha as regras de segurança efetivas para uma interface de rede com az network nic list-effective-nsg. O exemplo a seguir obtém as regras de segurança efetivas para um adaptador de rede chamado vm-nic que está em um grupo de recursos chamado test-rg:
az network nic list-effective-nsg \
--name vm-nic \
--resource-group test-rg
A saída é retornada no formato JSON. Para compreender a saída, veja interpretar a saída do comando. A saída só é retornada se um NSG estiver associado à interface de rede, à sub-rede em que a interface de rede está, ou a ambos. A máquina virtual deve estar no estado de execução. Uma VM pode ter várias interfaces de rede com diferentes NSGs aplicados. Ao solucionar problemas, execute o comando para cada interface de rede.
Se você ainda estiver tendo um problema de conectividade, confira mais diagnósticos e considerações.
Se você souber apenas o nome da VM, use os comandos a seguir para listar todas as IDs de interface de rede anexadas à VM.
az vm show \
--name vm-1 \
--resource-group test-rg
Dentro do resultado retornado, você verá informações semelhantes ao seguinte exemplo:
"networkProfile": {
"additionalProperties": {},
"networkInterfaces": [
{
"additionalProperties": {},
"id": "/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-nic",
"primary": true,
"resourceGroup": "test-rg"
},
Na saída anterior, o nome da interface de rede é vm-nic
Interpretar a saída de comando
Independentemente de se você usou o PowerShell, ou o CLI do Azure para diagnosticar o problema, você recebe uma resposta que contém as seguintes informações:
- NetworkSecurityGroup : o ID do grupo de segurança de rede.
- Associação: indica se o grupo de segurança de rede está vinculado a uma Interface de Rede ou Sub-rede. Se o status de associação do NSG for alterado antes de executar o comando, aguarde alguns segundos para que a saída reflita a atualização.
- EffectiveSecurityRules: Uma explicação de cada propriedade está detalhada em Criar uma regra de segurança. Nomes de regras precedidos por defaultSecurityRules/ são regras de segurança padrão que existem em cada NSG. Nomes de regras precedidos por securityRules/ são regras criadas pelo usuário. Regras que especificam uma tag de serviço, como Internet, VirtualNetwork, e AzureLoadBalancer para as propriedades destinationAddressPrefix ou sourceAddressPrefix, também têm valores para a propriedade expandedDestinationAddressPrefix. A propriedade expandedDestinationAddressPrefix lista todos os prefixos de endereço representados pela tag de serviço.
As regras duplicadas aparecem na saída quando um NSG está vinculado ao adaptador de rede e à sub-rede. As regras padrão e as regras personalizadas compartilhadas entre os NSGs causam essas duplicatas.
A regra denominada defaultSecurityRules / DenyAllInBound é o que está impedindo a comunicação de entrada para a VM pela porta 80, da Internet, conforme descrito no cenário. Nenhuma outra regra com prioridade mais alta (número menor) permite a entrada da porta 80 a partir da Internet.
Resolver um problema
Você pode diagnosticar o problema descrito no cenário usando o portal do Azure, o PowerShell ou a CLI do Azure. A solução é criar uma regra de segurança de rede com as seguintes propriedades:
Propriedade | Valor |
---|---|
Fonte | Qualquer |
Intervalos de portas de origem | Qualquer |
Destino | O endereço IP da VM, um intervalo de endereços IP ou todos os endereços na sub-rede. |
Intervalos de portas de destino | 80 |
Protocolo | TCP |
Ação | Permitir |
Prioridade | 100 |
Nome | Permitir-HTTP-Todos |
Após a criação da regra, a porta 80 é permitida na entrada da Internet porque sua prioridade é maior do que a regra DenyAllInBound padrão. Se os NSGs estiverem associados ao adaptador de rede e à sub-rede, crie a mesma regra em ambos os NSGs. Saiba como criar uma regra de segurança .
Quando o Azure processa o tráfego de entrada, ele processa regras no NSG associado à sub-rede (se houver um NSG associado) e processa as regras no NSG associado à interface de rede. Se houver um NSG associado ao adaptador de rede e à sub-rede, a porta deverá estar aberta em ambos os NSGs, para que o tráfego chegue à VM. Para facilitar os problemas de administração e comunicação, recomendamos que você associe um NSG a uma sub-rede, em vez de interfaces de rede individuais. Se as VMs dentro de uma sub-rede precisam de regras de segurança diferentes, você pode fazer com que as interfaces de rede sejam membros de um grupo de segurança de aplicativos (ASG) e especificar um ASG como a origem e o destino de uma regra de segurança. Saiba mais sobre grupos de segurança de aplicativos .
Se você ainda estiver tendo problemas de comunicação, consulte Considerações e mais diagnósticos.
Considerações
Considere os seguintes pontos ao solucionar problemas de conectividade:
As regras de segurança padrão bloqueiam o acesso de entrada da Internet e permitem somente o tráfego de entrada da rede virtual. Para permitir o tráfego de entrada da Internet, adicione regras de segurança com uma prioridade mais alta que as regras padrão. Saiba mais sobre padrão de regras de segurança, ou como adicionar uma regra de segurança.
Para redes virtuais emparelhadas, por padrão, a marca de serviço VIRTUAL_NETWORK se expande automaticamente para incluir prefixos para redes virtuais emparelhadas. Para solucionar quaisquer problemas relacionados ao emparelhamento de rede virtual, você pode exibir os prefixos na lista ExpandedAddressPrefix . Saiba mais sobre o emparelhamento de rede virtual e de marcas de serviço.
O Azure só mostra regras de segurança efetivas para um adaptador de rede quando um NSG está associado ao adaptador de rede ou sub-rede da VM. Além disso, a VM deve estar no estado em execução.
Se o adaptador de rede ou a sub-rede não tiver um NSG associado, todas as portas permanecerão abertas para acesso de entrada e saída quando uma VM tiver um endereço IP público. Essa configuração permite acesso irrestrito de e para qualquer lugar. Para proteger a VM, aplique um NSG à sub-rede que hospeda o adaptador de rede se ele tiver um endereço IP público.
Mais diagnósticos
- Para executar um teste rápido para determinar se o tráfego é permitido para ou de uma VM, use a capacidade "Verificar fluxo IP" do Observador de Rede do Azure. A verificação de fluxo IP indica se o tráfego é permitido ou negado. Se negado, a verificação de fluxo de IP informa qual regra de segurança está negando o tráfego.
- Se não houver regras de segurança que causem falha na conectividade de rede de uma VM, o problema pode ser devido a:
- Software de firewall em execução no sistema operacional da VM
- Rotas configuradas para aplicativos virtuais ou tráfego no local. O tráfego da Internet pode ser redirecionado para sua rede local por meio de encapsulamento forçado . Se você forçar o tráfego de internet de túnel para uma solução de virtualização ou local, talvez não consiga se conectar à VM por meio da Internet. Para saber como diagnosticar problemas de rota que podem impedir o fluxo de tráfego para fora da VM, consulte Diagnosticar um problema de roteamento de tráfego de rede de máquina virtual.
Próximas etapas
- Saiba mais sobre todas as tarefas, propriedades e configurações para um grupo de segurança de rede e as regras de segurança.
- Saiba mais sobre regras de segurança padrão, tags de serviço e como o Azure processa as regras de segurança para o tráfego de entrada e saída de uma máquina virtual.