Nesse artigo, você aprenderá a usar o Azure Observador de Rede Diagnóstico NSG 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 Gerenciador de Rede Virtual do Azure. O diagnóstico do 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 configurado incorretamente 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 desse artigo executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o 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 no portal do Azure.
Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. Esse artigo requer o módulo Az PowerShell. Para obter mais informações, veja 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 a cmdlet Connect-AzAccount.
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
Azure Cloud Shell ou CLI do Azure.
As etapas desse artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e colá-lo no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no 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 bastion host
Nesta seção, você criará 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 bastion host. Você também pode criar um grupo de segurança de rede e aplicá-lo à primeira sub-rede.
Na caixa de pesquisa na parte superior do portal, digite redes virtuais. Selecione Redes virtuais nos resultados da pesquisa.
Selecione + Criar. Em Criar rede virtual, insira ou selecione os valores a seguir na guia Informações Básicas:
| Configuração |
Valor |
|
Detalhes do projeto |
|
| Subscrição |
Selecione sua assinatura do Azure. |
| Grupo de recursos |
Selecione Criar novo.
Insira myResourceGroup em Nome.
Selecione OK. |
|
Detalhes da instância |
|
| Nome da rede virtual |
Insira MyVnet. |
| Região |
Selecione (EUA) Leste dos EUA. |
Selecione a guia Segurança ou clique no botão Avançar na parte inferior da página.
Em Azure Bastion, selecione Habilitar o Azure Bastion e aceite os valores padrão:
| Configuração |
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ção |
Valor |
|
Detalhes da sub-rede |
|
| Nome |
Insira mySubnet. |
|
Segurança |
|
| Grupo de segurança de rede |
Selecione Criar novo.
Insira mySubnet-nsg no Nome.
Selecione OK. |
Selecione Examinar + criar.
Examine as configurações e selecione Criar.
Crie um grupo de recursos usando New-AzResourceGroup. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.
# 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 bastion host 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 bastion host 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 bastion host com New-AzBastion.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
Criar um grupo de recursos usando az group create. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.
# 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 bastion host 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 bastion host usando az network bastion create.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Importante
Os preços por hora começam a partir do momento em que o Bastion host é implantado, independentemente do uso de dados de saída. Para saber mais, consulte Preços. Recomendamos que você exclua esse recurso quando terminar de usá-lo.
Criar uma máquina virtual
Nesta seção, você criará uma máquina virtual e um grupo de segurança de rede aplicados ao adaptador 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 a máquina virtual do Azure.
Em Criar uma máquina virtual, insira ou selecione os seguintes valores na guia Informações Básicas:
| Configuração |
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 |
Insira a opção myVM. |
| Região |
Selecione (EUA) Leste dos EUA. |
| Opções de disponibilidade |
Selecione Nenhuma redundância de infraestrutura necessária. |
| Tipo de segurança |
Selecione Padrão. |
| Imagem |
Selecione Windows Server 2022 Datacenter: edição do Azure – x64 Gen2. |
| Tamanho |
Escolha um tamanho ou deixe a configuração padrão. |
|
Conta de administrador |
|
| Nome de Usuário |
Digite um nome de usuário. |
| Senha |
Digite uma senha. |
| Confirmar senha |
Reinsira a senha. |
Selecione a guia Rede ou selecione Avançar: Discos, em seguida, Avançar: Rede.
Na guia Rede, selecione os seguintes valores:
| Configuração |
Valor |
|
Interface de rede |
|
| Rede virtual |
Selecione myVNet. |
| Sub-rede |
Selecione padrão. |
| IP público |
Selecione Nenhum. |
| Grupo de segurança de rede da NIC |
Selecione Básico. |
| Porta de entrada públicas |
Selecione Nenhum. |
Selecione Examinar + criar.
Examine as configurações e 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 seu 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 com az vm create. Quando solicitado, digite seu 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ê adicionará uma regra de segurança ao grupo de segurança de rede associado ao adaptador de rede de myVM. A regra nega qualquer tráfego de entrada da rede virtual.
Na caixa de pesquisa na parte superior do portal, digite 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ção |
Valor |
| Fonte |
selecione Marca de Serviço. |
| Marca de serviço de origem |
Selecione VirtualNetwork. |
| Intervalos de portas de origem |
Insira *. |
| Destino |
Selecione Qualquer. |
| Serviço |
selecione Personalizado. |
| Intervalos de portas de destino |
Insira *. |
| Protocolo |
Selecione Qualquer. |
| Ação |
Selecione Negar. |
| Prioridade |
Insira 1000. |
| Nome |
Insira DenyVnetInBound. |
Selecione Adicionar.
Use Add-AzNetworkSecurityRuleConfig para criar uma regra de segurança que nega 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 uma regra de segurança ao grupo de segurança de rede que nega 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 os prefixos de endereço usados em rotas definidas pelo usuário. Para saber mais, confira Marcas de serviço.
Verificar regras de segurança aplicadas a um tráfego de máquina virtual
Use o diagnóstico do NSG para marcar as regras de segurança aplicadas ao tráfego originado da sub-rede do Bastion para a máquina virtual.
Na caixa de pesquisa na parte superior do portal, pesquise e selecione Observador de Rede.
Em Ferramentas de diagnóstico de rede, selecione Diagnóstico de NSG.
Na página Diagnóstico do NSG, insira ou selecione os seguintes valores:
| Configuração |
Valor |
|
Recurso de destino |
|
| Tipo de recurso de destino |
Selecione Máquina virtual. |
| Máquina virtual |
Selecione a máquina virtual myVM. |
|
Detalhes do Tráfego |
|
| Protocolo |
selecione TCP. Outras opções disponíveis são: Todas, UDP e ICMP. |
| Direção |
Selecione Entrada. Outra opção disponível é: Saída. |
| Tipo de origem |
Selecione Endereço IPv4/CIDR. Outra opção disponível é: Marca de serviço. |
| Endereço IPv4/CIDR |
Insira 10.0.1.0/26, que é o intervalo de endereços IP da sub-rede do 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 de myVM. |
| Porta de destino |
Insira * para incluir todas as portas. |
Selecione Executar diagnóstico NSG para executar o teste. Depois que o diagnóstico do 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 do Bastion:
-
GlobalRules: essa regra de administrador de segurança é aplicada no nível da rede virtual usando o Gerenciador de Rede Virtual do Azure. A regra permite o tráfego TCP de entrada da sub-rede do Bastion para a máquina virtual.
-
mySubnet-nsg: esse 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 do Bastion para a máquina virtual.
-
myVM-nsg: esse grupo de segurança de rede é aplicado no nível do adaptador de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede do 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 negou 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 marca de serviço VirtualNetwork para a máquina virtual. O bastion host usa endereços IP do intervalo de endereços: 10.0.1.0/26, que estão incluídos na marca de serviço VirtualNetwork, para se conectar à máquina virtual. Portanto, a conexão do bastion host é 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
É retornada uma saída semelhante ao exemplo a seguir:
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 do Bastion:
-
GlobalRules: essa regra de administrador de segurança é aplicada no nível da rede virtual usando o Gerenciador de Rede Virtual do Azure. A regra permite o tráfego TCP de entrada da sub-rede do Bastion para a máquina virtual.
-
mySubnet-nsg: esse 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 do Bastion para a máquina virtual.
-
myVM-nsg: esse grupo de segurança de rede é aplicado no nível do adaptador de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede do 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 marca de serviço VirtualNetwork para a máquina virtual. O bastion host usa endereços IP de 10.0.1.0/26, que estão incluídos na marca de serviço VirtualNetwork, para se conectar à máquina virtual. Portanto, a conexão do bastion host é 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 '*'
É retornada uma saída semelhante ao exemplo a seguir:
{
"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 do Bastion:
-
GlobalRules: essa regra de administrador de segurança é aplicada no nível da rede virtual usando o Gerenciador de Rede Virtual do Azure. A regra permite o tráfego TCP de entrada da sub-rede do Bastion para a máquina virtual.
-
mySubnet-nsg: esse 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 do Bastion para a máquina virtual.
-
myVM-nsg: esse grupo de segurança de rede é aplicado no nível do adaptador de rede (NIC). A regra nega o tráfego TCP de entrada da sub-rede do 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 marca de serviço VirtualNetwork para a máquina virtual. O bastion host usa endereços IP de 10.0.1.0/26, que estão incluídos na marca de serviço VirtualNetwork, para se conectar à máquina virtual. Portanto, a conexão do bastion host é negada pela regra de segurança DenyVnetInBound .
Adicionar uma regra de segurança para permitir o tráfego da sub-rede do Bastion
Para se conectar à myVM usando o Azure Bastion, o tráfego da sub-rede do Bastion deve ser permitido pelo grupo de segurança de rede. Para permitir o tráfego de 10.0.1.0/26, adicione uma regra de segurança com uma prioridade mais alta (número de prioridade mais baixa) do que a regra DenyVnetInBound ou edite a regra DenyVnetInBound para permitir o tráfego da sub-rede do Bastion.
Você pode adicionar a regra de segurança ao grupo de segurança de rede na página Observador de Rede que mostrou os detalhes sobre a regra de segurança negando o tráfego para a máquina virtual.
Para adicionar a regra de segurança de dentro do Observador de Rede, selecione + Adicionar regra de segurança e insira ou selecione os seguintes valores:
| Configuração |
Valor |
| Fonte |
Selecione Endereços IP. |
| Endereços IP de origem/Intervalos de CIDR |
Insira 10.0.1.0/26, que é o intervalo de endereços IP da sub-rede do Bastion. |
| Intervalos de portas de origem |
Insira *. |
| Destino |
Selecione Qualquer. |
| Serviço |
selecione Personalizado. |
| Intervalos de portas de destino |
Insira *. |
| Protocolo |
Selecione Qualquer. |
| Ação |
selecione Permitir. |
| Prioridade |
Insira 900, que é a prioridade mais alta que 1000 usada para a regra DenyVnetInBound. |
| Nome |
Insira 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 do 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 bastion host 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 permite o tráfego a partir da sub-rede do 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
É retornada uma saída semelhante ao exemplo a seguir:
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 bastion host 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 permite o tráfego a partir da sub-rede do 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 '*'
Use az network watcher run-configuration-diagnostic para verificar novamente usando uma nova 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 '*'
É retornada uma saída semelhante ao exemplo a seguir:
{
"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 bastion host 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 .
Limpar os recursos
Quando não for mais necessário, exclua o grupo de recursos e todos os recursos que ele contém:
Na caixa Pesquisar na parte superior do portal, insira myResourceGroup. Selecione myResourceGroup nos resultados da pesquisa.
Selecione Excluir grupo de recursos.
Em Nome do grupo de recursos, digite myResourceGroup e selecione Excluir.
Selecione Excluir para confirmar a exclusão do grupo de recursos e 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