В этой статье вы узнаете, как использовать azure Наблюдатель за сетями NSG диагностика для проверки и устранения неполадок правил безопасности, применяемых к трафику Azure через группы безопасности сети и Диспетчер виртуальная сеть Azure. NSG диагностика проверяет, разрешен ли трафик или запрещен примененными правилами безопасности.
В примере в этой статье показано, как неправильно настроенная группа безопасности сети может запретить использовать Бастион Azure для подключения к виртуальной машине.
Действия, описанные в этой статье, выполняют командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Для этой статьи требуется модуль Az PowerShell. Дополнительные сведения см. в статье "Установка Azure PowerShell". Выполните командлет Get-InstalledModule -Name Az, чтобы узнать установленную версию. При локальном запуске PowerShell войдите в Azure с помощью командлета Connect-AzAccount .
Действия, описанные в этой статье, выполняют команды Azure CLI интерактивно в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
В этом разделе описано, как создать виртуальную сеть с двумя подсетями и узлом Бастиона Azure. Первая подсеть используется для виртуальной машины, а вторая подсеть используется для узла Бастиона. Вы также создадите группу безопасности сети и примените ее к первой подсети.
В поле поиска в верхней части портала введите виртуальные сети. Выберите виртуальные сети из результатов поиска.
Выберите + Создать. В разделе "Создание виртуальной сети" введите или выберите следующие значения на вкладке "Основные сведения".
Параметр
Значение
Сведения о проекте
Отток подписок
Выберите свою подписку Azure.
Группа ресурсов
Выберите Создать. Введите myResourceGroup в поле Имя. Нажмите кнопку ОК.
Сведения об экземпляре
имя виртуальной сети;
Введите myVNet.
Область/регион
Выберите регион (США) Восточная часть США.
Выберите вкладку "Безопасность" или нажмите кнопку "Далее" в нижней части страницы.
В разделе Бастион Azure выберите "Включить Бастион Azure" и примите значения по умолчанию:
Параметр
Значение
Имя узла Бастиона Azure
myVNet-Бастион.
Общедоступный IP-адрес Бастиона Azure
(Новое) myVNet-бастион-publicIpAddress.
Перейдите на вкладку "IP-адреса" или нажмите кнопку "Далее" в нижней части страницы.
Примите пространство IP-адресов по умолчанию 10.0.0.0/16 и измените подсеть по умолчанию, выбрав значок карандаша. На странице "Изменить подсеть" введите следующие значения:
Параметр
Значение
Сведения о подсети
Имя.
Введите mySubnet.
Безопасность
группу безопасности сети;
Выберите Создать. Введите mySubnet-nsg в name. Нажмите кнопку ОК.
Перейдите на вкладку Просмотр и создание.
Проверьте параметры, а затем нажмите кнопку Создать.
Создайте группу ресурсов с помощью командлета New-AzResourceGroup. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Создайте ресурс общедоступного IP-адреса, необходимый для узла Бастиона с помощью New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Создайте группу ресурсов, используя команду az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Почасовая цена начинается с момента развертывания узла Бастиона независимо от использования исходящих данных. Дополнительные сведения см. на странице цен. Рекомендуется удалить этот ресурс после завершения работы с ним.
Создание виртуальной машины
В этом разделе описано, как создать виртуальную машину и группу безопасности сети, примененную к сетевому интерфейсу.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Создайте виртуальную машину с помощью команды az vm create. При появлении запроса введите имя пользователя и пароль.
# 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'
Добавление правила безопасности в группу безопасности сети
В этом разделе описано, как добавить правило безопасности в группу безопасности сети, связанную с сетевым интерфейсом myVM. Правило запрещает любой входящий трафик из виртуальной сети.
В поле поиска в верхней части портала введите группы безопасности сети. Выберите группы безопасности сети из результатов поиска.
В списке групп безопасности сети выберите myVM-nsg.
В разделе Параметры выберите Правила безопасности для входящего трафика.
Выберите Добавить. На вкладке "Сеть" введите или выберите следующие значения:
Параметр
Значение
Оригинал
Выберите Service Tag (Тег службы).
Тег службы источника
Выберите VirtualNetwork.
Диапазоны исходных портов
Входить*.
Назначение
Выберите Любые.
Service
Выберите Пользовательский.
Диапазоны портов назначения
Входить*.
Протокол
Выберите Любые.
Действие
Выберите Отклонить.
Приоритет
Введите 1000.
Имя.
Введите DenyVnetInBound.
Выберите Добавить.
Используйте Add-AzNetworkSecurityRuleConfig , чтобы создать правило безопасности, которое запрещает трафик из виртуальной сети. Затем используйте Set-AzNetworkSecurityGroup , чтобы обновить группу безопасности сети с новым правилом безопасности.
# 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
Используйте az network nsg rule create , чтобы добавить в группу безопасности сети правило безопасности, которое запрещает трафик из виртуальной сети.
# 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 '*'
Примечание.
Тег службы VirtualNetwork представляет адресное пространство виртуальной сети, все подключенные локальные адресные пространства, пиринговые виртуальные сети, виртуальные сети, подключенные к шлюзу виртуальной сети, виртуальные IP-адреса узла и префиксы адресов, используемые в определяемых пользователем маршрутах. Дополнительные сведения см. в разделе "Теги службы".
Проверка правил безопасности, применяемых к трафику виртуальной машины
Используйте NSG диагностика для проверки правил безопасности, применяемых к трафику, полученному из подсети Бастиона на виртуальную машину.
В поле поиска в верхней части портала найдите и выберите Наблюдатель за сетями.
В разделе "Средства диагностики сети" выберите NSG диагностика.
На странице диагностика NSG введите или выберите следующие значения:
Параметр
Значение
Целевой ресурс
Тип целевого ресурса
Выберите Виртуальная машина.
Виртуальная машина
Выберите виртуальную машину myVM .
Сведения о трафике
Протокол
Выберите TCP. Другие доступные варианты: Any, UDP и ICMP.
Направление
Выберите Входящие. Другой доступный вариант: исходящий трафик.
Тип источника
Выберите IPv4-адрес или CIDR. Другой доступный вариант: тег службы.
IPv4-адрес/CIDR
Введите 10.0.1.0/26, который является диапазоном IP-адресов подсети Бастиона. Допустимые значения: один IP-адрес, несколько IP-адресов, префикс одного IP-адреса, несколько префиксов IP.
IP-адрес назначения
Оставьте значение по умолчанию 10.0.0.4, которое является IP-адресом myVM.
Порт назначения
Введите * для включения всех портов.
Выберите "Запустить группу безопасности сети" диагностика, чтобы запустить тест. После завершения проверки всех правил безопасности NSG диагностика отображается результат.
В результате показано, что для входящего подключения из подсети Бастиона оценивается три правила безопасности:
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure виртуальная сеть Manage. Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
mySubnet-nsg: эта группа безопасности сети применяется на уровне подсети (подсети виртуальной машины). Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
myVM-nsg: эта группа безопасности сети применяется на уровне сетевого интерфейса (сетевого адаптера). Правило запрещает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
Выберите "Просмотреть сведения о myVM-nsg", чтобы просмотреть сведения о правилах безопасности, имеющихся в этой группе безопасности сети, и о том, какое правило запрещает трафик.
В группе безопасности сети myVM-nsg правило безопасности DenyVnetInBound запрещает любой трафик, поступающий из адресного пространства тега службы VirtualNetwork на виртуальную машину. Узел Бастиона использует IP-адреса из диапазона адресов: 10.0.1.0/26, который входит в тег службы VirtualNetwork для подключения к виртуальной машине. Поэтому подключение от узла Бастиона запрещено правилом безопасности DenyVnetInBound .
В результате показано, что для входящего подключения из подсети Бастиона оценивается три правила безопасности:
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure виртуальная сеть Manage. Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
mySubnet-nsg: эта группа безопасности сети применяется на уровне подсети (подсети виртуальной машины). Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
myVM-nsg: эта группа безопасности сети применяется на уровне сетевого интерфейса (сетевого адаптера). Правило запрещает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
В группе безопасности сети myVM-nsg правило безопасности DenyVnetInBound запрещает любой трафик, поступающий из адресного пространства тега службы VirtualNetwork на виртуальную машину. Узел Бастиона использует IP-адреса от 10.0.1.0/26, которые включают тег службы VirtualNetwork для подключения к виртуальной машине. Поэтому подключение от узла Бастиона запрещено правилом безопасности DenyVnetInBound .
В результате показано, что для входящего подключения из подсети Бастиона оценивается три правила безопасности:
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure виртуальная сеть Manage. Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
mySubnet-nsg: эта группа безопасности сети применяется на уровне подсети (подсети виртуальной машины). Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
myVM-nsg: эта группа безопасности сети применяется на уровне сетевого интерфейса (сетевого адаптера). Правило запрещает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
В группе безопасности сети myVM-nsg правило безопасности DenyVnetInBound запрещает любой трафик, поступающий из адресного пространства тега службы VirtualNetwork на виртуальную машину. Узел Бастиона использует IP-адреса от 10.0.1.0/26, которые включают тег службы VirtualNetwork для подключения к виртуальной машине. Поэтому подключение от узла Бастиона запрещено правилом безопасности DenyVnetInBound .
Добавление правила безопасности для разрешения трафика из подсети Бастиона
Чтобы подключиться к myVM с помощью Бастиона Azure, трафик из подсети Бастиона должен быть разрешен группой безопасности сети. Чтобы разрешить трафик от 10.0.1.0/26, добавьте правило безопасности с более высоким приоритетом (более низкий номер приоритета), чем правило DenyVnetInBound или измените правило DenyVnetInBound, чтобы разрешить трафик из подсети Бастиона.
Вы можете добавить правило безопасности в группу безопасности сети на странице Наблюдатель за сетями, которая показала сведения о правиле безопасности, запрещающем трафик виртуальной машине.
Чтобы добавить правило безопасности из Наблюдатель за сетями, выберите +Добавить правило безопасности, а затем введите или выберите следующие значения:
Параметр
Значение
Оригинал
Выберите IP-адреса.
Диапазоны или CIDR исходных IP-адресов
Введите 10.0.1.0/26, который является диапазоном IP-адресов подсети Бастиона.
Диапазоны исходных портов
Входить*.
Назначение
Выберите Любые.
Service
Выберите Пользовательский.
Диапазоны портов назначения
Входить*.
Протокол
Выберите Любые.
Действие
Выберите Разрешить.
Приоритет
Введите 900, который является более высоким приоритетом, чем 1000, используемый для правила DenyVnetInBound.
Имя.
Введите AllowBastionConnections.
Нажмите кнопку "Повторно проверить ", чтобы снова запустить сеанс диагностики. Теперь сеанс диагностики должен показать, что трафик из подсети Бастиона разрешен.
Правило безопасности AllowBastionConnections разрешает трафик с любого IP-адреса в версии 10.0.1.0/26 на виртуальную машину. Так как узел Бастиона использует IP-адреса от 10.0.1.0/26, его подключение к виртуальной машине разрешено правилом безопасности AllowBastionConnections .
Используйте Add-AzNetworkSecurityRuleConfig для создания правила безопасности, разрешающего трафик из подсети Бастиона. Затем используйте Set-AzNetworkSecurityGroup , чтобы обновить группу безопасности сети с новым правилом безопасности.
# 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
Правило безопасности AllowBastionConnections разрешает трафик с любого IP-адреса в версии 10.0.1.0/26 на виртуальную машину. Так как узел Бастиона использует IP-адреса от 10.0.1.0/26, его подключение к виртуальной машине разрешено правилом безопасности AllowBastionConnections .
Используйте az network nsg rule create, чтобы добавить в группу безопасности сети правило безопасности, которое разрешает трафик из подсети Бастиона.
# 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 '*'
Правило безопасности AllowBastionConnections разрешает трафик с любого IP-адреса в версии 10.0.1.0/26 на виртуальную машину. Так как узел Бастиона использует IP-адреса от 10.0.1.0/26, его подключение к виртуальной машине разрешено правилом безопасности AllowBastionConnections .
Очистка ресурсов
Удалите группу ресурсов и все содержащиеся в ней ресурсы, когда она станет не нужна.