Группа безопасности сети позволяет фильтровать входящий и исходящий трафик ресурсов Azure в виртуальной сети Azure.
Группы безопасности сети содержат правила безопасности, которые фильтруют трафик по IP-адресу, порту и протоколу. Если группа безопасности сети связана с подсетью, правила безопасности применяются к ресурсам, развернутыми в этой подсети.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант |
Пример и ссылка |
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. |
|
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. |
|
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
|
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 1.0.0 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount
, чтобы создать подключение к Azure.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Для работы с этой статьей требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Следующая процедура создает виртуальную сеть с подсетью ресурсов.
На портале найдите и выберите "Виртуальные сети".
На странице Виртуальные сети выберите команду + Создать.
На вкладке Основные сведения подменю Создать виртуальную сеть введите или выберите нижеприведенную информацию:
Параметр |
Значение |
Сведения о проекте |
|
Отток подписок |
Выберите свою подписку. |
Группа ресурсов |
Выберите Создать. Введите test-rg в name. Нажмите кнопку ОК. |
Сведения об экземпляре |
|
Имя. |
Введите vnet-1. |
Область/регион |
Выберите регион Восточная часть США 2. |
Нажмите кнопку "Далее ", чтобы перейти на вкладку "Безопасность ".
Нажмите кнопку "Далее ", чтобы перейти на вкладку IP-адресов .
В поле адресного пространства в подсетях выберите подсеть по умолчанию .
В области "Изменить подсеть" введите или выберите следующие сведения:
Параметр |
Значение |
Сведения о подсети |
|
Шаблон подсети |
Оставьте значение по умолчанию по умолчанию. |
Имя. |
Введите подсеть-1. |
Начальный адрес |
Оставьте значение по умолчанию 10.0.0.0. |
Размер подсети |
Оставьте значение по умолчанию /24(256 адресов). |
Выберите Сохранить.
Выберите "Рецензирование" и "Создать " в нижней части экрана. После прохождения проверки выберите Создать.
Создайте группу ресурсов для всех ресурсов, созданных в рамках этой статьи, выполнив командлет New-AzResourceGroup. В следующем примере создается группа ресурсов в расположении westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork. В следующем примере создается виртуальная виртуальная виртуальная сеть-1:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Создайте конфигурацию подсети с помощью командлета Set-AzVirtualNetworkSubnetConfig, а затем сохраните эту конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork. В следующем примере в виртуальную сеть добавляется подсеть с именем subnet-1 и связывается с ней группа безопасности сети nsg-1 :
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Создайте группу ресурсов с помощью команды az group create для всех ресурсов, созданных в рамках этой статьи. В следующем примере создается группа ресурсов в расположении westus2 :
az group create \
--name test-rg \
--location westus2
Создайте виртуальную сеть с помощью команды az network vnet create. В следующем примере создается виртуальная виртуальная виртуальная сеть-1:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Добавьте подсеть в виртуальную сеть при помощи команды az network vnet subnet create. В следующем примере в виртуальную сеть добавляется подсеть с именем subnet-1 и связывается с ней группа безопасности сети nsg-1 :
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
В этом разделе описано, как связать группу безопасности сети с подсетью созданной ранее виртуальной сети.
Выберите правила безопасности для входящего трафика в разделе "Параметры" nsg-1.
На странице правил безопасности для входящего трафика нажмите кнопку +Добавить.
Создайте правило безопасности, разрешающее порты 80 и 443 группе безопасности asg-web application. На странице "Добавление правила безопасности для входящего трафика" введите или выберите следующие сведения:
Параметр |
Значение |
Оригинал |
Оставьте значение по умолчанию Любое. |
Диапазоны исходных портов |
Оставьте значение по умолчанию для (*). |
Назначение |
Выберите Группа безопасности приложений. |
Конечные группы безопасности приложений |
Выберите asg-web. |
Service |
Оставьте значение по умолчанию Настраиваемое. |
Диапазоны портов назначения |
Введите 80,443. |
Протокол |
Выберите TCP. |
Действие |
Оставьте значение по умолчанию Разрешить. |
Приоритет |
Оставьте значение по умолчанию 100. |
Имя. |
Введите allow-web-all. |
Выберите Добавить.
Выполните предыдущие действия со следующими сведениями:
Параметр |
Значение |
Оригинал |
Оставьте значение по умолчанию Любое. |
Диапазоны исходных портов |
Оставьте значение по умолчанию для (*). |
Назначение |
Выберите Группа безопасности приложений. |
Группа безопасности приложений для назначения |
Выберите asg-mgmt. |
Service |
Выберите RDP. |
Действие |
Оставьте значение по умолчанию Разрешить. |
Приоритет |
Оставьте значение по умолчанию 110. |
Имя. |
Введите allow-rdp-all. |
Выберите Добавить.
Внимание
В этой статье RDP (порт 3389) предоставляется в Интернете для виртуальной машины, назначенной группе безопасности приложений asg-mgmt .
В рабочих средах рекомендуется не открывать порт 3389 для доступа из Интернета, а подключиться к ресурсам Azure, которыми вы хотите управлять, с помощью VPN-подключения, частного сетевого подключения или Бастиона Azure.
Дополнительные сведения о Бастионе Azure см. в статье Что такое Бастион Azure.
Создайте правило безопасности с помощью командлета New-AzNetworkSecurityRuleConfig. В следующем примере создается правило, позволяющее входящий трафик из Интернета в группу безопасности веб-приложений asg-web application через порты 80 и 443:
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
В следующем примере создается правило, разрешающее входящий трафик из Интернета в группу безопасности приложений asg-mgmt через порт 3389:
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Используйте Get-AzNetworkSecurityGroup для получения существующей группы безопасности сети, а затем добавьте новые правила с оператором +=
. Наконец, обновите группу безопасности сети с помощью Set-AzNetworkSecurityGroup:
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Внимание
В этой статье RDP (порт 3389) предоставляется в Интернете для виртуальной машины, назначенной группе безопасности приложений asg-mgmt .
В рабочих средах рекомендуется не открывать порт 3389 для доступа из Интернета, а подключиться к ресурсам Azure, которыми вы хотите управлять, с помощью VPN-подключения, частного сетевого подключения или Бастиона Azure.
Дополнительные сведения о Бастионе Azure см. в статье Что такое Бастион Azure.
Создайте правило безопасности с помощью команды az network nsg rule create. В следующем примере создается правило, позволяющее входящий трафик из Интернета в группу безопасности веб-приложений asg-web application через порты 80 и 443:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
В следующем примере создается правило, разрешающее входящий трафик из Интернета в группу безопасности приложений asg-mgmt через порт 22:
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Внимание
В этой статье SSH (порт 22) предоставляется в Интернете для виртуальной машины, назначенной группе безопасности приложений asg-mgmt .
Для рабочих сред вместо предоставления порта 22 в Интернет рекомендуется подключиться к ресурсам Azure, которым требуется управлять с помощью VPN, частного сетевого подключения или Бастиона Azure.
Дополнительные сведения о Бастионе Azure см. в статье Что такое Бастион Azure.
Создайте две виртуальные машины в виртуальной сети.
На портале найдите и выберите "Виртуальные машины".
На виртуальных машинах нажмите кнопку +Создать, а затем виртуальную машину Azure.
В подменю Создать виртуальную машину введите или выберите следующую информацию на вкладке Основные сведения:
Параметр |
Значение |
Сведения о проекте |
|
Отток подписок |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Сведения об экземпляре |
|
Virtual machine name |
Введите vm-web. |
Область/регион |
Выберите регион (США) Восточная часть США 2. |
Параметры доступности |
Оставьте значение по умолчанию для параметра Избыточность инфраструктуры не требуется. |
Тип безопасности |
Выберите Стандартное. |
Изображения |
Выберите Windows Server 2022 Datacenter — x64-го поколения 2-го поколения. |
Точечный экземпляр Azure |
Оставьте значение по умолчанию (флажок снят). |
Размер |
Выберите размер. |
Учетная запись администратора |
|
Username |
Введите имя пользователя. |
Пароль |
Введите пароль. |
Подтверждение пароля |
Введите пароль еще раз. |
Правила входящего порта |
|
Выбрать входящие порты |
Выберите Отсутствует. |
Нажмите кнопку "Далее": диски , а затем " Далее: сеть".
На вкладке Сеть введите или выберите следующие значения параметров.
Параметр |
Значение |
Сетевой интерфейс |
|
Виртуальная сеть |
Выберите виртуальную сеть-1. |
Подсеть |
Выберите подсеть-1 (10.0.0.0/24). |
Общедоступный IP-адрес |
Оставьте значение по умолчанию "Новый общедоступный IP-адрес". |
Группа безопасности сети сетевого адаптера |
Выберите Отсутствует. |
Перейдите на вкладку Просмотр и создание или нажмите синюю кнопку Просмотр и создание внизу страницы.
Нажмите кнопку создания. Развертывание виртуальной машины может занять несколько минут.
Повторите предыдущие шаги, чтобы создать вторую виртуальную машину с именем vm-mgmt.
Прежде чем создавать виртуальные машины, получите объект виртуальной сети с подсетью с помощью командлета Get-AzVirtualNetwork.
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Создайте общедоступный IP-адрес для каждой виртуальной машины с помощью командлета New-AzPublicIpAddress.
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Создайте два сетевых интерфейса с помощью командлета New-AzNetworkInterface и назначьте каждому из них общедоступный IP-адрес. В следующем примере создается сетевой интерфейс, который связывает с ним общедоступный IP-адрес общедоступного IP-адреса общедоступной виртуальной машины public.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
В следующем примере создается сетевой интерфейс, с ним связывается общедоступный IP-адрес public-ip-vm-mgmt .
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Создайте две виртуальные машины в виртуальной сети, чтобы вы могли проверить фильтрацию трафика на более позднем этапе.
Создайте конфигурацию виртуальной машины с помощью командлета New-AzVMConfig, затем создайте виртуальную машину с помощью командлета New-AzVM. В следующем примере создается виртуальная машина, которая служит веб-сервером. Чтобы можно было перейти к следующему шагу, параметр -AsJob
позволяет создать виртуальную машину в фоновом режиме.
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Создайте виртуальную машину в качестве сервера управления:
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
Создание виртуальной машины занимает несколько минут. Не переходите к следующему шагу, пока Azure не закончит создание виртуальной машины.
Создайте две виртуальные машины в виртуальной сети, чтобы вы могли проверить фильтрацию трафика на более позднем этапе.
Создайте виртуальную машину с помощью команды az vm create. В следующем примере создается виртуальная машина, которая служит веб-сервером. Параметр --nsg ""
указан для того, чтобы предотвратить создание в Azure группы безопасности сети по умолчанию для сетевого интерфейса, который Azure создает при создании виртуальной машины. Командная строка создает пароль для виртуальной машины. Ключи SSH в этом примере не используются для упрощения последующих действий в этой статье. В рабочей среде используйте ключи SSH для обеспечения безопасности.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
Создание виртуальной машины занимает несколько минут. После создания виртуальной машины возвращается результат, аналогичный приведенному ниже.
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Создайте виртуальную машину с помощью команды az vm create. В следующем примере создается виртуальная машина, которая служит сервером управления.
В следующем примере создается виртуальная машина и добавляется учетная запись пользователя. Параметр --generate-ssh-keys
приводит к тому, что интерфейс командной строки ищет доступный ключ SSH в ~/.ssh
. Если он найден, используется этот ключ. Если нет, он создается и хранится в ~/.ssh
. Наконец, мы развернем последний Ubuntu 22.04
образ.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
Создание виртуальной машины занимает несколько минут. Не переходите к следующему шагу, пока Azure не закончит создание виртуальной машины.
При создании виртуальной машины Azure создает сетевой интерфейс для каждой виртуальной машины и подключает их к виртуальным машинам.
Добавьте сетевой интерфейс для каждой виртуальной машины в одну из созданных ранее групп безопасности приложений:
В поле поиска в верхней части портала введите Виртуальная машина. Выберите виртуальные машины в результатах поиска, а затем выберите vm-web.
Выберите группы безопасности приложений из раздела "Сеть" виртуальной машины.
Выберите "Добавить группы безопасности приложений", а затем на вкладке "Добавить группы безопасности приложений" выберите asg-web. Наконец, нажмите Добавить.
Повторите предыдущие шаги для vm-mgmt, выбрав asg-mgmt на вкладке "Добавление групп безопасности приложений".
Используйте Get-AzNetworkInterface для получения сетевого интерфейса виртуальной машины, а затем используйте Get-AzApplicationSecurityGroup для получения группы безопасности приложений. Наконец, используйте Set-AzNetworkInterface , чтобы связать группу безопасности приложений с сетевым интерфейсом. В следующем примере группа безопасности приложений asg-web application связывается с сетевым интерфейсом vm-web-nic :
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Повторите команду, чтобы связать группу безопасности приложений asg-mgmt с сетевым интерфейсом vm-mgmt-nic.
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Используйте az network nic update , чтобы связать сетевой интерфейс с группой безопасности приложений. В следующем примере группа безопасности приложений asg-web application связывается с сетевым интерфейсом vm-web-nic :
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Повторите команду, чтобы связать группу безопасности приложений asg-mgmt с сетевым интерфейсом vm-mgmt-nic.
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
В поле поиска в верхней части портала введите Виртуальная машина. В результатах поиска выберите Виртуальные машины.
Выберите vm-mgmt.
На странице "Обзор" нажмите кнопку "Подключиться" и выберите "Собственный RDP".
Щелкните Скачать RDP-файл.
Откройте скачанный RDP-файл и нажмите Подключиться. Введите имя пользователя и пароль, указанные при создании виртуальной машины.
Нажмите ОК.
Во время процесса подключения может появиться предупреждение о сертификате. Если вы получили предупреждение, выберите Да или Продолжить, чтобы продолжить процесс подключения.
Подключение выполнено успешно, так как входящий трафик из Интернета в группу безопасности приложений asg-mgmt разрешен через порт 3389.
Сетевой интерфейс для vm-mgmt связан с группой безопасности приложений asg-mgmt и разрешает подключение.
Откройте сеанс PowerShell в vm-mgmt. Подключитесь к vm-web , используя следующее:
mstsc /v:vm-web
Подключение RDP из vm-mgmt к vm-web завершается успешно, так как виртуальные машины в одной сети могут взаимодействовать друг с другом через любой порт по умолчанию.
Вы не можете создать подключение RDP к виртуальной веб-виртуальной машине из Интернета. Правило безопасности для asg-web запрещает подключения к порту 3389 входящего трафика из Интернета. По умолчанию входящий трафик из Интернета запрещен для всех ресурсов.
Чтобы установить Microsoft IIS на виртуальной веб-виртуальной машине, введите следующую команду из сеанса PowerShell на виртуальной веб-виртуальной машине:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
После завершения установки IIS отключитесь от виртуальной веб-виртуальной машины, которая оставляет вас в подключении к удаленному рабочему столу виртуальной машины vm-mgmt .
Отключитесь от виртуальной машины mgmt .
Найдите виртуальную машину в поле поиска на портале.
На странице обзора виртуальной машины обратите внимание на общедоступный IP-адрес виртуальной машины. Адрес, показанный в следующем примере: 203.0.113.103. Ваш адрес отличается:
Чтобы убедиться, что вы можете получить доступ к веб-серверу виртуальной машины из Интернета, откройте браузер в Интернете на компьютере и перейдите к http://<public-ip-address-from-previous-step>
ней.
Вы видите страницу IIS по умолчанию, так как входящий трафик из Интернета в группу безопасности приложений asg-web application разрешен через порт 80.
Сетевой интерфейс, подключенный к vm-web , связан с группой безопасности asg-web application и разрешает подключение.
Чтобы получить общедоступный IP-адрес виртуальной машины, выполните командлет Get-AzPublicIpAddress. В следующем примере возвращается общедоступный IP-адрес виртуальной машины mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Используйте следующую команду, чтобы создать сеанс удаленного рабочего стола с виртуальной машиной mgmt на локальном компьютере.
mstsc /v:$publicIP
Введите имя пользователя и пароль, указанные при создании виртуальной машины (может потребоваться выбрать дополнительные варианты, а затем использовать другую учетную запись, чтобы указать учетные данные, введенные при создании виртуальной машины), а затем нажмите кнопку "ОК". При входе в систему может появиться предупреждение о сертификате. Чтобы продолжить процесс подключения, выберите Да.
Подключение выполнено успешно. Порт 3389 разрешен входящий трафик из Интернета в группу безопасности приложений asg-mgmt . Сетевой интерфейс, подключенный к виртуальной машине vm-mgmt , находится в этой группе.
Используйте следующую команду, чтобы создать подключение к виртуальной машине виртуальной машины виртуальной машины с помощью следующей команды из PowerShell:
mstsc /v:vm-web
Подключение будет установлено успешно, так как правило безопасности по умолчанию в каждой группе безопасности сети разрешает трафик через все порты между всеми IP-адресами в виртуальной сети. Невозможно создать подключение удаленного рабочего стола к виртуальной машине виртуальной машины из Интернета, так как правило безопасности для asg-web не разрешает входящий порт 3389 из Интернета.
Используйте следующую команду, чтобы установить Microsoft IIS на виртуальной виртуальной машине из PowerShell:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
После завершения установки IIS отключитесь от виртуальной веб-виртуальной машины, которая оставляет вас в подключении к удаленному рабочему столу виртуальной машины vm-mgmt . Чтобы просмотреть экран приветствия IIS, откройте браузер и перейдите по адресу http://vm-web.
Отключитесь от виртуальной машины mgmt .
На компьютере введите следующую команду из PowerShell, чтобы получить общедоступный IP-адрес виртуального веб-сервера :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Чтобы убедиться, что вы можете получить доступ к веб-серверу виртуальной машины извне Azure, откройте браузер в Интернете на компьютере и перейдите к ней http://<public-ip-address-from-previous-step>
. Подключение выполнено успешно. Порт 80 разрешен входящий трафик из Интернета в группу безопасности asg-web application. Сетевой интерфейс, подключенный к виртуальной машине vm-web , находится в этой группе.
Используя выбранный клиент SSH, подключитесь к виртуальным машинам, созданным ранее. Например, следующую команду можно использовать из интерфейса командной строки, например подсистема Windows для Linux для создания сеанса SSH с виртуальной машиной mgmt. Вы можете войти на виртуальные машины с помощью учетных данных идентификатора Microsoft Entra или использовать ключ SSH, используемый для создания виртуальных машин. В следующем примере мы используем ключ SSH для входа в виртуальную машину управления, а затем войдите на веб-виртуальную машину из виртуальной машины управления с помощью пароля.
Дополнительные сведения о том, как SSH на виртуальную машину Linux и войти с помощью идентификатора Microsoft Entra, см. в статье "Вход в виртуальную машину Linux в Azure" с помощью идентификатора Microsoft Entra и OpenSSH.
Хранение IP-адреса виртуальной машины для SSH
Выполните следующую команду, чтобы сохранить IP-адрес виртуальной машины в качестве переменной среды:
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
Подключение выполнено успешно, так как сетевой интерфейс, подключенный к виртуальной машине vm-mgmt , находится в группе безопасности приложений asg-mgmt , которая разрешает входящий порт 22 из Интернета.
Используйте следующую команду для SSH-виртуальной машины на виртуальной машине веб-сайта из виртуальной машины vm-mgmt :
ssh -o StrictHostKeyChecking=no azureuser@vm-web
Подключение будет установлено успешно, так как правило безопасности по умолчанию в каждой группе безопасности сети разрешает трафик через все порты между всеми IP-адресами в виртуальной сети. Не удается выполнить SSH-подключение к виртуальной машине из Интернета, так как правило безопасности для asg-web не разрешает входящий порт 22 из Интернета.
Используйте следующие команды, чтобы установить веб-сервер nginx на виртуальной машине :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
Виртуальная машина vm-web разрешена исходящим трафиком к Интернету для получения nginx, так как правило безопасности по умолчанию разрешает весь исходящий трафик в Интернет. Закройте сеанс SSH виртуальной машины виртуальной машины, который оставляет вас в запросе username@vm-mgmt:~$
виртуальной машины mgmt. Чтобы получить экран приветствия nginx из виртуальной машины vm-web , введите следующую команду:
curl vm-web
Выйдите из виртуальной машины vm-mgmt . Чтобы убедиться, что вы можете получить доступ к веб-серверу виртуальной машины извне Azure, введите curl <publicIpAddress>
с собственного компьютера. Подключение завершается успешно, так как группа безопасности веб-приложений asg, в которой сетевой интерфейс, подключенный к виртуальной машине виртуальной машины, поддерживает входящий порт 80 из Интернета.
Azure маршрутизирует трафик между подсетями по умолчанию. Вместо этого можно выбрать маршрутизацию трафика между подсетями через виртуальную машину, выступая в качестве брандмауэра, например.
Чтобы узнать, как создать таблицу маршрутов, перейдите к следующему руководству.