En este artículo, aprenderá a usar diagnósticos de NSGde Azure Network Watcher para comprobar y solucionar problemas de reglas de seguridad aplicadas al tráfico de Azure a través de grupos de seguridad de red y Azure Virtual Network Manager. Los diagnósticos de NSG comprueban si las reglas de seguridad aplicadas permiten o deniegan el tráfico.
En el ejemplo de este artículo se muestra cómo un grupo de seguridad de red mal configurado puede impedir que use Azure Bastion para conectarse a una máquina virtual.
Requisitos previos
Una cuenta de Azure con una suscripción activa.
Cree una cuenta gratuita.
Azure Cloud Shell o Azure PowerShell.
Los pasos de este artículo ejecutarán los cmdlets de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo, a continuación, en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
También podrá instalar Azure PowerShell localmente para ejecutar los cmdlet. En este artículo se necesita el módulo Az de PowerShell. Para más información, vea Procedimiento para instalar Azure PowerShell. Ejecute Get-InstalledModule -Name Az
para ver cuál es la versión instalada. Si ejecuta PowerShell localmente, inicie sesión en Azure con el cmdlet Connect-AzAccount.
Una cuenta de Azure con una suscripción activa.
Cree una cuenta gratuita.
Azure Cloud Shell o la CLI de Azure.
Los pasos de este artículo ejecutarán los comandos de la CLI de Azure de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
También puede instalar la CLI de Azure localmente para ejecutar los comandos. Si ejecuta la CLI de Azure localmente, inicie sesión en Azure con el comando az login.
Crear una red virtual y un host bastión
En esta sección, creará una red virtual con dos subredes y un host de Azure Bastion. La primera subred se usa para la máquina virtual y la segunda subred se usa para el host de Bastion. También se crea un grupo de seguridad de red y se aplica a la primera subred.
En el cuadro de búsqueda de la parte superior del portal, escriba redes virtuales. En los resultados de la búsqueda, seleccione Redes virtuales.
Seleccione + Create (+ Crear). En Crear una red virtual, escriba o seleccione los siguientes valores en la pestaña Información básica:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Seleccione su suscripción a Azure. |
Grupo de recursos |
Seleccione Crear nuevo.
Escriba myResourceGroup en Nombre.
Seleccione . |
Detalles de instancia |
|
Nombre de la red virtual |
Escriba MyVnet. |
Región |
Seleccione (EE. UU.) Este de EE. UU. . |
Seleccione la pestaña Seguridad o elija el botón Siguiente situado en la parte inferior de la página.
En Azure Bastion, seleccione Habilitar Azure Bastion y acepte los valores predeterminados:
Configuración |
Valor |
Nombre de host de Azure Bastion |
myVNet-Bastion. |
Dirección IP pública de Azure Bastion |
(Nuevo) myVNet-bastion-publicIpAddress. |
Seleccione la pestaña Direcciones IP o el botón Siguiente situado en la parte inferior de la página.
Acepte el espacio de direcciones IP predeterminado 10.0.0.0/16 y edite la subred predeterminada seleccionando el icono del lápiz. En la página Editar subred, escriba los valores siguientes:
Configuración |
Valor |
Detalles de subred |
|
Nombre |
Escriba mySubnet. |
Seguridad |
|
Grupo de seguridad de red |
Seleccione Crear nuevo.
Escriba mySubnet-nsg en Nombre.
Seleccione . |
Seleccione Revisar y crear.
Revise la configuración y, a continuación, seleccione Crear.
Cree un grupo de recursos con New-AzResourceGroup. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Cree un grupo de seguridad de red predeterminado con New-AzNetworkSecurityGroup.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
Cree una configuración de subred para la subred de la máquina virtual y la subred del host de Bastion mediante 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'
Cree una red virtual mediante New-AzVirtualNetwork.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet, $secondSubnet
Cree el recurso de dirección IP pública necesario para el host de Bastion mediante New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Cree el host de Bastion mediante New-AzBastion.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
Para crear un grupo de recursos, use az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Cree un grupo de seguridad de red predeterminado mediante az network nsg create.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Cree una red virtual con 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'
Cree una subred para Azure Bastion mediante 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'
Cree una dirección IP pública para el host de Bastion mediante az network public-ip create.
# Create a public IP address resource.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku Standard
Cree un host de Bastion mediante az network bastion create.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Importante
Los precios por hora comienzan desde el momento en que se implementa el host bastión, independientemente del uso de datos salientes. Para obtener más información, consulte el apartado Precios. Le recomendamos que elimine este recurso cuando haya terminado de usarlo.
Creación de una máquina virtual
En esta sección, creará una máquina virtual y un grupo de seguridad de red aplicado a su interfaz de red.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba máquinas virtuales. En los resultados de la búsqueda, seleccione Máquinas virtuales.
Seleccione + Crear y, a continuación, Máquina virtual de Azure.
En Crear una máquina virtual, escriba o seleccione los valores siguientes en la pestaña Básico:
Configuración |
Valor |
Detalles del proyecto |
|
Suscripción |
Seleccione su suscripción a Azure. |
Grupo de recursos |
Seleccione myResourceGroup. |
Detalles de instancia |
|
Nombre de la máquina virtual |
Escriba myVM. |
Región |
Seleccione (EE. UU.) Este de EE. UU. . |
Opciones de disponibilidad |
Seleccione No se requiere redundancia de la infraestructura. |
Tipo de seguridad |
Seleccione Estándar. |
Imagen |
Seleccione Windows Server 2022 Datacenter: Azure Edition - x64 Gen2. |
Tamaño |
Elija un tamaño o deje la configuración predeterminada. |
Cuenta de administrador |
|
Nombre de usuario |
Especifique un nombre de usuario. |
Contraseña |
Escriba una contraseña. |
Confirmación de la contraseña |
Vuelva a escribir la contraseña. |
Seleccione la pestaña Redes o seleccione Siguiente: Discos y, después, Siguiente: Redes.
En la pestaña Redes, seleccione los siguientes valores:
Configuración |
Valor |
Interfaz de red |
|
Red de área virtual |
Seleccione myVNet. |
Subred |
Seleccione Predeterminado. |
Dirección IP pública |
Selecciona Ninguno. |
Grupo de seguridad de red de NIC |
Seleccione Básica. |
Puertos de entrada públicos |
Selecciona Ninguno. |
Seleccione Revisar + crear.
Revise la configuración y, a continuación, seleccione Crear.
Cree un grupo de seguridad de red predeterminado con New-AzNetworkSecurityGroup.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
Cree una máquina virtual mediante New-AzVM. Cuando se le solicite, escriba un nombre de usuario y una contraseña.
# 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'
Cree un grupo de seguridad de red predeterminado mediante az network nsg create.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Cree una máquina virtual con az vm create. Cuando se le solicite, escriba un nombre de usuario y una contraseña.
# 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'
Adición de una regla de seguridad al grupo de seguridad de red
En esta sección, agregará una regla de seguridad al grupo de seguridad de red asociado a la interfaz de red de myVM. La regla deniega cualquier tráfico entrante de la red virtual.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba grupos de seguridad de red. En los resultados de la búsqueda, seleccione Grupos de seguridad de red.
En la lista de grupos de seguridad de red, seleccione myVM-nsg.
En Configuración, seleccione Reglas de seguridad de entrada.
Seleccione +Agregar. En la pestaña Redes, escriba o seleccione los siguientes valores:
Configuración |
Valor |
Fuente |
Seleccione Service Tag (Etiqueta de servicio). |
Etiqueta de servicio de origen |
Seleccione VirtualNetwork. |
Intervalos de puertos de origen |
Escriba *. |
Destino |
Seleccione Cualquiera. |
Servicio |
seleccione Personalizada. |
Intervalos de puertos de destino |
Escriba *. |
Protocolo |
Seleccione Cualquiera. |
Acción |
Seleccione Denegar. |
Prioridad |
Escriba 1000. |
Nombre |
Escriba DenyVnetInBound. |
Seleccione Agregar.
Use Add-AzNetworkSecurityRuleConfig para crear una regla de seguridad que deniegue el tráfico de la red virtual. A continuación, use Set-AzNetworkSecurityGroup para actualizar el grupo de seguridad de red con la nueva regla de seguridad.
# 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 agregar al grupo de seguridad de red una regla de seguridad que deniegue el tráfico de la red 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 '*'
Nota
La etiqueta de servicio VirtualNetwork representa el espacio de direcciones de la red virtual, todos los espacios de direcciones locales conectados, las redes virtuales del mismo nivel, las redes virtuales conectadas a una puerta de enlace de red virtual, la dirección IP virtual del host y los prefijos de dirección usados en las rutas definidas por el usuario. Para obtener más información, consulte Etiquetas de servicio.
Comprobación de las reglas de seguridad aplicadas a un tráfico de máquina virtual
Use diagnósticos de NSG para comprobar las reglas de seguridad aplicadas al tráfico originado desde la subred de Bastion a la máquina virtual.
En el cuadro de búsqueda de la parte superior del portal, busque y seleccione Network Watcher.
En Herramientas de diagnóstico de red, seleccione Diagnóstico de NSG.
En la página Diagnóstico de NSG, escriba o seleccione los siguientes valores:
Configuración |
Valor |
Recurso de destino |
|
Tipo de recurso de destino |
Seleccione Máquina virtual. |
Máquina virtual |
Seleccione la máquina virtual myVM . |
Detalles del tráfico |
|
Protocolo |
seleccione TCP. Otras opciones disponibles son: Cualquiera, UDP y ICMP. |
Dirección |
Seleccione Entrante. Otra opción disponible es: Saliente. |
Tipo de origen |
Seleccione Dirección IPv4/CIDR. Otra opción disponible es: Etiqueta de servicio. |
Dirección IPv4/CIDR |
Escriba 10.0.1.0/26, que es el intervalo de direcciones IP de la subred de Bastion. Los valores aceptables son: dirección IP única, varias direcciones IP, prefijo IP único, varios prefijos IP. |
Dirección IP de destino |
Deje el valor predeterminado de 10.0.0.4, que es la dirección IP de myVM. |
Puerto de destino |
Escriba * para incluir todos los puertos. |
Seleccione Ejecutar diagnósticos de NSG para ejecutar la prueba. Una vez que el diagnóstico de NSG completa la comprobación de todas las reglas de seguridad, muestra el resultado.
El resultado muestra que hay tres reglas de seguridad evaluadas para la conexión entrante desde la subred de Bastion:
-
GlobalRules: esta regla de administración de seguridad se aplica en el nivel de red virtual mediante Azure Virtual Network Manager. La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
mySubnet-nsg: este grupo de seguridad de red se aplica en el nivel de subred (subred de la máquina virtual). La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
myVM-nsg: este grupo de seguridad de red se aplica en el nivel de interfaz de red (NIC). La regla deniega el tráfico TCP entrante de la subred de Bastion a la máquina virtual.
Seleccione Ver detalles de myVM-nsg para ver detalles sobre las reglas de seguridad que tiene este grupo de seguridad de red y qué regla está denegando el tráfico.
En el grupo de seguridad de red myVM-nsg, la regla de seguridad DenyVnetInBound deniega cualquier tráfico procedente del espacio de direcciones de la etiqueta de servicio VirtualNetwork a la máquina virtual. El host bastión usa direcciones IP del intervalo de direcciones 10.0.1.0/26, que se incluye en la etiqueta de servicio VirtualNetwork, para conectarse a la máquina virtual. Por lo tanto, la regla de seguridad DenyVnetInBound deniega la conexión desde el host de Bastion.
Use Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic para iniciar la sesión de diagnóstico de 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
Se devuelve una salida similar a la del siguiente ejemplo:
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
}
]
}
]
}
}
]
El resultado muestra que hay tres reglas de seguridad evaluadas para la conexión entrante desde la subred de Bastion:
-
GlobalRules: esta regla de administración de seguridad se aplica en el nivel de red virtual mediante Azure Virtual Network Manager. La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
mySubnet-nsg: este grupo de seguridad de red se aplica en el nivel de subred (subred de la máquina virtual). La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
myVM-nsg: este grupo de seguridad de red se aplica en el nivel de interfaz de red (NIC). La regla deniega el tráfico TCP entrante de la subred de Bastion a la máquina virtual.
En el grupo de seguridad de red myVM-nsg, la regla de seguridad DenyVnetInBound deniega cualquier tráfico procedente del espacio de direcciones de la etiqueta de servicio VirtualNetwork a la máquina virtual. El host de Bastion usa direcciones IP de 10.0.1.0/26, que se incluyen en la etiqueta de servicio VirtualNetwork, para conectarse a la máquina virtual. Por lo tanto, la regla de seguridad DenyVnetInBound deniega la conexión desde el host de Bastion.
Use az network watcher run-configuration-diagnostic para iniciar la sesión de diagnóstico de 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 '*'
Se devuelve una salida similar a la del siguiente ejemplo:
{
"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"
}
}
]
}
El resultado muestra que hay tres reglas de seguridad evaluadas para la conexión entrante desde la subred de Bastion:
-
GlobalRules: esta regla de administración de seguridad se aplica en el nivel de red virtual mediante Azure Virtual Network Manager. La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
mySubnet-nsg: este grupo de seguridad de red se aplica en el nivel de subred (subred de la máquina virtual). La regla permite el tráfico TCP entrante desde la subred de Bastion a la máquina virtual.
-
myVM-nsg: este grupo de seguridad de red se aplica en el nivel de interfaz de red (NIC). La regla deniega el tráfico TCP entrante de la subred de Bastion a la máquina virtual.
En el grupo de seguridad de red myVM-nsg, la regla de seguridad DenyVnetInBound deniega cualquier tráfico procedente del espacio de direcciones de la etiqueta de servicio VirtualNetwork a la máquina virtual. El host de Bastion usa direcciones IP de 10.0.1.0/26, que se incluyen en la etiqueta de servicio VirtualNetwork, para conectarse a la máquina virtual. Por lo tanto, la regla de seguridad DenyVnetInBound deniega la conexión desde el host de Bastion.
Adición de una regla de seguridad para permitir el tráfico desde la subred de Bastion
Para conectarse a myVM mediante Azure Bastion, el grupo de seguridad de red debe permitir el tráfico desde la subred de Bastion. Para permitir el tráfico de 10.0.1.0/26, agregue una regla de seguridad con una prioridad más alta (número de prioridad menor) que la regla DenyVnetInBound o edite la regla DenyVnetInBound para permitir el tráfico desde la subred de Bastion.
Puede agregar la regla de seguridad al grupo de seguridad de red desde la página de Network Watcher que mostró los detalles sobre la regla de seguridad que deniega el tráfico a la máquina virtual.
Para agregar la regla de seguridad desde Network Watcher, seleccione + Agregar regla de seguridad y, a continuación, escriba o seleccione los valores siguientes:
Configuración |
Valor |
Fuente |
Seleccione Direcciones IP. |
Intervalos de direcciones IP de origen y CIDR |
Escriba 10.0.1.0/26, que es el intervalo de direcciones IP de la subred de Bastion. |
Intervalos de puertos de origen |
Escriba *. |
Destino |
Seleccione Cualquiera. |
Servicio |
seleccione Personalizada. |
Intervalos de puertos de destino |
Escriba *. |
Protocolo |
Seleccione Cualquiera. |
Acción |
seleccione Permitir. |
Prioridad |
Escriba 900, que es una prioridad mayor que 1000 usada para la regla DenyVnetInBound. |
Nombre |
Escriba AllowBastionConnections. |
Seleccione Volver a comprobar para volver a ejecutar la sesión de diagnóstico. La sesión de diagnóstico ahora debería mostrar que se permite el tráfico desde la subred de Bastion.
La regla de seguridad AllowBastionConnections permite el tráfico desde cualquier dirección IP en 10.0.1.0/26 a la máquina virtual. Dado que el host de Bastion usa direcciones IP de 10.0.1.0/26, la regla de seguridad AllowBastionConnections permite su conexión a la máquina virtual.
Use Add-AzNetworkSecurityRuleConfig para crear una regla de seguridad que permita el tráfico desde la subred de Bastion. A continuación, use Set-AzNetworkSecurityGroup para actualizar el grupo de seguridad de red con la nueva regla de seguridad.
# 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 volver a realizar una comprobación con una nueva sesión de diagnóstico de 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
Se devuelve una salida similar a la del siguiente ejemplo:
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
}
]
}
]
}
}
]
La regla de seguridad AllowBastionConnections permite el tráfico desde cualquier dirección IP en 10.0.1.0/26 a la máquina virtual. Dado que el host de Bastion usa direcciones IP de 10.0.1.0/26, la regla de seguridad AllowBastionConnections permite su conexión a la máquina virtual.
Use az network nsg rule create para agregar al grupo de seguridad de red una regla de seguridad que permite el tráfico de la subred de 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 volver a realizar una comprobación con una nueva sesión de diagnóstico de 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 '*'
Se devuelve una salida similar a la del siguiente ejemplo:
{
"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"
}
}
]
}
La regla de seguridad AllowBastionConnections permite el tráfico desde cualquier dirección IP en 10.0.1.0/26 a la máquina virtual. Dado que el host de Bastion usa direcciones IP de 10.0.1.0/26, la regla de seguridad AllowBastionConnections permite su conexión a la máquina virtual.
Limpieza de recursos
Cuando ya no sea necesario, elimine el grupo de recursos y todos los recursos que contiene:
Escriba myResourceGroup en el cuadro de búsqueda que se encuentra en la parte superior del portal. Seleccione myResourceGroup en los resultados de la búsqueda.
Seleccione Eliminar grupo de recursos.
En Eliminar un grupo de recursos, escriba myResourceGroup y, después, seleccione Eliminar.
Seleccione Eliminar para confirmar la eliminación del grupo de recursos y todos sus recursos.
Utilice Remove-AzResourceGroup para eliminar el grupo de recursos y todos los recursos que contiene.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Utilice az group delete para quitar el grupo de recursos y todos los recursos que contiene
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
Contenido relacionado