In diesem Artikel erfahren Sie, wie Sie die Azure Network Watcher NSG-Diagnose verwenden, um Sicherheitsregeln zu überprüfen und zu beheben, die auf Ihren Azure-Datenverkehr über Netzwerksicherheitsgruppen und Azure Virtual Network Manager angewendet werden. Die NSG-Diagnosen überprüfen, ob der Datenverkehr durch angewendete Sicherheitsregeln zugelassen oder verweigert wird.
Das Beispiel in diesem Artikel zeigt, wie eine falsch konfigurierte Netzwerksicherheitsgruppe verhindern kann, dass Sie Azure Bastion zum Herstellen einer Verbindung mit einer VM verwenden.
Die Schritte in diesem Artikel führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.
Sie können Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Für diesen Artikel ist das Az PowerShell-Modul erforderlich. Weitere Informationen finden Sie unter Installieren von Azure PowerShell. Führen Sie Get-InstalledModule -Name Az aus, um die installierte Version zu ermitteln. Melden Sie sich bei Azure mit dem Cmdlet Connect-AzAccount an, wenn Sie PowerShell lokal ausführen.
In den Schritten diesem Artikel werden die Azure CLI-Befehle interaktiv in Azure Cloud Shell ausgeführt. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren, und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.
Sie können die Azure CLI auch lokal installieren, um die Befehle auszuführen. Wenn Sie die Azure CLI lokal ausführen, melden Sie sich mit dem Befehl az login bei Azure an.
Erstellen eines virtuellen Netzwerks und eines Bastion-Hosts
In diesem Abschnitt erstellen Sie ein virtuelles Netzwerk mit zwei Subnetzen und einem Azure Bastion-Host. Das erste Subnetz wird für die VM und das zweite Subnetz für den Bastion-Host verwendet. Außerdem erstellen Sie eine Netzwerksicherheitsgruppe und wenden sie auf das erste Subnetz an.
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtuelle Netzwerke ein. Wählen Sie in den Suchergebnissen Virtuelle Netzwerke aus.
Wählen Sie + Erstellen aus. Geben Sie unter Virtuelles Netzwerk erstellen auf der Registerkarte Allgemein die folgenden Werte ein, oder wählen Sie diese aus:
Einstellung
Wert
Projektdetails
Subscription
Wählen Sie Ihr Azure-Abonnement.
Ressourcengruppe
Wählen Sie Neu erstellen. Geben Sie myResourceGroup unter Name ein. Wählen Sie OK aus.
Instanzendetails
Name des virtuellen Netzwerks
Geben Sie MyVNet ein.
Region
Wählen Sie (USA) USA, Osten aus.
Wählen Sie die Registerkarte Sicherheit oder unten auf der Seite die Schaltfläche Weiter aus.
Wählen Sie unter Azure Bastiondie Option Azure Bastion aktivieren aus, und akzeptieren Sie die Standardwerte:
Einstellung
Wert
Azure Bastion-Hostname
myVNet-Bastion.
Öffentliche Azure Bastion-IP-Adresse
(Neu) myVNet-bastion-publicIpAddress.
Wählen Sie die Registerkarte IP-Adressen oder die Schaltfläche Weiter am unteren Seitenrand aus.
Übernehmen Sie den Standard-IP-Adressraum 10.0.0.0/16 , und bearbeiten Sie das Standardsubnetz, indem Sie das Bleistiftsymbol auswählen. Geben Sie auf der Seite Subnetz bearbeiten die folgenden Werte ein:
Einstellung
Wert
Subnetzdetails
Name
Geben Sie mySubnet ein.
Security
Netzwerksicherheitsgruppe
Wählen Sie Neu erstellen. Geben Sie mySubnet-nsg unter Name ein. Wählen Sie OK aus.
Wählen Sie Überprüfen + erstellen aus.
Überprüfen Sie die Einstellungen, und wählen Sie dann die Option Erstellen.
Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Erstellen Sie mittels New-AzPublicIpAddress die öffentliche IP-Adressressource, die für den Bastion-Host erforderlich ist.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Erstellen Sie den Bastionhost mittels New-AzBastion.
Erstellen Sie mit az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Die Stundenpreise gelten ab dem Zeitpunkt der Bereitstellung des Bastion-Hosts, unabhängig von der Nutzung ausgehender Daten. Weitere Informationen finden Sie unter Preise. Wir empfehlen Ihnen, diese Ressource zu löschen, wenn Sie sie nicht mehr benötigen.
Erstellen eines virtuellen Computers
In diesem Abschnitt erstellen Sie eine VM und eine Netzwerksicherheitsgruppe, die auf die Netzwerkschnittstelle der VM angewendet wird.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Erstellen Sie mit dem Befehl az vm create einen virtuellen Computer. Geben Sie nach entsprechender Aufforderung einen Benutzernamen und das Kennwort ein.
# 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'
Hinzufügen einer Sicherheitsregel zur Netzwerksicherheitsgruppe
In diesem Abschnitt fügen Sie der Netzwerksicherheitsgruppe, die der Netzwerkschnittstelle von myVM zugeordnet ist, eine Sicherheitsregel hinzu. Die Regel verweigert eingehenden Datenverkehr aus dem virtuellen Netzwerk.
Geben Sie im Suchfeld oben im Portal Netzwerksicherheitsgruppen ein. Wählen Sie in den Suchergebnissen Netzwerksicherheitsgruppen aus.
Wählen Sie in der Liste der Netzwerksicherheitsgruppen myVM-nsg aus.
Wählen Sie unter Einstellungen die Option Eingangssicherheitsregeln.
Klicken Sie auf + Hinzufügen. Geben Sie auf der Registerkarte „Netzwerk“ die folgenden Werte ein, bzw. wählen Sie sie aus:
Einstellung
Wert
Quelle
Wählen Sie Diensttag aus.
Quelldiensttag
Wählen Sie VirtualNetwork aus.
Source port ranges
Geben Sie * ein.
Destination
Wählen Sie Alle aus.
Dienst
Wählen Sie Benutzerdefiniert aus.
Zielportbereiche
Geben Sie * ein.
Protocol
Wählen Sie Alle aus.
Aktion
Wählen Sie Ablehnen aus.
Priorität
Geben Sie 1000 ein.
Name
Geben Sie DenyVnetInBound ein.
Wählen Sie Hinzufügen.
Verwenden Sie Add-AzNetworkSecurityRuleConfig, um eine Sicherheitsregel zu erstellen, die Datenverkehr aus dem virtuellen Netzwerk verweigert. Verwenden Sie dann Set-AzNetworkSecurityGroup, um die Netzwerksicherheitsgruppe mit der neuen Sicherheitsregel zu aktualisieren.
# 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
Verwenden Sie az network nsg rule create, um der Netzwerksicherheitsgruppe eine Sicherheitsregel hinzuzufügen, die Datenverkehr aus dem virtuellen Netzwerk verweigert.
# 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 '*'
Hinweis
Das VirtualNetwork-Diensttag repräsentiert den Adressraum des virtuellen Netzwerks, alle verbundenen lokalen Adressräume, mit Peering verbundene virtuelle Netzwerke, virtuelle Netzwerke, die mit einem virtuellen Netzwerkgateway verbunden sind, die virtuelle IP-Adresse des Hosts und Adresspräfixe, die auf benutzerdefinierten Routen verwendet werden. Weitere Informationen finden Sie unter Diensttags.
Überprüfen von Sicherheitsregeln, die auf den Datenverkehr einer VM angewendet werden
Verwenden Sie NSG-Diagnosen, um die Sicherheitsregeln zu überprüfen, die auf den Datenverkehr angewendet werden, der vom Bastion-Subnetz stammt und zur VM geht.
Suchen Sie über das Suchfeld oben im Portal nach Network Watcher, und wählen Sie den Eintrag aus.
Wählen Sie unter Netzwerkdiagnosetools die Option NSG-Diagnosen aus.
Geben Sie auf der Seite NSG-Diagnosen die folgenden Werte ein, oder wählen Sie diese aus:
Einstellung
Wert
Zielressource
Zielressourcentyp
Klicken Sie auf Virtuelle Computer.
Virtueller Computer
Wählen Sie die VM myVm aus.
Details zum Datenverkehr
Protocol
Wählen Sie TCP aus. Weitere verfügbare Optionen sind: Any, UDP und ICMP.
Direction
Wählen Sie Eingehender Datenverkehr aus. Eine andere verfügbare Option ist: Ausgehender Datenverkehr.
Quellentyp
Wählen Sie IPv4-Adresse/CIDR aus. Eine andere verfügbare Option ist: Diensttag.
IPv4-Adresse/CIDR
Geben Sie 10.0.1.0/26 ein, den IP-Adressbereich des Bastion-Subnetzes. Zulässige Werte sind: einzelne IP-Adresse, mehrere IP-Adressen, ein einzelnes IP-Präfix, mehrere IP-Präfixe.
IP-Zieladresse
Behalten Sie den Standardwert 10.0.0.4 bei. Dies ist die IP-Adresse von myVM.
Zielport
Geben Sie * ein, um alle Ports einzuschließen.
Wählen Sie NSG-Diagnose ausführen aus, um den Test auszuführen. Sobald die NSG-Diagnosen die Überprüfung aller Sicherheitsregeln abgeschlossen hat, wird das Ergebnis angezeigt.
Das Ergebnis zeigt, dass drei Sicherheitsregeln vorhanden sind, die für die eingehende Verbindung aus dem Bastion-Subnetz bewertet wurden:
GlobalRules: Diese Sicherheitsadministratorregel wird mithilfe von Azure Virtual Network Manager auf der Ebene des virtuellen Netzwerks angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
mySubnet-nsg: Diese Netzwerksicherheitsgruppe wird auf Subnetzebene (Subnetz der VM) angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
myVM-nsg: Diese Netzwerksicherheitsgruppe wird auf der Ebene der Netzwerkschnittstelle (Network Interface Card, NIC) angewendet. Die Regel verweigert eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM.
Wählen Sie Details von myVM-nsg anzeigen aus, um Details zu den Sicherheitsregeln dieser Netzwerksicherheitsgruppe anzuzeigen und dazu, welche Regel den Datenverkehr verweigert hat.
In der Netzwerksicherheitsgruppe myVM-nsg verweigert die Sicherheitsregel DenyVnetInBound jeglichen Datenverkehr aus dem Adressraum des VirtualNetwork-Diensttags zur VM. Der Bastion-Host verwendet IP-Adressen aus dem Adressbereich 10.0.1.0/26, der im VirtualNetwork-Diensttag enthalten ist, um eine Verbindung mit der VM herzustellen. Daher wird die Verbindung vom Bastion-Host durch die DenyVnetInBound-Sicherheitsregel verweigert.
Das Ergebnis zeigt, dass drei Sicherheitsregeln vorhanden sind, die für die eingehende Verbindung aus dem Bastion-Subnetz bewertet wurden:
GlobalRules: Diese Sicherheitsadministratorregel wird mithilfe von Azure Virtual Network Manager auf der Ebene des virtuellen Netzwerks angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
mySubnet-nsg: Diese Netzwerksicherheitsgruppe wird auf Subnetzebene (Subnetz der VM) angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
myVM-nsg: Diese Netzwerksicherheitsgruppe wird auf der Ebene der Netzwerkschnittstelle (Network Interface Card, NIC) angewendet. Die Regel verweigert eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM.
In der Netzwerksicherheitsgruppe myVM-nsg verweigert die Sicherheitsregel DenyVnetInBound jeglichen Datenverkehr aus dem Adressraum des VirtualNetwork-Diensttags zur VM. Der Bastion-Host verwendet IP-Adressen von 10.0.1.0/26, die im VirtualNetwork-Diensttag enthalten sind, um eine Verbindung mit der VM herzustellen. Daher wird die Verbindung vom Bastion-Host durch die DenyVnetInBound-Sicherheitsregel verweigert.
Das Ergebnis zeigt, dass drei Sicherheitsregeln vorhanden sind, die für die eingehende Verbindung aus dem Bastion-Subnetz bewertet wurden:
GlobalRules: Diese Sicherheitsadministratorregel wird mithilfe von Azure Virtual Network Manager auf der Ebene des virtuellen Netzwerks angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
mySubnet-nsg: Diese Netzwerksicherheitsgruppe wird auf Subnetzebene (Subnetz der VM) angewendet. Die Regel lässt eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM zu.
myVM-nsg: Diese Netzwerksicherheitsgruppe wird auf der Ebene der Netzwerkschnittstelle (Network Interface Card, NIC) angewendet. Die Regel verweigert eingehenden TCP-Datenverkehr vom Bastion-Subnetz zur VM.
In der Netzwerksicherheitsgruppe myVM-nsg verweigert die Sicherheitsregel DenyVnetInBound jeglichen Datenverkehr aus dem Adressraum des VirtualNetwork-Diensttags zur VM. Der Bastion-Host verwendet IP-Adressen von 10.0.1.0/26, die im VirtualNetwork-Diensttag enthalten sind, um eine Verbindung mit der VM herzustellen. Daher wird die Verbindung vom Bastion-Host durch die DenyVnetInBound-Sicherheitsregel verweigert.
Hinzufügen einer Sicherheitsregel zum Zulassen von Datenverkehr aus dem Bastion-Subnetz
Um eine Verbindung mit myVM mittels Azure Bastion herzustellen, muss Datenverkehr aus dem Bastion-Subnetz von der Netzwerksicherheitsgruppe zugelassen werden. Um Datenverkehr von 10.0.1.0/26 zuzulassen, fügen Sie eine Sicherheitsregel mit einer höheren Priorität (niedrigere Prioritätsnummer) als die DenyVnetInBound-Regel hinzu, oder bearbeiten Sie die DenyVnetInBound-Regel, um Datenverkehr aus dem Bastion-Subnetz zuzulassen.
Sie können die Sicherheitsregel der Netzwerksicherheitsgruppe von der Seite „Network Watcher“ hinzufügen, auf der die Details zur Sicherheitsregel angezeigt wurden, die den Datenverkehr an die VM verweigert.
Um die Sicherheitsregel von Network Watcher aus hinzuzufügen, wählen Sie + Sicherheitsregel hinzufügen aus, und geben Sie dann die folgenden Werte ein, oder wählen Sie diese aus:
Einstellung
Wert
Quelle
Wählen Sie IP-Adressen aus.
IP-Quelladressen/CIDR-Bereiche
Geben Sie 10.0.1.0/26 ein, den IP-Adressbereich des Bastion-Subnetzes.
Source port ranges
Geben Sie * ein.
Destination
Wählen Sie Alle aus.
Dienst
Wählen Sie Benutzerdefiniert aus.
Zielportbereiche
Geben Sie * ein.
Protocol
Wählen Sie Alle aus.
Aktion
Wählen Sie Zulassen aus.
Priorität
Geben Sie den Wert 900 ein, der eine höhere Priorität als der Wert 1000 aufweist, der für die DenyVnetInBound-Regel verwendet wird.
Name
Geben Sie AllowBastionConnections ein.
Wählen Sie Erneut überprüfen aus, um die Diagnosesitzung erneut auszuführen. In der Diagnosesitzung sollte nun anzeigen, dass der Datenverkehr aus dem Bastion-Subnetz zulässig ist.
Die Sicherheitsregel AllowBastionConnections lässt den Datenverkehr von einer beliebigen IP-Adresse in 10.0.1.0/26 an die VM zu. Da der Bastion-Host IP-Adressen von 10.0.1.0/26 verwendet, wird seine Verbindung mit der VM durch die Sicherheitsregel AllowBastionConnections zugelassen.
Verwenden Sie Add-AzNetworkSecurityRuleConfig, um eine Sicherheitsregel zu erstellen, die Datenverkehr aus dem Bastion-Subnetz zulässt. Verwenden Sie dann Set-AzNetworkSecurityGroup, um die Netzwerksicherheitsgruppe mit der neuen Sicherheitsregel zu aktualisieren.
# 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
Die Sicherheitsregel AllowBastionConnections lässt den Datenverkehr von einer beliebigen IP-Adresse in 10.0.1.0/26 an die VM zu. Da der Bastion-Host IP-Adressen von 10.0.1.0/26 verwendet, wird seine Verbindung mit der VM durch die Sicherheitsregel AllowBastionConnections zugelassen.
Verwenden Sie az network nsg rule create, um der Netzwerksicherheitsgruppe eine Sicherheitsregel hinzuzufügen, die Datenverkehr aus dem Bastion-Subnetz zulässt.
# 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 '*'
Die Sicherheitsregel AllowBastionConnections lässt den Datenverkehr von einer beliebigen IP-Adresse in 10.0.1.0/26 an die VM zu. Da der Bastion-Host IP-Adressen von 10.0.1.0/26 verwendet, wird seine Verbindung mit der VM durch die Sicherheitsregel AllowBastionConnections zugelassen.
Bereinigen von Ressourcen
Löschen Sie die Ressourcengruppe mit allen ihren Ressourcen, wenn Sie sie nicht mehr benötigen: