Neste artigo, você aprenderá a usar o diagnóstico NSG do Azure Network Watcher para verificar e solucionar problemas de regras de segurança aplicadas ao seu tráfego do Azure por meio de grupos de segurança de rede e do Azure Virtual Network Manager. O diagnóstico NSG verifica se o tráfego é permitido ou negado pelas regras de segurança aplicadas.
O exemplo neste artigo mostra como um grupo de segurança de rede mal configurado pode impedir que você use o Azure Bastion para se conectar a uma máquina virtual.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
Azure Cloud Shell ou Azure PowerShell.
As etapas neste artigo executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Open Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell de dentro do portal do Azure.
Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. Este artigo requer o módulo Az PowerShell. Para obter mais informações, consulte Como instalar o Azure PowerShell. Para localizar a versão instalada, execute Get-InstalledModule -Name Az. Se você executar o PowerShell localmente, entre no Azure usando o cmdlet Connect-AzAccount .
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
Azure Cloud Shell ou CLI do Azure.
As etapas neste artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Open Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell de dentro do portal do Azure.
Você também pode instalar a CLI do Azure localmente para executar os comandos. Se você executar a CLI do Azure localmente, entre no Azure usando o comando az login .
Criar uma rede virtual e um host Bastion
Nesta seção, você cria uma rede virtual com duas sub-redes e um host do Azure Bastion. A primeira sub-rede é usada para a máquina virtual e a segunda sub-rede é usada para o host Bastion. Você também cria um grupo de segurança de rede e o aplica à primeira sub-rede.
Na caixa de pesquisa na parte superior do portal, insira redes virtuais. Selecione Redes virtuais nos resultados da pesquisa.
Selecione + Criar. Em Criar rede virtual, insira ou selecione os seguintes valores na guia Noções básicas :
| Configurações |
Valor |
|
Detalhes do Projeto |
|
| Subscrição |
Selecione sua assinatura do Azure. |
| Grupo de Recursos |
Selecione Criar novo.
Digite myResourceGroup em Name.
Selecione OK. |
|
Detalhes da instância |
|
| Nome da rede virtual |
Digite myVNet. |
| Região |
Selecione (EUA) Leste dos EUA. |
Selecione a guia Segurança ou selecione o botão Avançar na parte inferior da página.
Em Azure Bastion, selecione Habilitar Azure Bastion e aceite os valores padrão:
| Configurações |
Valor |
| Nome do host do Azure Bastion |
myVNet-Bastion. |
| Endereço IP público do Azure Bastion |
(Novo) myVNet-bastion-publicIpAddress. |
Selecione a guia Endereços IP ou selecione o botão Avançar na parte inferior da página.
Aceite o espaço de endereço IP padrão 10.0.0.0/16 e edite a sub-rede padrão selecionando o ícone de lápis. Na página Editar sub-rede, insira os seguintes valores:
| Configurações |
Valor |
|
Detalhes da sub-rede |
|
| Nome |
Digite mySubnet. |
|
Segurança |
|
| Grupo de segurança de rede |
Selecione Criar novo.
Digite mySubnet-nsg em Nome.
Selecione OK. |
Selecione Rever + criar.
Reveja as definições e, em seguida, selecione Criar.
Crie um grupo de recursos usando New-AzResourceGroup. Um grupo de recursos do Azure é um contêiner lógico no qual recursos do Azure são implantados e geridos.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Crie um grupo de segurança de rede padrão usando New-AzNetworkSecurityGroup.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
Crie uma configuração de sub-rede para a sub-rede da máquina virtual e a sub-rede do host Bastion usando New-AzVirtualNetworkSubnetConfig.
# Create subnets configuration.
$firstSubnet = New-AzVirtualNetworkSubnetConfig -Name 'mySubnet' -AddressPrefix '10.0.0.0/24' -NetworkSecurityGroup $networkSecurityGroup
$secondSubnet = New-AzVirtualNetworkSubnetConfig -Name 'AzureBastionSubnet' -AddressPrefix '10.0.1.0/26'
Crie uma rede virtual usando New-AzVirtualNetwork.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet, $secondSubnet
Crie o recurso de endereço IP público necessário para o host Bastion usando New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Crie o host Bastion usando New-AzBastion.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
Crie um grupo de recursos com az group create. Um grupo de recursos do Azure é um contêiner lógico no qual recursos do Azure são implantados e geridos.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Crie um grupo de segurança de rede padrão usando az network nsg create.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Crie uma rede virtual usando az network vnet create.
az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 --network-security-group 'mySubnet-nsg'
Crie uma sub-rede para o Azure Bastion usando az network vnet subnet create.
# Create AzureBastionSubnet.
az network vnet subnet create --name 'AzureBastionSubnet' --resource-group 'myResourceGroup' --vnet-name 'myVNet' --address-prefixes '10.0.1.0/26'
Crie um endereço IP público para o host Bastion usando az network public-ip create.
# Create a public IP address resource.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku Standard
Crie um host Bastion usando az network bastion create.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Importante
O preço por hora começa a partir do momento em que o host Bastion é implantado, independentemente do uso de dados de saída. Para obter mais informações, veja os Preços. Recomendamos que elimine este recurso assim que terminar de o utilizar.
Criar uma máquina virtual
Nesta seção, você cria uma máquina virtual e um grupo de segurança de rede aplicado à sua interface de rede.
Na caixa de pesquisa na parte superior do portal, insira máquinas virtuais. Selecione Máquinas virtuais nos resultados da pesquisa.
Selecione + Criar e, em seguida, selecione Máquina virtual do Azure.
Em Criar uma máquina virtual, insira ou selecione os seguintes valores na guia Noções básicas :
| Configurações |
Valor |
|
Detalhes do Projeto |
|
| Subscrição |
Selecione sua assinatura do Azure. |
| Grupo de Recursos |
Selecione myResourceGroup. |
|
Detalhes da instância |
|
| Nome da máquina virtual |
Digite myVM. |
| Região |
Selecione (EUA) Leste dos EUA. |
| Opções de disponibilidade |
Selecione Sem necessidade de redundância de infraestrutura. |
| Tipo de segurança |
selecione Standard. |
| Imagem |
Selecione Windows Server 2022 Datacenter: Azure Edition - x64 Gen2. |
| Tamanho |
Escolha um tamanho ou deixe a configuração padrão. |
|
Conta de administrador |
|
| Nome de utilizador |
Introduza um nome de utilizador. |
| Palavra-passe |
Introduza uma palavra-passe. |
| Confirme a palavra-passe |
Reintroduza a palavra-passe. |
Selecione o separador Rede, ou selecione Avançar: Discos, depois Avançar: Rede.
Na guia Rede, selecione os seguintes valores:
| Configurações |
Valor |
|
Interface de Rede |
|
| Rede virtual |
Selecione myVNet. |
| sub-rede |
Selecione padrão . |
| IP público |
Selecione Nenhum. |
| Grupo de segurança de rede NIC |
Selecione Básico. |
| Portas de entrada públicas |
Selecione Nenhum. |
Selecione Verificar + criar.
Reveja as definições e, em seguida, selecione Criar.
Crie um grupo de segurança de rede padrão usando New-AzNetworkSecurityGroup.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
Crie uma máquina virtual usando New-AzVM. Quando solicitado, digite um nome de usuário e senha.
# Create a virtual machine using the latest Windows Server 2022 image.
New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName 'myVM-nsg' -ImageName 'MicrosoftWindowsServer:WindowsServer:2022-Datacenter-azure-edition:latest'
Crie um grupo de segurança de rede padrão usando az network nsg create.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Crie uma máquina virtual usando az vm create. Quando solicitado, digite um nome de usuário e senha.
# Create a virtual machine using the latest Windows Server 2022 image.
az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Win2022AzureEditionCore'
Adicionar uma regra de segurança ao grupo de segurança de rede
Nesta seção, você adiciona uma regra de segurança ao grupo de segurança de rede associado à interface de rede de myVM. A regra nega qualquer tráfego de entrada da rede virtual.
Na caixa de pesquisa na parte superior do portal, insira grupos de segurança de rede. Selecione Grupos de segurança de rede nos resultados da pesquisa.
Na lista de grupos de segurança de rede, selecione myVM-nsg.
Em Configurações, selecione Regras de segurança de entrada.
Selecione + Adicionar. Na guia Rede, insira ou selecione os seguintes valores:
| Configurações |
Valor |
| Fonte |
Selecione Etiqueta de serviço. |
| Etiqueta de serviço de origem |
Selecione VirtualNetwork. |
| Intervalos de portas de origem |
Introduza *. |
| Destino |
Selecione Todos. |
| Serviço |
Selecione Personalizado. |
| Intervalos de portas de destino |
Introduza *. |
| Protocolo |
Selecione Todos. |
| Ação |
Selecione Negar. |
| Prioridade |
Introduza 1000. |
| Nome |
Digite DenyVnetInBound. |
Selecione Adicionar.
Use Add-AzNetworkSecurityRuleConfig para criar uma regra de segurança que negue o tráfego da rede virtual. Em seguida, use Set-AzNetworkSecurityGroup para atualizar o grupo de segurança de rede com a nova regra de segurança.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule that denies inbound traffic from the virtual network service tag.
Add-AzNetworkSecurityRuleConfig -Name 'DenyVnetInBound' -NetworkSecurityGroup $networkSecurityGroup `
-Access 'Deny' -Protocol '*' -Direction 'Inbound' -Priority '1000' `
-SourceAddressPrefix 'virtualNetwork' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
Use az network nsg rule create para adicionar ao grupo de segurança de rede uma regra de segurança que negue o tráfego da rede virtual.
# Add to the network security group a security rule that denies inbound traffic from the virtual network service tag.
az network nsg rule create --name 'DenyVnetInBound' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '1000' \
--access 'Deny' --protocol '*' --direction 'Inbound' --source-address-prefixes 'virtualNetwork' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
Observação
A marca de serviço VirtualNetwork representa o espaço de endereço da rede virtual, todos os espaços de endereço locais conectados, redes virtuais emparelhadas, redes virtuais conectadas a um gateway de rede virtual, o endereço IP virtual do host e prefixos de endereço usados em rotas definidas pelo usuário. Para obter mais informações, consulte Tags de serviço.
Verificar as regras de segurança aplicadas ao tráfego de uma máquina virtual
Use o diagnóstico NSG para verificar as regras de segurança aplicadas ao tráfego originado da sub-rede Bastion para a máquina virtual.
Na caixa de pesquisa na parte superior do portal, procure e selecione Observador de Rede.
Em Ferramentas de diagnóstico de rede, selecione Diagnóstico NSG.
Na página Diagnóstico NSG , insira ou selecione os seguintes valores:
| Configurações |
Valor |
|
Recurso de destino |
|
| Tipo de recurso de destino |
Selecione Máquina virtual. |
| Máquina virtual |
Selecione myVM virtual machine. |
|
Detalhes do trânsito |
|
| Protocolo |
Selecione TCP. Outras opções disponíveis são: Any, UDP e ICMP. |
| Direção |
Selecione Entrada. Outra opção disponível é: Outbound. |
| Tipo de fonte |
Selecione Endereço IPv4/CIDR. Outra opção disponível é: Service Tag. |
| Endereço IPv4/CIDR |
Digite 10.0.1.0/26, que é o intervalo de endereços IP da sub-rede Bastion. Os valores aceitáveis são: endereço IP único, vários endereços IP, prefixo IP único, vários prefixos IP. |
| Endereço IP de destino |
Deixe o padrão de 10.0.0.4, que é o endereço IP do myVM. |
| Porta de destino |
Digite * para incluir todas as portas. |
Selecione Executar diagnóstico NSG para executar o teste. Assim que o diagnóstico NSG concluir a verificação de todas as regras de segurança, ele exibirá o resultado.
O resultado mostra que há três regras de segurança avaliadas para a conexão de entrada da sub-rede Bastion:
-
GlobalRules: esta regra de administração de segurança é aplicada no nível da rede virtual usando o Azure Virtual Network Manage. A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
mySubnet-nsg: este grupo de segurança de rede é aplicado no nível da sub-rede (sub-rede da máquina virtual). A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
myVM-nsg: este grupo de segurança de rede é aplicado ao nível da interface de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
Selecione Exibir detalhes de myVM-nsg para ver detalhes sobre as regras de segurança que esse grupo de segurança de rede tem e qual regra está negando o tráfego.
No grupo de segurança de rede myVM-nsg, a regra de segurança DenyVnetInBound nega qualquer tráfego proveniente do espaço de endereço da etiqueta de serviço VirtualNetwork para a máquina virtual. O host Bastion usa endereços IP do intervalo de endereços: 10.0.1.0/26, que está incluído na tag de serviço VirtualNetwork , para se conectar à máquina virtual. Portanto, a conexão do host Bastion é negada pela regra de segurança DenyVnetInBound .
Use Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic para iniciar a sessão de diagnóstico do NSG.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction Inbound -Protocol Tcp -Source 10.0.1.0/26 -Destination 10.0.0.4 -DestinationPort *
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the the NSG diagnostics session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Saída semelhante à saída de exemplo a seguir é retornada:
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Deny",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_DenyVnetInBound",
"Action": "Deny"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_DenyVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
O resultado mostra que há três regras de segurança avaliadas para a conexão de entrada da sub-rede Bastion:
-
GlobalRules: esta regra de administração de segurança é aplicada no nível da rede virtual usando o Azure Virtual Network Manage. A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
mySubnet-nsg: este grupo de segurança de rede é aplicado no nível da sub-rede (sub-rede da máquina virtual). A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
myVM-nsg: este grupo de segurança de rede é aplicado ao nível da interface de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
No grupo de segurança de rede myVM-nsg, a regra de segurança DenyVnetInBound nega qualquer tráfego proveniente do espaço de endereço da etiqueta de serviço VirtualNetwork para a máquina virtual. O host Bastion usa endereços IP de 10.0.1.0/26, que estão incluídos na tag de serviço 'VirtualNetwork', para se conectar à máquina virtual. Portanto, a conexão do host Bastion é negada pela regra de segurança DenyVnetInBound .
Use az network watcher run-configuration-diagnostic para iniciar a sessão de diagnóstico do NSG.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Saída semelhante à saída de exemplo a seguir é retornada:
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Deny",
"ruleName": "UserRule_DenyVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_DenyVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Deny"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
O resultado mostra que há três regras de segurança avaliadas para a conexão de entrada da sub-rede Bastion:
-
GlobalRules: esta regra de administração de segurança é aplicada no nível da rede virtual usando o Azure Virtual Network Manage. A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
mySubnet-nsg: este grupo de segurança de rede é aplicado no nível da sub-rede (sub-rede da máquina virtual). A regra permite o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
-
myVM-nsg: este grupo de segurança de rede é aplicado ao nível da interface de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede Bastion para a máquina virtual.
No grupo de segurança de rede myVM-nsg, a regra de segurança DenyVnetInBound nega qualquer tráfego proveniente do espaço de endereço da etiqueta de serviço VirtualNetwork para a máquina virtual. O host Bastion usa endereços IP de 10.0.1.0/26, que estão incluídos na tag de serviço 'VirtualNetwork', para se conectar à máquina virtual. Portanto, a conexão do host Bastion é negada pela regra de segurança DenyVnetInBound .
Adicionar uma regra de segurança para permitir o tráfego da sub-rede Bastion
Para se conectar a myVM usando o Azure Bastion, o tráfego da sub-rede Bastion deve ser permitido pelo grupo de segurança de rede. Para permitir o tráfego a partir de 10.0.1.0/26, adicione uma regra de segurança com uma prioridade mais alta (número de prioridade mais baixo) do que a regra DenyVnetInBound ou edite a regra DenyVnetInBound para permitir o tráfego da sub-rede Bastion.
Você pode adicionar a regra de segurança ao grupo de segurança de rede na página Inspetor de Rede que mostrou os detalhes sobre a regra de segurança que nega o tráfego para a máquina virtual.
Para adicionar a regra de segurança a partir do Observador de Rede, selecione + Adicionar regra de segurança e, em seguida, introduza ou selecione os seguintes valores:
| Configurações |
Valor |
| Fonte |
Selecione IP Addresses. |
| Endereços IP de origem/intervalos CIDR |
Digite 10.0.1.0/26, que é o intervalo de endereços IP da sub-rede Bastion. |
| Intervalos de portas de origem |
Introduza *. |
| Destino |
Selecione Todos. |
| Serviço |
Selecione Personalizado. |
| Intervalos de portas de destino |
Introduza *. |
| Protocolo |
Selecione Todos. |
| Ação |
Selecione Permitir. |
| Prioridade |
Digite 900, que é uma prioridade maior do que 1000 usada para a regra DenyVnetInBound . |
| Nome |
Digite AllowBastionConnections. |
Selecione Verificar novamente para executar a sessão de diagnóstico novamente. A sessão de diagnóstico agora deve mostrar que o tráfego da sub-rede Bastion é permitido.
A regra de segurança AllowBastionConnections permite o tráfego de qualquer endereço IP em 10.0.1.0/26 para a máquina virtual. Como o host Bastion usa endereços IP de 10.0.1.0/26, sua conexão com a máquina virtual é permitida pela regra de segurança AllowBastionConnections .
Use Add-AzNetworkSecurityRuleConfig para criar uma regra de segurança que permita o tráfego da sub-rede Bastion. Em seguida, use Set-AzNetworkSecurityGroup para atualizar o grupo de segurança de rede com a nova regra de segurança.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule.
Add-AzNetworkSecurityRuleConfig -Name 'AllowBastionConnections' -NetworkSecurityGroup $networkSecurityGroup -Priority '900' -Access 'Allow' `
-Protocol '*' -Direction 'Inbound' -SourceAddressPrefix '10.0.1.0/26' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
Use Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic para verificar novamente usando uma nova sessão de diagnóstico do NSG.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction 'Inbound' -Protocol 'Tcp' -Source '10.0.1.0/26' -Destination '10.0.0.4' -DestinationPort '*'
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the diagnostic session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Saída semelhante à saída de exemplo a seguir é retornada:
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Allow",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_AllowBastionConnections",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_AllowBastionConnections",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
A regra de segurança AllowBastionConnections permite o tráfego de qualquer endereço IP em 10.0.1.0/26 para a máquina virtual. Como o host Bastion usa endereços IP de 10.0.1.0/26, sua conexão com a máquina virtual é permitida pela regra de segurança AllowBastionConnections .
Use az network nsg rule create para adicionar ao grupo de segurança de rede uma regra de segurança que permita o tráfego proveniente da sub-rede Bastion.
# Add a security rule to the network security group.
az network nsg rule create --name 'AllowBastionConnections' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '900' \
--access 'Allow' --protocol '*' --direction 'Inbound' --source-address-prefixes '10.0.1.0/26' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
Utilize az network watcher run-configuration-diagnostic para reavaliar usando uma nova sessão de diagnóstico NSG.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Saída semelhante à saída de exemplo a seguir é retornada:
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Allow",
"ruleName": "UserRule_AllowBastionConnections"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_AllowBastionConnections",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Allow"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
A regra de segurança AllowBastionConnections permite o tráfego de qualquer endereço IP em 10.0.1.0/26 para a máquina virtual. Como o host Bastion usa endereços IP de 10.0.1.0/26, sua conexão com a máquina virtual é permitida pela regra de segurança AllowBastionConnections .
Limpeza de recursos
Quando não for mais necessário, exclua o grupo de recursos e todos os recursos que ele contém:
Na caixa de pesquisa que se encontra na parte superior do portal, introduza myResourceGroup. Selecione myResourceGroup nos resultados da pesquisa.
Selecione Eliminar grupo de recursos.
Em Excluir um grupo de recursos, digite myResourceGroup e selecione Excluir.
Selecione Excluir para confirmar a exclusão do grupo de recursos e de todos os seus recursos.
Use Remove-AzResourceGroup para excluir o grupo de recursos e todos os recursos que ele contém.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Use az group delete para remover o grupo de recursos e todos os recursos que ele contém
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
Conteúdo relacionado