W przykładzie w tym artykule pokazano, jak nieprawidłowo skonfigurowana sieciowa grupa zabezpieczeń może uniemożliwić nawiązywanie połączenia z maszyną wirtualną przy użyciu usługi Azure Bastion.
Kroki opisane w tym artykule uruchamiają interaktywne polecenia cmdlet programu Azure PowerShell w usłudze Azure Cloud Shell. Aby uruchomić polecenia w usłudze Cloud Shell, wybierz pozycję Otwórz usługę Cloud Shell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod, a następnie wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal.
Możesz również zainstalować program Azure PowerShell lokalnie, aby uruchomić polecenia cmdlet. Ten artykuł wymaga modułu Az programu PowerShell. Aby uzyskać więcej informacji, zobacz How to install Azure PowerShell (Jak zainstalować program Azure PowerShell). Aby dowiedzieć się, jaka wersja została zainstalowana, uruchom polecenie Get-InstalledModule -Name Az. Jeśli uruchomisz program PowerShell lokalnie, zaloguj się do platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount .
Azure Cloud Shell lub interfejs wiersza polecenia platformy Azure.
Kroki opisane w tym artykule umożliwiają interaktywne uruchamianie poleceń interfejsu wiersza polecenia platformy Azure w usłudze Azure Cloud Shell. Aby uruchomić polecenia w usłudze Cloud Shell, wybierz pozycję Otwórz usługę Cloud Shell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod i wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal.
W tej sekcji utworzysz sieć wirtualną z dwiema podsieciami i hostem usługi Azure Bastion. Pierwsza podsieć jest używana dla maszyny wirtualnej, a druga podsieć jest używana dla hosta usługi Bastion. Utworzysz również sieciową grupę zabezpieczeń i zastosujesz ją do pierwszej podsieci.
W polu wyszukiwania w górnej części portalu wprowadź sieci wirtualne. Wybierz pozycję Sieci wirtualne z wyników wyszukiwania.
Wybierz + Utwórz. W obszarze Tworzenie sieci wirtualnej wprowadź lub wybierz następujące wartości na karcie Podstawy :
Ustawienie
Wartość
Szczegóły projektu
Subskrypcja
Wybierz subskrypcję platformy Azure.
Grupa zasobów
Wybierz pozycjęUtwórz nowy. Wprowadź wartość myResourceGroup w polu Nazwa. Wybierz przycisk OK.
Szczegóły wystąpienia
Nazwa sieci wirtualnej
Wprowadź nazwę myVNet.
Region (Region)
Wybierz pozycję (STANY USA) Wschodnie stany USA.
Wybierz kartę Zabezpieczenia lub wybierz przycisk Dalej w dolnej części strony.
W obszarze Azure Bastion wybierz pozycję Włącz usługę Azure Bastion i zaakceptuj wartości domyślne:
Ustawienie
Wartość
Nazwa hosta usługi Azure Bastion
myVNet-Bastion.
Publiczny adres IP usługi Azure Bastion
(Nowy) myVNet-bastion-publicIpAddress.
Wybierz kartę Adresy IP lub wybierz przycisk Dalej w dolnej części strony.
Zaakceptuj domyślną przestrzeń adresową IP 10.0.0.0/16 i edytuj domyślną podsieć, wybierając ikonę ołówka. Na stronie Edytowanie podsieci wprowadź następujące wartości:
Ustawienie
Wartość
Szczegóły podsieci
Nazwisko
Wprowadź ciąg mySubnet.
Bezpieczeństwo
Sieciowa grupa zabezpieczeń
Wybierz pozycjęUtwórz nowy. Wprowadź ciąg mySubnet-nsg w polu Nazwa. Wybierz przycisk OK.
Wybierz pozycję Przejrzyj i utwórz.
Przejrzyj ustawienia, a następnie wybierz pozycję Utwórz.
Utwórz grupę zasobów przy użyciu polecenia New-AzResourceGroup. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Utwórz zasób publicznego adresu IP wymagany dla hosta usługi Bastion przy użyciu polecenia New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Utwórz hosta usługi Bastion przy użyciu polecenia New-AzBastion.
Utwórz grupę zasobów za pomocą polecenia az group create. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Utwórz domyślną sieciową grupę zabezpieczeń przy użyciu polecenia az network nsg create.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Ceny godzinowe zaczynają się od momentu wdrożenia hosta usługi Bastion, niezależnie od użycia danych wychodzących. Aby uzyskać więcej informacji, zobacz Cennik. Zalecamy usunięcie tego zasobu po zakończeniu korzystania z niego.
Tworzenie maszyny wirtualnej
W tej sekcji utworzysz maszynę wirtualną i sieciową grupę zabezpieczeń zastosowaną do interfejsu sieciowego.
Utwórz maszynę wirtualną przy użyciu polecenia New-AzVM. Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło.
# 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'
Utwórz domyślną sieciową grupę zabezpieczeń przy użyciu polecenia az network nsg create.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Utwórz maszynę wirtualną przy użyciu polecenia az vm create. Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło.
# 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'
Dodawanie reguły zabezpieczeń do sieciowej grupy zabezpieczeń
W tej sekcji dodasz regułę zabezpieczeń do sieciowej grupy zabezpieczeń skojarzonej z interfejsem sieciowym maszyny wirtualnej myVM. Reguła odmawia dowolnego ruchu przychodzącego z sieci wirtualnej.
W polu wyszukiwania w górnej części portalu wprowadź sieciowe grupy zabezpieczeń. Wybierz pozycję Sieciowe grupy zabezpieczeń z wyników wyszukiwania.
Z listy sieciowych grup zabezpieczeń wybierz grupę myVM-nsg.
W obszarze Ustawienia, wybierz pozycję Reguły zabezpieczeń dla ruchu przychodzącego.
Wybierz + Dodaj. Na karcie Sieć wprowadź lub wybierz następujące wartości:
Ustawienie
Wartość
Lokalizacja źródłowa
wybierz pozycję Tag usługi.
Tag usługi źródłowej
Wybierz pozycję VirtualNetwork.
Zakresy portów źródłowych
Wejść*.
Element docelowy
Wybierz dowolną.
Usługa
Wybierz Niestandardowy.
Zakresy portów docelowych
Wejść*.
Protokół
Wybierz dowolną.
Akcja
Wybierz pozycję Odmów.
Priorytet
Wprowadź wartość 1000.
Nazwisko
Wprowadź wartość DenyVnetInBound.
Wybierz Dodaj.
Użyj polecenia Add-AzNetworkSecurityRuleConfig , aby utworzyć regułę zabezpieczeń, która blokuje ruch z sieci wirtualnej. Następnie użyj polecenia Set-AzNetworkSecurityGroup , aby zaktualizować sieciową grupę zabezpieczeń przy użyciu nowej reguły zabezpieczeń.
# 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
Użyj polecenia az network nsg rule create , aby dodać do sieciowej grupy zabezpieczeń regułę zabezpieczeń, która blokuje ruch z sieci wirtualnej.
# 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 '*'
Uwaga
Tag usługi VirtualNetwork reprezentuje przestrzeń adresową sieci wirtualnej, wszystkie połączone lokalne przestrzenie adresowe, równorzędne sieci wirtualne, sieci wirtualne połączone z bramą sieci wirtualnej, wirtualny adres IP hosta i prefiksy adresów używane na trasach zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz Tagi usługi.
Sprawdzanie reguł zabezpieczeń stosowanych do ruchu maszyny wirtualnej
Użyj diagnostyki sieciowej grupy zabezpieczeń, aby sprawdzić reguły zabezpieczeń zastosowane do ruchu pochodzącego z podsieci bastionu do maszyny wirtualnej.
Wybierz pozycję Adres IPv4/CIDR. Inną dostępną opcją jest: Tag usługi.
Adres IPv4/CIDR
Wprowadź wartość 10.0.1.0/26, czyli zakres adresów IP podsieci bastionu. Dopuszczalne wartości to: pojedynczy adres IP, wiele adresów IP, pojedynczy prefiks IP, wiele prefiksów ip.
Docelowy adres IP
Pozostaw wartość domyślną 10.0.0.4, czyli adres IP maszyny wirtualnej myVM.
Port docelowy
Wprowadź * w celu uwzględnienia wszystkich portów.
Wybierz pozycję Uruchom diagnostykę sieciowej grupy zabezpieczeń, aby uruchomić test. Po zakończeniu sprawdzania wszystkich reguł zabezpieczeń diagnostyka sieciowej grupy zabezpieczeń wyświetla wynik.
Wynik pokazuje, że istnieją trzy reguły zabezpieczeń oceniane dla połączenia przychodzącego z podsieci bastionu:
Reguły globalne: ta reguła administratora zabezpieczeń jest stosowana na poziomie sieci wirtualnej przy użyciu zarządzania siecią wirtualną platformy Azure. Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
mySubnet-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie podsieci (podsieci maszyny wirtualnej). Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
myVM-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie interfejsu sieciowego. Reguła odmawia przychodzącego ruchu TCP z podsieci bastionu do maszyny wirtualnej.
Wybierz pozycję Wyświetl szczegóły sieciowej grupy zabezpieczeń myVM, aby wyświetlić szczegółowe informacje o regułach zabezpieczeń, które ma ta sieciowa grupa zabezpieczeń i która reguła blokuje ruch.
W sieciowej grupie zabezpieczeń myVM-nsg reguła zabezpieczeń DenyVnetInBound odmawia dowolnego ruchu pochodzącego z przestrzeni adresowej tagu usługi VirtualNetwork do maszyny wirtualnej. Host usługi Bastion używa adresów IP z zakresu adresów: 10.0.1.0/26, który znajduje się w tagu usługi VirtualNetwork , aby nawiązać połączenie z maszyną wirtualną. W związku z tym połączenie z hosta usługi Bastion jest odrzucane przez regułę zabezpieczeń DenyVnetInBound .
Wynik pokazuje, że istnieją trzy reguły zabezpieczeń oceniane dla połączenia przychodzącego z podsieci bastionu:
Reguły globalne: ta reguła administratora zabezpieczeń jest stosowana na poziomie sieci wirtualnej przy użyciu zarządzania siecią wirtualną platformy Azure. Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
mySubnet-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie podsieci (podsieci maszyny wirtualnej). Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
myVM-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie interfejsu sieciowego. Reguła odmawia przychodzącego ruchu TCP z podsieci bastionu do maszyny wirtualnej.
W sieciowej grupie zabezpieczeń myVM-nsg reguła zabezpieczeń DenyVnetInBound odmawia dowolnego ruchu pochodzącego z przestrzeni adresowej tagu usługi VirtualNetwork do maszyny wirtualnej. Host usługi Bastion używa adresów IP z adresu 10.0.1.0/26, które są dołączone do tagu usługi VirtualNetwork , aby nawiązać połączenie z maszyną wirtualną. W związku z tym połączenie z hosta usługi Bastion jest odrzucane przez regułę zabezpieczeń DenyVnetInBound .
Wynik pokazuje, że istnieją trzy reguły zabezpieczeń oceniane dla połączenia przychodzącego z podsieci bastionu:
Reguły globalne: ta reguła administratora zabezpieczeń jest stosowana na poziomie sieci wirtualnej przy użyciu zarządzania siecią wirtualną platformy Azure. Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
mySubnet-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie podsieci (podsieci maszyny wirtualnej). Reguła zezwala na ruch przychodzący TCP z podsieci bastionu do maszyny wirtualnej.
myVM-nsg: ta sieciowa grupa zabezpieczeń jest stosowana na poziomie interfejsu sieciowego. Reguła odmawia przychodzącego ruchu TCP z podsieci bastionu do maszyny wirtualnej.
W sieciowej grupie zabezpieczeń myVM-nsg reguła zabezpieczeń DenyVnetInBound odmawia dowolnego ruchu pochodzącego z przestrzeni adresowej tagu usługi VirtualNetwork do maszyny wirtualnej. Host usługi Bastion używa adresów IP z adresu 10.0.1.0/26, które są dołączone do tagu usługi VirtualNetwork , aby nawiązać połączenie z maszyną wirtualną. W związku z tym połączenie z hosta usługi Bastion jest odrzucane przez regułę zabezpieczeń DenyVnetInBound .
Dodawanie reguły zabezpieczeń w celu zezwolenia na ruch z podsieci usługi Bastion
Aby nawiązać połączenie z maszyną wirtualną myVM przy użyciu usługi Azure Bastion, ruch z podsieci bastionu musi być dozwolony przez sieciowa grupa zabezpieczeń. Aby zezwolić na ruch z wersji 10.0.1.0/26, dodaj regułę zabezpieczeń o wyższym priorytcie (numer niższego priorytetu) niż reguła DenyVnetInBound lub edytuj regułę DenyVnetInBound , aby zezwolić na ruch z podsieci bastionu.
Regułę zabezpieczeń można dodać do sieciowej grupy zabezpieczeń ze strony Network Watcher, która wyświetlała szczegółowe informacje o regule zabezpieczeń odmawiającej ruchu do maszyny wirtualnej.
Aby dodać regułę zabezpieczeń z poziomu usługi Network Watcher, wybierz pozycję + Dodaj regułę zabezpieczeń, a następnie wprowadź lub wybierz następujące wartości:
Ustawienie
Wartość
Lokalizacja źródłowa
Wybierz pozycję Adresy IP.
Zakresy źródłowych adresów IP/CIDR
Wprowadź wartość 10.0.1.0/26, czyli zakres adresów IP podsieci bastionu.
Zakresy portów źródłowych
Wejść*.
Element docelowy
Wybierz dowolną.
Usługa
Wybierz Niestandardowy.
Zakresy portów docelowych
Wejść*.
Protokół
Wybierz dowolną.
Akcja
Zaznacz Zezwól.
Priorytet
Wprowadź wartość 900, która ma wyższy priorytet niż 1000 używanych dla reguły DenyVnetInBound .
Nazwisko
Wprowadź wartość AllowBastionConnections.
Wybierz pozycję Sprawdź ponownie, aby ponownie uruchomić sesję diagnostyczną. Sesja diagnostyczna powinna teraz pokazać, że ruch z podsieci bastionu jest dozwolony.
Reguła zabezpieczeń AllowBastionConnections zezwala na ruch z dowolnego adresu IP w wersji 10.0.1.0/26 do maszyny wirtualnej. Ponieważ host usługi Bastion używa adresów IP z adresu 10.0.1.0/26, jego połączenie z maszyną wirtualną jest dozwolone przez regułę zabezpieczeń AllowBastionConnections .
Użyj polecenia Add-AzNetworkSecurityRuleConfig , aby utworzyć regułę zabezpieczeń zezwalającą na ruch z podsieci bastionu. Następnie użyj polecenia Set-AzNetworkSecurityGroup , aby zaktualizować sieciową grupę zabezpieczeń przy użyciu nowej reguły zabezpieczeń.
# 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
Reguła zabezpieczeń AllowBastionConnections zezwala na ruch z dowolnego adresu IP w wersji 10.0.1.0/26 do maszyny wirtualnej. Ponieważ host usługi Bastion używa adresów IP z adresu 10.0.1.0/26, jego połączenie z maszyną wirtualną jest dozwolone przez regułę zabezpieczeń AllowBastionConnections .
Użyj polecenia az network nsg rule create , aby dodać do sieciowej grupy zabezpieczeń regułę zabezpieczeń zezwalającą na ruch z podsieci bastionu.
# 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 '*'
Reguła zabezpieczeń AllowBastionConnections zezwala na ruch z dowolnego adresu IP w wersji 10.0.1.0/26 do maszyny wirtualnej. Ponieważ host usługi Bastion używa adresów IP z adresu 10.0.1.0/26, jego połączenie z maszyną wirtualną jest dozwolone przez regułę zabezpieczeń AllowBastionConnections .
Czyszczenie zasobów
Gdy grupa zasobów i wszystkie znajdujące się w niej zasoby nie będą już potrzebne, usuń je: