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.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement.
Sie können kostenlos ein Konto erstellen.
Azure Cloud Shell oder Azure PowerShell.
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.
Ein Azure-Konto mit einem aktiven Abonnement.
Sie können kostenlos ein Konto erstellen.
Azure Cloud Shell oder Azure CLI.
In den Schritten in 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 |
|
Abonnement |
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. |
Sicherheit |
|
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-AzNetworkSecurityGroup eine Standardnetzwerksicherheitsgruppe.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
Erstellen Sie mittels New-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration für das Subnetz der VM und das Bastion-Hostsubnetz.
# 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'
Erstellen Sie mittels New-AzVirtualNetwork ein virtuelles Netzwerk.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet, $secondSubnet
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.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
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'
Erstellen Sie mittels az network nsg create eine Standardnetzwerksicherheitsgruppe.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --___location 'eastus'
Erstellen Sie mit az network vnet create ein virtuelles Netzwerk.
az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 --network-security-group 'mySubnet-nsg'
Erstellen Sie mittels az network vnet subnet create ein Subnetz für Azure Bastion.
# Create AzureBastionSubnet.
az network vnet subnet create --name 'AzureBastionSubnet' --resource-group 'myResourceGroup' --vnet-name 'myVNet' --address-prefixes '10.0.1.0/26'
Erstellen Sie mittels az network public-ip create eine öffentliche IP-Adresse für den Bastionhost.
# Create a public IP address resource.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku Standard
Erstellen Sie mittels az network bastion create einen Bastionhost.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Wichtig
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.
Geben Sie im Suchfeld oben im Portal den Begriff VM ein. Wählen Sie in den Suchergebnissen Virtuelle Computer aus.
Wählen Sie + Erstellen und dann Virtueller Azure-Computer aus.
Geben Sie unter Virtuellen Computer erstellen auf der Registerkarte Grundlagen die folgenden Werte ein (bzw. wählen Sie sie aus):
Einstellung |
Wert |
Projektdetails |
|
Abonnement |
Wählen Sie Ihr Azure-Abonnement. |
Ressourcengruppe |
Wählen Sie myResourceGroup aus. |
Instanzendetails |
|
Name des virtuellen Computers |
Geben Sie myVM ein. |
Region |
Wählen Sie (USA) USA, Osten aus. |
Verfügbarkeitsoptionen |
Wählen Sie Keine Infrastrukturredundanz erforderlich aus. |
Sicherheitstyp |
Wählen Sie Standard aus. |
Image |
Wählen Sie Windows Server 2022 Datacenter: Azure Edition – x64 Gen2 aus. |
Size |
Wählen Sie eine Größe aus, oder übernehmen Sie die Standardeinstellung. |
Administratorkonto |
|
Nutzername |
Geben Sie einen Benutzernamen ein. |
Kennwort |
Geben Sie ein Kennwort ein. |
Kennwort bestätigen |
Geben Sie das Kennwort erneut ein. |
Wählen Sie die Registerkarte Netzwerk, oder wählen Sie Weiter: Datenträger und dann Weiter: Netzwerk.
Wählen Sie auf der Registerkarte „Netzwerk“ die folgenden Werte aus:
Einstellung |
Wert |
Netzwerkschnittstelle |
|
Virtuelles Netzwerk |
Wählen Sie myVNet aus. |
Subnetz |
Wählen Sie default (Standard) aus. |
Öffentliche IP-Adresse |
Wählen Sie Keine. |
NIC-Netzwerksicherheitsgruppe |
Wählen Sie Basic aus. |
Öffentliche Eingangsports |
Wählen Sie Keine. |
Klicken Sie auf Überprüfen + erstellen.
Überprüfen Sie die Einstellungen, und wählen Sie dann die Option Erstellen.
Erstellen Sie mittels New-AzNetworkSecurityGroup eine Standardnetzwerksicherheitsgruppe.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
Erstellen Sie mittels New-AzVM eine VM. Geben Sie nach entsprechender Aufforderung einen Benutzernamen und das Kennwort ein.
# 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'
Erstellen Sie mittels az network nsg create eine Standardnetzwerksicherheitsgruppe.
# 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.
Wählen Sie + Hinzufügen. Geben Sie auf der Registerkarte „Netzwerk“ die folgenden Werte ein, bzw. wählen Sie sie aus:
Einstellung |
Wert |
`Source` |
Wählen Sie Diensttag aus. |
Quelldiensttag |
Wählen Sie VirtualNetwork aus. |
Quellportbereiche |
Geben Sie * ein. |
Bestimmungsort |
Wählen Sie Beliebig aus. |
Dienst |
Wählen Sie Benutzerdefiniert aus. |
Zielportbereiche |
Geben Sie * ein. |
Protokoll |
Wählen Sie Beliebig aus. |
Aktion |
Wählen Sie Ablehnen aus. |
Priority |
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 |
|
Protokoll |
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, welches der IP-Adressbereich des Bastion-Subnetzes ist. 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 anzeigen für 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.
Verwenden Sie Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic, um die NSG-Diagnosesitzung zu starten.
# 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
Die zurückgegebene Ausgabe ähnelt der folgenden Beispielausgabe:
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
}
]
}
]
}
}
]
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.
Verwenden Sie az network watcher run-configuration-diagnostic, um die NSG-Diagnosesitzung zu starten.
# 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 '*'
Die zurückgegebene Ausgabe ähnelt der folgenden Beispielausgabe:
{
"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"
}
}
]
}
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 |
`Source` |
Wählen Sie IP-Adressen aus. |
IP-Quelladressen/CIDR-Bereiche |
Geben Sie 10.0.1.0/26 ein, welches der IP-Adressbereich des Bastion-Subnetzes ist. |
Quellportbereiche |
Geben Sie * ein. |
Bestimmungsort |
Wählen Sie Beliebig aus. |
Dienst |
Wählen Sie Benutzerdefiniert aus. |
Zielportbereiche |
Geben Sie * ein. |
Protokoll |
Wählen Sie Beliebig aus. |
Aktion |
Wählen Sie Zulassen aus. |
Priority |
Geben Sie 900 ein, was eine höhere Priorität hat als der Wert 1000, 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
Verwenden Sie Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic, um eine erneute Überprüfung mit einer neuen NSG-Diagnosesitzung durchzuführen.
# 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
Die zurückgegebene Ausgabe ähnelt der folgenden Beispielausgabe:
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
}
]
}
]
}
}
]
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 '*'
Verwenden Sie az network watcher run-configuration-diagnostic, um eine erneute Überprüfung mit einer neuen NSG-Diagnosesitzung durchzuführen.
# 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 '*'
Die zurückgegebene Ausgabe ähnelt der folgenden Beispielausgabe:
{
"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"
}
}
]
}
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:
Geben Sie oben im Portal im Suchfeld myResourceGroup ein. Wählen Sie in den Suchergebnissen myResourceGroup aus.
Wählen Sie die Option Ressourcengruppe löschen.
Geben Sie unter Ressourcengruppe löschen den Namen myResourceGroup ein, und wählen Sie anschließend Löschen aus.
Wählen Sie Löschen aus, um das Löschen der Ressourcengruppe und aller zugehörigen Ressourcen zu bestätigen.
Verwenden Sie Remove-AzResourcegroup, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu löschen.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Verwenden Sie az group delete, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu entfernen
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
Verwandte Inhalte