В этой статье вы узнаете, как использовать Наблюдатель за сетями Azure и диагностику NSG для проверки и устранения неполадок правил безопасности, применяемых к трафику Azure через группы безопасности сети и Диспетчер виртуальной сети Azure. Диагностика NSG проверяет, разрешен ли трафик или запрещен примененными правилами безопасности.
В примере в этой статье показано, как неправильно настроенная группа безопасности сети может запретить использовать Бастион Azure для подключения к виртуальной машине.
Предварительные требования
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure PowerShell.
Шаги, приведённые в этой статье, выполняют командлеты 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 с активной подпиской.
Создайте учетную запись бесплатно .
Azure Cloud Shell или Azure CLI
Действия, описанные в этой статье, выполняют команды Azure CLI интерактивно в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портала Azure.
Вы также можете установить Azure CLI локально для выполнения команд. При локальном запуске Azure CLI войдите в Azure с помощью команды az login .
Создание виртуальной сети и узла Бастиона
В этом разделе описано, как создать виртуальную сеть с двумя подсетями и узлом Бастиона 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'
Создайте группу безопасности сети по умолчанию с помощью New-AzNetworkSecurityGroup.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
Создайте конфигурацию подсети виртуальной машины и подсети узла Бастиона с помощью 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'
Создайте виртуальную сеть с помощью New-AzVirtualNetwork.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet, $secondSubnet
Создайте ресурс общедоступного IP-адреса, необходимый для узла Бастиона с помощью New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Создайте хост Bastion с помощью New-AzBastion.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
Создайте группу ресурсов, используя команду az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Создайте группу безопасности сети по умолчанию с помощью az network nsg create.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Создайте виртуальную сеть с помощью команды 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'
Создайте подсеть для Бастиона Azure с помощью 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'
Создайте общедоступный IP-адрес узла Бастиона с помощью az network public-ip create.
# Create a public IP address resource.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku Standard
Создайте бастионный хост с помощью az network bastion create.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Внимание
Почасовая цена начинается с момента развертывания хоста Бастион, независимо от учета исходящих данных. Дополнительные сведения см. на странице цен. Рекомендуется удалить этот ресурс после завершения работы с ним.
Создание виртуальной машины
В этом разделе описано, как создать виртуальную машину и группу безопасности сети, примененную к сетевому интерфейсу.
В поле поиска в верхней части портала введите виртуальные машины. Выберите виртуальные машины из результатов поиска.
Нажмите кнопку "+ Создать ", а затем выберите виртуальную машину Azure.
В окне Создание виртуальной машины введите или выберите следующие значения на вкладке Основные сведения:
Настройка |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку Azure. |
Группа ресурсов |
Выберите myResourceGroup. |
Сведения об экземпляре |
|
Название виртуальной машины |
Введите myVM. |
Область/регион |
Выберите регион (США) Восточная часть США. |
Параметры доступности |
Выберите Избыточность инфраструктуры не требуется. |
Тип безопасности |
Выберите Стандартное. |
Изображение |
Выберите Windows Server 2022 Datacenter: Azure Edition - x64 Gen2. |
Размер |
Выберите размер или оставьте параметр по умолчанию. |
Учетная запись администратора |
|
Username |
Введите имя пользователя. |
Пароль |
Введите пароль. |
Подтверждение пароля |
Введите пароль еще раз. |
Выберите вкладку Сети или Next: Disks (Далее: диски), а затем Next: Networking (Далее: сеть).
На вкладке "Сеть" выберите следующие значения:
Настройка |
Значение |
Сетевой интерфейс |
|
Виртуальная сеть |
Выберите myVNet. |
Подсеть |
Выберите По умолчанию. |
Общедоступный IP-адрес |
Выберите Отсутствует. |
Группа безопасности сети сетевого интерфейса |
Выберите Базовый. |
Общедоступные входящие порты |
Выберите Отсутствует. |
Выберите Просмотреть и создать.
Проверьте параметры, а затем нажмите кнопку Создать.
Создайте группу безопасности сети по умолчанию с помощью New-AzNetworkSecurityGroup.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
Создайте виртуальную машину с помощью New-AzVM. При появлении запроса введите имя пользователя и пароль.
# 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'
Создайте группу безопасности сети по умолчанию с помощью az network nsg create.
# 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. |
Диапазоны исходных портов |
Введите *. |
Назначение |
Выберите Все. |
Сервис |
Выберите Пользовательский. |
Диапазоны портов назначения |
Введите *. |
Протокол |
Выберите Любой. |
Действие |
Выберите Отклонить. |
Приоритет |
Введите 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. |
Направление |
Выберите Входящие. Другой доступный вариант: Outbound. |
Тип источника |
Выберите IPv4-адрес или CIDR. Другой доступный вариант: Сервисный тег. |
IPv4-адрес/CIDR |
Введите 10.0.1.0/26, который является диапазоном IP-адресов подсети Бастиона. Допустимые значения: один IP-адрес, несколько IP-адресов, префикс одного IP-адреса, несколько префиксов IP. |
IP-адрес назначения |
Оставьте значение по умолчанию 10.0.0.4, которое является IP-адресом myVM. |
Порт назначения |
Введите * для включения всех портов. |
Выберите Запустить диагностику NSG, чтобы запустить тест. После того как диагностика NSG завершит проверку всех правил безопасности, отображаются результаты.
В результате показано, что для входящего подключения из подсети Бастиона оцениваются три правила безопасности.
-
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure Virtual Network Manager. Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
-
mySubnet-nsg: эта группа безопасности сети применяется на уровне подсети (подсети виртуальной машины). Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
-
myVM-nsg: эта группа безопасности сети применяется на уровне сетевого интерфейса (сетевого адаптера). Правило запрещает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
Выберите Просмотреть сведения для myVM-nsg, чтобы увидеть сведения о правилах безопасности этой группы безопасности сети и понять, какое правило блокирует трафик.
В группе безопасности сети myVM-nsg правило безопасности DenyVnetInBound запрещает любой трафик, поступающий из адресного пространства тега службы VirtualNetwork на виртуальную машину. Узел Бастиона использует IP-адреса из диапазона адресов: 10.0.1.0/26, который входит в служебный тег VirtualNetwork, чтобы подключиться к виртуальной машине. Поэтому, подключение с узла Бастиона блокируется правилом безопасности DenyVnetInBound.
Используйте Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic, чтобы запустить сеанс диагностики 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
Будет возвращён результат, аналогичный примеру ниже.
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
}
]
}
]
}
}
]
Результаты показывают, что для входящего подключения из подсети Бастиона оцениваются три правила безопасности.
-
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure Virtual Network Manager. Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
-
mySubnet-nsg: эта группа безопасности сети применяется на уровне подсети (подсети виртуальной машины). Правило разрешает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
-
myVM-nsg: эта группа безопасности сети применяется на уровне сетевого интерфейса (сетевого адаптера). Правило запрещает входящий TCP-трафик из подсети Бастиона на виртуальную машину.
В группе безопасности сети myVM-nsg правило безопасности DenyVnetInBound запрещает любой трафик, поступающий из адресного пространства тега службы VirtualNetwork на виртуальную машину. Узел Бастиона использует IP-адреса от 10.0.1.0/26, которые включены в тег службы VirtualNetwork для подключения к виртуальной машине. Поэтому подключение от узла Bastion запрещено правилом безопасности DenyVnetInBound.
Используйте az network watcher run-configuration-diagnostic, чтобы запустить сеанс диагностики 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 '*'
Будут возвращены данные, аналогичные следующему примеру.
{
"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"
}
}
]
}
В результате показано, что для входящего подключения из подсети Бастиона оценены три правила безопасности.
-
GlobalRules: это правило администратора безопасности применяется на уровне виртуальной сети с помощью Azure Virtual Network Manager. Правило разрешает входящий 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, чтобы разрешить трафик из подсети Бастиона.
Вы можете добавить правило безопасности в группу безопасности сети на странице Network Watcher, которая показала сведения о правиле безопасности, запрещающем трафик к виртуальной машине.
Чтобы добавить правило безопасности из Наблюдатель за сетями, выберите +Добавить правило безопасности, а затем введите или выберите следующие значения:
Настройка |
Значение |
Исходный текст |
Выберите IP-адреса. |
Диапазоны CIDR или исходные IP-адреса |
Введите 10.0.1.0/26, который является диапазоном IP-адресов подсети Бастиона. |
Диапазоны исходных портов |
Введите *. |
Назначение |
Выберите Любое. |
Услуга |
Выберите Пользовательский. |
Диапазоны портов назначения |
Введите *. |
Протокол |
Выберите Любой. |
Действие |
Выберите Разрешить. |
Приоритет |
Введите 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
Используйте Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic для повторной проверки с помощью нового сеанса диагностики 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
Возвращается вывод, похожий на следующий пример.
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
}
]
}
]
}
}
]
Правило безопасности 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 '*'
Используйте az network watcher run-configuration-diagnostic для повторной проверки с помощью нового сеанса диагностики 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 '*'
Вернется вывод, похожий на следующий пример.
{
"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"
}
}
]
}
Правило безопасности AllowBastionConnections разрешает трафик с любого IP-адреса из диапазона 10.0.1.0/26 на виртуальную машину. Поскольку Bastion-хост использует IP-адреса из диапазона 10.0.1.0/26, его подключение к виртуальной машине разрешено правилом AllowBastionConnections безопасности.
Очистка ресурсов
Удалите группу ресурсов и все содержащиеся в ней ресурсы, когда она станет не нужна.
В поле поиска в верхней части портала введите myResourceGroup. Выберите myResourceGroup из результатов поиска.
Выберите команду Удалить группу ресурсов.
В разделе "Удалить группу ресурсов" введите myResourceGroup и нажмите кнопку "Удалить".
Выберите "Удалить ", чтобы подтвердить удаление группы ресурсов и всех его ресурсов.
Используйте Remove-AzResourceGroup , чтобы удалить группу ресурсов и все содержащиеся в ней ресурсы.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Использование az group delete для удаления группы ресурсов и всех ресурсов, содержащихся в ней.
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
Связанный контент