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.
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.
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.
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
Subscription
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.
Region
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 Aceptar.
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 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'
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'
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
Subscription
Seleccione su suscripción a Azure.
Grupo de recursos
Seleccione myResourceGroup.
Detalles de instancia
Nombre de la máquina virtual
Escriba myVM.
Region
Selecciona (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.
Size
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
Virtual network
Seleccione myVNet.
Subnet
Seleccione Predeterminado.
Dirección IP pública
Selecciona Ninguno.
Grupo de seguridad de red de NIC
Seleccione Básica.
Puertos de entrada públicos
Seleccione Ninguno.
Seleccione Revisar + crear.
Revise la configuración y, a continuación, seleccione Crear.
# 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
Source
Seleccione Service Tag (Etiqueta de servicio).
Etiqueta de servicio de origen
Seleccione VirtualNetwork.
Source port ranges
Escriba *.
Destination
Seleccione Cualquiera.
Servicio
seleccione Personalizada.
Intervalos de puertos de destino
Escriba *.
Protocolo
Seleccione Cualquiera.
Acción
Seleccione Denegar.
Priority
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
Value
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.
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.
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
Source
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.
Source port ranges
Escriba *.
Destination
Seleccione Cualquiera.
Servicio
seleccione Personalizada.
Intervalos de puertos de destino
Escriba *.
Protocolo
Seleccione Cualquiera.
Acción
seleccione Permitir.
Priority
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
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 '*'
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