Sie können eine Netzwerksicherheitsgruppe verwenden, um eingehenden und ausgehenden Netzwerkdatenverkehr von und zu Azure-Ressourcen in einem virtuellen Azure-Netzwerk zu filtern.
Netzwerksicherheitsgruppen enthalten Sicherheitsregeln, die Netzwerkdatenverkehr nach IP-Adresse, Port und Protokoll filtern. Wenn eine Netzwerksicherheitsgruppe einem Subnetz zugeordnet ist, werden Sicherheitsregeln auf Ressourcen angewendet, die in diesem Subnetz bereitgestellt werden.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
Option |
Beispiel/Link |
Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. |
|
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. |
|
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
|
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
Wenn Sie PowerShell lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens Version 1.0.0 des Azure PowerShell-Moduls verwenden. Führen Sie Get-Module -ListAvailable Az
aus, um die installierte Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount
ausführen, um eine Verbindung mit Azure herzustellen.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für diesen Artikel ist mindestens Version 2.0.28 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Mit dem folgenden Verfahren wird ein virtuelles Netzwerk mit einem Ressourcensubnetz erstellt.
Suchen Sie im Portal nach der Option Virtuelle Netzwerke und wählen Sie sie aus.
Wählen Sie auf der Seite Virtuelle Netzwerke die Option + Erstellen aus.
Geben Sie unter Virtuelles Netzwerk erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Subscription |
Wählen Sie Ihr Abonnement aus. |
Resource group |
Wählen Sie Neu erstellen. Geben Sie test-rg für Name ein. Wählen Sie OK aus. |
Instanzendetails |
|
Name |
Geben Sie vnet-1 ein. |
Region |
Wählen Sie USA, Osten 2 aus. |
Wählen Sie Weiter aus, um zur Registerkarte Sicherheit zu gelangen.
Wählen Sie Weiter aus, um zur Registerkarte IP-Adressen zu gelangen.
Wählen Sie im Feld für den Adressraum unter Subnetze das Standardsubnetz aus.
Geben Sie im Bereich Subnetz bearbeiten die folgenden Informationen ein, oder wählen Sie sie aus:
Einstellung |
Wert |
Subnetzdetails |
|
Subnetzvorlage |
Behalten Sie die Standardeinstellung als Standard bei. |
Name |
Geben Sie subnet-1 ein. |
Startadresse |
Übernehmen Sie den Standardwert 10.0.0.0. |
Subnetzgröße |
Übernehmen Sie den Standardwert /24 (256 Adressen). |
Wählen Sie Speichern.
Wählen Sie unten auf dem Bildschirm die Option Überprüfen + erstellen aus. Wenn die Überprüfung erfolgreich war, wählen Sie Erstellen aus.
Erstellen Sie mit New-AzResourceGroup eine Ressourcengruppe für alle Ressourcen, die im Rahmen dieses Artikels erstellt werden. Im folgenden Beispiel wird eine Ressourcengruppe am Standort westus2 erstellt:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Erstellen Sie mit New-AzVirtualNetwork ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens vnet-1 erstellt:
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Erstellen Sie mit New-AzVirtualNetworkSubnetConfig eine Subnetzkonfiguration, und schreiben Sie sie anschließend mit Set-AzVirtualNetwork in das virtuelle Netzwerk. Das folgende Beispiel fügt dem virtuellen Netzwerk ein Subnetz namens subnet-1 hinzu und weist ihm die Netzwerksicherheitsgruppe nsg-1 zu:
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Erstellen Sie mit az group create eine Ressourcengruppe für alle in diesem Artikel erstellten Ressourcen. Im folgenden Beispiel wird eine Ressourcengruppe am Standort westus2 erstellt:
az group create \
--name test-rg \
--location westus2
Erstellen Sie mit az network vnet create ein virtuelles Netzwerk. Im folgenden Beispiel wird ein virtuelles Netzwerk namens vnet-1 erstellt:
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Fügen Sie einem virtuellen Netzwerk mit az network vnet subnet create ein Subnetz hinzu. Das folgende Beispiel fügt dem virtuellen Netzwerk ein Subnetz namens subnet-1 hinzu und weist ihm die Netzwerksicherheitsgruppe nsg-1 zu:
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
In diesem Abschnitt ordnen Sie die Netzwerksicherheitsgruppe dem Subnetz des zuvor erstellten virtuellen Netzwerks zu.
Geben Sie im Suchfeld oben im Portal Netzwerksicherheitsgruppen ein. Wählen Sie in den Suchergebnissen Netzwerksicherheitsgruppen aus.
Wählen Sie nsg-1 aus.
Wählen Sie Subnetze im Abschnitt Einstellungen von nsg-1 aus.
Klicken Sie auf der Seite Subnetze auf + Zuordnen:
Wählen Sie unter Subnetz zuordnen die Option vnet-1 (test-rg) für Virtuelles Netzwerk aus.
Wählen Sie subnet-1 als Subnetz aus, und klicken Sie dann auf OK.
Verwenden Sie Get-AzVirtualNetwork, um das virtuelle Netzwerkobjekt abzurufen, und verwenden Sie dann Set-AzVirtualNetworkSubnetConfig, um die Netzwerksicherheitsgruppe dem Subnetz zuzuordnen. Im folgenden Beispiel wird das virtuelle Netzwerkobjekt abgerufen und die Subnetzkonfiguration aktualisiert, um die Netzwerksicherheitsgruppe zuzuordnen:
# Retrieve the virtual network
$vnet = Get-AzVirtualNetwork -Name "vnet-1" -ResourceGroupName "test-rg"
# Update the subnet configuration to associate the network security group
$subnetConfigParams = @{
VirtualNetwork = $vnet
Name = "subnet-1"
AddressPrefix = $vnet.Subnets[0].AddressPrefix
NetworkSecurityGroup = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
# Update the virtual network with the new subnet configuration
$vnet | Set-AzVirtualNetwork
Verwenden Sie az network vnet subnet update, um die Netzwerksicherheitsgruppe dem Subnetz zuzuordnen. Im folgenden Beispiel wird die Netzwerksicherheitsgruppe nsg-1 dem Subnetz subnet-1 zugeordnet:
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--network-security-group nsg-1
Wählen Sie im Abschnitt Einstellungen von nsg-1 die Option Eingangssicherheitsregeln aus.
Wählen Sie auf der Seite Eingangssicherheitsregeln die Option + Hinzufügen aus.
Erstellen Sie eine Sicherheitsregel, die für die Anwendungssicherheitsgruppe asg-web die Ports 80 und 443 zulässt. Geben Sie auf der Seite Eingangssicherheitsregel hinzufügen die folgenden Informationen ein, bzw. wählen Sie sie aus:
Einstellung |
Wert |
`Source` |
Übernehmen Sie den Standardwert Beliebig. |
Source port ranges |
Übernehmen Sie den Standardwert (*). |
Destination |
Wählen Sie Anwendungssicherheitsgruppe aus. |
Ziel-Anwendungssicherheitsgruppen |
Wählen Sie asg-web aus. |
Dienst |
Übernehmen Sie den Standardwert Benutzerdefiniert. |
Zielportbereiche |
Geben Sie 80,443 ein. |
Protocol |
Wählen Sie TCP aus. |
Aktion |
Übernehmen Sie den Standardwert Zulassen. |
Priorität |
Übernehmen Sie den Standardwert 100. |
Name |
Geben Sie allow-web-all ein. |
Wählen Sie Hinzufügen.
Führen Sie die vorherigen Schritte mit den folgenden Informationen aus:
Einstellung |
Wert |
`Source` |
Übernehmen Sie den Standardwert Beliebig. |
Source port ranges |
Übernehmen Sie den Standardwert (*). |
Destination |
Wählen Sie Anwendungssicherheitsgruppe aus. |
Ziel-Anwendungssicherheitsgruppe |
Wählen Sie asg-mgmt aus. |
Dienst |
Wählen Sie RDP aus. |
Aktion |
Übernehmen Sie den Standardwert Zulassen. |
Priorität |
Übernehmen Sie den Standardwert 110. |
Name |
Geben Sie allow-rdp-all ein. |
Wählen Sie Hinzufügen.
Achtung
In diesem Artikel wird RDP (Port 3389) für die VM, die der Anwendungssicherheitsgruppe asg-mgmt zugewiesen ist, im Internet verfügbar gemacht.
In Produktionsumgebungen empfiehlt es sich, eine VPN-basierte oder private Netzwerkverbindung mit den zu verwaltenden Azure-Ressourcen herzustellen oder Azure Bastion für die Verbindungsherstellung zu verwenden, anstatt den Port 3389 im Internet verfügbar zu machen.
Weitere Informationen zu Azure Bastion finden Sie unter Was ist Azure Bastion?.
Erstellen Sie mit New-AzNetworkSecurityRuleConfig eine Sicherheitsregel. Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet für die Anwendungssicherheitsgruppe asg-web über die Ports 80 und 443 zulässt:
$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
Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet für die Anwendungssicherheitsgruppe asg-mgmt über den Port 3389 zulässt:
$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
Verwenden Sie Get-AzNetworkSecurityGroup, um die vorhandene Netzwerksicherheitsgruppe abzurufen, und fügen Sie dann die neuen Regeln mit dem +=
-Operator hinzu. Aktualisieren Sie schließlich die Netzwerksicherheitsgruppe mit 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
Achtung
In diesem Artikel wird RDP (Port 3389) für die VM, die der Anwendungssicherheitsgruppe asg-mgmt zugewiesen ist, im Internet verfügbar gemacht.
In Produktionsumgebungen empfiehlt es sich, eine VPN-basierte oder private Netzwerkverbindung mit den zu verwaltenden Azure-Ressourcen herzustellen oder Azure Bastion für die Verbindungsherstellung zu verwenden, anstatt den Port 3389 im Internet verfügbar zu machen.
Weitere Informationen zu Azure Bastion finden Sie unter Was ist Azure Bastion?.
Erstellen Sie mit az network nsg rule create eine Sicherheitsregel. Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet für die Anwendungssicherheitsgruppe asg-web über die Ports 80 und 443 zulässt:
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
Im folgenden Beispiel wird eine Regel erstellt, die eingehenden Datenverkehr aus dem Internet für die Anwendungssicherheitsgruppe asg-mgmt über den Port 22 zulässt:
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
Achtung
In diesem Artikel wird SSH (Port 22) für die VM, die der Anwendungssicherheitsgruppe asg-mgmt zugewiesen ist, im Internet verfügbar gemacht.
In Produktionsumgebungen empfiehlt es sich, eine VPN-basierte oder private Netzwerkverbindung mit den zu verwaltenden Azure-Ressourcen herzustellen oder Azure Bastion für die Verbindungsherstellung zu verwenden, anstatt den Port 22 im Internet verfügbar zu machen.
Weitere Informationen zu Azure Bastion finden Sie unter Was ist Azure Bastion?.
Erstellen Sie zwei virtuelle Computer (VMs) im virtuellen Netzwerk.
Suchen Sie im Portal nach Virtuelle Computer, und klicken Sie darauf.
Wählen Sie unter VM die Option + Erstellen und dann Azure-VM aus.
Geben Sie unter Virtuellen Computer erstellen auf der Registerkarte Grundlagen die folgenden Informationen ein, bzw. wählen Sie sie aus:
Einstellung |
Wert |
Projektdetails |
|
Subscription |
Wählen Sie Ihr Abonnement aus. |
Resource group |
Wählen Sie test-rg aus. |
Instanzendetails |
|
Name des virtuellen Computers |
Geben Sie vm-web ein. |
Region |
Wählen Sie (USA) USA, Osten 2 aus. |
Verfügbarkeitsoptionen |
Übernehmen Sie den Standardwert Keine Infrastrukturredundanz erforderlich. |
Sicherheitstyp |
Wählen Sie Standard aus. |
Image |
Wählen Sie Windows Server 2022 Datacenter – x64 Gen2 aus. |
Azure Spot-Instanz |
Übernehmen Sie die Standardeinstellung (deaktiviert). |
Size |
Wählen Sie eine Größe aus. |
Administratorkonto |
|
Username |
Geben Sie einen Benutzernamen ein. |
Kennwort |
Geben Sie ein Kennwort ein. |
Kennwort bestätigen |
Geben Sie das Kennwort erneut ein. |
Regeln für eingehende Ports |
|
Eingangsports auswählen |
Wählen Sie Keine. |
Wählen Sie Weiter: Datenträger und dann Weiter: Netzwerk aus.
Geben Sie auf der Registerkarte Netzwerk die folgenden Informationen ein, bzw. wählen Sie sie aus:
Einstellung |
Wert |
Netzwerkschnittstelle |
|
Virtuelles Netzwerk |
Wählen Sie vnet-1 aus. |
Subnet |
Wählen Sie Subnetz-1 (10.0.0.0/24) aus. |
Öffentliche IP-Adresse |
Übernehmen Sie den Standardwert einer neuen öffentlichen IP-Adresse. |
NIC-Netzwerksicherheitsgruppe |
Wählen Sie Keine. |
Wählen Sie die Registerkarte Überprüfen + erstellen oder unten auf der Seite die blaue Schaltfläche Überprüfen + erstellen aus.
Klicken Sie auf Erstellen. Die Bereitstellung der VM kann einige Minuten dauern.
Wiederholen Sie die vorherigen Schritte, um eine zweite VM namens vm-mgmt zu erstellen.
Rufen Sie vor dem Erstellen der virtuellen Computer mithilfe von Get-AzVirtualNetwork das virtuelle Netzwerkobjekt mit dem Subnetz ab:
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Erstellen Sie mit New-AzPublicIpAddress eine öffentliche IP-Adresse für die einzelnen virtuellen Computer:
$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
Erstellen Sie mit New-AzNetworkInterface zwei Netzwerkschnittstellen, und weisen Sie ihnen eine öffentliche IP-Adresse zu. Im folgenden Beispiel wird eine Netzwerkschnittstelle erstellt, der die öffentliche IP-Adresse public-ip-vm-web zugeordnet wird.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
Im folgenden Beispiel wird eine Netzwerkschnittstelle erstellt, der die öffentliche IP-Adresse public-ip-vm-mgmt zugeordnet wird.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Erstellen Sie zwei virtuelle Computer im virtuellen Netzwerk, im in einem späteren Schritt die Datenverkehrsfilterung überprüfen zu können.
Erstellen Sie mit New-AzVMConfig eine VM-Konfiguration und anschließend mit New-AzVM den virtuellen Computer. Das folgende Beispiel erstellt einen virtuellen Computer, der als Webserver fungiert. Mit der Option -AsJob
wird der virtuelle Computer im Hintergrund erstellt, sodass Sie mit dem nächsten Schritt fortfahren können:
# 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
Erstellen Sie einen virtuellen Computer, der als Verwaltungsserver fungiert:
# 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
Das Erstellen des virtuellen Computers dauert einige Minuten. Fahren Sie mit dem nächsten Schritt erst fort, wenn Azure die Erstellung des virtuellen Computers abgeschlossen hat.
Erstellen Sie zwei virtuelle Computer im virtuellen Netzwerk, im in einem späteren Schritt die Datenverkehrsfilterung überprüfen zu können.
Erstellen Sie mit az vm create einen virtuellen Computer. Das folgende Beispiel erstellt einen virtuellen Computer, der als Webserver fungiert. Die --nsg ""
-Option wird angegeben, um zu verhindern, dass Azure eine standardmäßige Netzwerksicherheitsgruppe für die Netzwerkschnittstelle erstellt, die Azure während der Erstellung des virtuellen Computers erstellt. Der Befehl fordert Sie auf, ein Kennwort für die VM zu erstellen. SSH-Schlüssel werden in diesem Beispiel nicht verwendet, um die späteren Schritte in diesem Artikel zu vereinfachen. Verwenden Sie in einer Produktionsumgebung SSH-Schlüssel, um die Sicherheit zu gewährleisten.
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
Die Erstellung des virtuellen Computers dauert einige Minuten. Nachdem der virtuelle Computer erstellt wurde, wird eine Ausgabe ähnlich des folgenden Beispiels zurückgegeben:
{
"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"
}
Erstellen Sie mit az vm create einen virtuellen Computer. Das folgende Beispiel erstellt einen virtuellen Computer, der als Verwaltungsserver fungiert.
Im folgenden Beispiel wird eine VM erstellt und ein Benutzerkonto hinzugefügt. Der Parameter --generate-ssh-keys
bewirkt, dass die CLI in ~/.ssh
nach einem verfügbaren SSH-Schlüssel sucht. Wenn ein Schlüssel gefunden wird, wird dieser Schlüssel verwendet. Andernfalls wird einer generiert und in ~/.ssh
gespeichert. Schließlich stellen wir das neueste Ubuntu 22.04
-Image bereit.
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
Die Erstellung des virtuellen Computers dauert einige Minuten. Fahren Sie mit dem nächsten Schritt erst fort, wenn Azure die Erstellung des virtuellen Computers abgeschlossen hat.
Als Sie die VMs erstellt haben, hat Azure eine Netzwerkschnittstelle für jede VM erstellt und an die VM angefügt.
Fügen Sie die Netzwerkschnittstellen der einzelnen virtuellen Computer einer der Anwendungssicherheitsgruppen hinzu, die Sie zuvor erstellt haben:
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie in den Suchergebnissen Virtuelle Computer und dann vm-web aus.
Wählen Sie im Abschnitt Netzwerk von vm-web die Option Anwendungssicherheitsgruppen aus.
Wählen Sie Anwendungssicherheitsgruppen hinzufügen und dann auf der Registerkarte Anwendungssicherheitsgruppen hinzufügen die Option asg-web aus. Klicken Sie abschließend auf Hinzufügen.
Wiederholen Sie die vorherigen Schritte für vm-mgmt, und wählen Sie auf der Registerkarte Anwendungssicherheitsgruppen hinzufügen die Option asg-mgmt aus.
Verwenden Sie Get-AzNetworkInterface, um die Netzwerkschnittstelle des virtuellen Computers abzurufen, und verwenden Sie dann Get-AzApplicationSecurityGroup, um die Anwendungssicherheitsgruppe abzurufen. Verwenden Sie schließlich Set-AzNetworkInterface, um die Anwendungssicherheitsgruppe der Netzwerkschnittstelle zuzuordnen. Im folgenden Beispiel wird die Anwendungssicherheitsgruppe asg-web der Netzwerkschnittstelle vm-web-nic zugeordnet:
$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
Wiederholen Sie den Befehl, um die Anwendungssicherheitsgruppe asg-mgmt der Netzwerkschnittstelle vm-mgmt-nic zuzuordnen.
$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
Verwenden Sie az network nic update, um die Netzwerkschnittstelle der Anwendungssicherheitsgruppe zuzuordnen. Im folgenden Beispiel wird die Anwendungssicherheitsgruppe asg-web der Netzwerkschnittstelle vm-web-nic zugeordnet:
# 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
Wiederholen Sie den Befehl, um die Anwendungssicherheitsgruppe asg-mgmt der Netzwerkschnittstelle vm-mgmt-nic zuzuordnen.
# 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
Geben Sie im Suchfeld oben im Portal den Suchbegriff Virtueller Computer ein. Wählen Sie in den Suchergebnissen Virtuelle Computer aus.
Wählen Sie vm-mgmt aus.
Wählen Sie auf der Seite Übersicht die Schaltfläche Verbinden und dann natives RDP aus.
Wählen Sie RDP-Datei herunterladen aus.
Öffnen Sie die heruntergeladene RDP-Datei, und wählen Sie Verbinden aus. Geben Sie den Benutzernamen und das Kennwort ein, den/das Sie beim Erstellen des virtuellen Computers angegeben haben.
Wählen Sie OK aus.
Während des Verbindungsprozesses wird unter Umständen eine Zertifikatwarnung angezeigt. Sollte eine Warnung angezeigt werden, wählen Sie Ja bzw. Weiter aus, um mit der Verbindungsherstellung fortzufahren.
Die Verbindung wird erfolgreich hergestellt, da eingehender Datenverkehr aus dem Internet an die Anwendungssicherheitsgruppe asg-mgmt über Port 3389 zugelassen wird.
Die Netzwerkschnittstelle für vm-mgmt ist der Anwendungssicherheitsgruppe asg-mgmt zugeordnet und lässt die Verbindung zu.
Öffnen Sie eine PowerShell-Sitzung für vm-mgmt. Stellen Sie wie folgt eine Verbindung mit vm-web her:
mstsc /v:vm-web
Die RDP-Verbindung zwischen vm-mgmt und vm-web ist erfolgreich, da virtuelle Computer im selben Netzwerk standardmäßig über jeden Port miteinander kommunizieren können.
Es ist nicht möglich, über das Internet eine RDP-Verbindung mit dem virtuellen Computer vm-web herzustellen. Die Sicherheitsregel für asg-web verhindert eingehende Verbindungen aus dem Internet an Port 3389. Eingehender Datenverkehr aus dem Internet wird standardmäßig für alle Ressourcen verweigert.
Geben Sie den folgenden Befehl über eine PowerShell-Sitzung auf dem virtuellen Computer vm-web ein, um Microsoft IIS auf dem virtuellen Computer vm-web zu installieren:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Trennen Sie nach Abschluss der IIS-Installation die Verbindung mit dem virtuellen Computer vm-web. Dadurch befinden Sie sich in der Remotedesktopverbindung des virtuellen Computers vm-mgmt.
Trennen Sie die Verbindung mit der VM vm-mgmt.
Suchen Sie über das Suchfeld des Portals nach vm-web.
Notieren Sie sich auf der Seite Übersicht unter vm-web die Angabe für Öffentliche IP-Adresse für Ihre VM. Die im folgenden Beispiel gezeigte Adresse lautet 203.0.113.103. Ihre Adresse unterscheidet sich:
Navigieren Sie auf Ihrem Computer in einem Internetbrowser zu http://<public-ip-address-from-previous-step>
, um sich zu vergewissern, dass Sie vom Internet aus auf den Webserver vm-web zugreifen können.
Die IIS-Standardseite wird angezeigt, da eingehender Datenverkehr aus dem Internet an die Anwendungssicherheitsgruppe asg-web über Port 80 zugelassen wird.
Die für vm-web angefügte Netzwerkschnittstelle ist der Anwendungssicherheitsgruppe asg-web zugeordnet und lässt die Verbindung zu.
Geben Sie mit Get-AzPublicIpAddress die öffentliche IP-Adresse eines virtuellen Computers zurück. Das folgende Beispiel gibt die öffentliche IP-Adresse der VM vm-mgmt zurück:
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Erstellen Sie mit dem folgenden Befehl auf Ihrem lokalen Computer eine Remotedesktopsitzung mit der VM vm-mgmt.
mstsc /v:$publicIP
Geben Sie den Benutzernamen und das Kennwort ein, die Sie beim Erstellen des virtuellen Computers festgelegt haben. Unter Umständen müssen Sie Weitere Optionen und dann Anderes Konto verwenden auswählen, um die Anmeldeinformationen anzugeben, die Sie beim Erstellen des virtuellen Computers eingegeben haben. Wählen Sie anschließend OK aus. Während des Anmeldevorgangs wird unter Umständen eine Zertifikatwarnung angezeigt. Wählen Sie Ja aus, um mit dem Herstellen der Verbindung fortzufahren.
Die Verbindung ist erfolgreich. Port 3389 darf eingehenden Datenverkehr aus dem Internet an die Anwendungssicherheitsgruppe asg-mgmt zulassen. Die an die VM vm-mgmt angefügte Netzwerkschnittstelle befindet sich in dieser Gruppe.
Erstellen Sie mithilfe des folgenden PowerShell-Befehls eine Remotedesktopverbindung zwischen den virtuellen Computern vm-web und vm-mgmt:
mstsc /v:vm-web
Die Verbindung wird erfolgreich hergestellt, da eine Standardsicherheitsregel innerhalb jeder Netzwerksicherheitsgruppe Datenverkehr über alle Ports zwischen allen IP-Adressen in einem virtuellen Netzwerk zulässt. Über das Internet kann keine Remotedesktopverbindung mit dem virtuellen Computer vm-web hergestellt werden, da die Sicherheitsregel für asg-web keinen über Port 3389 eingehenden Datenverkehr aus dem Internet zulässt.
Installieren Sie mithilfe des folgenden PowerShell-Befehls Microsoft IIS auf dem virtuellen Computer vm-web:
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Trennen Sie nach Abschluss der IIS-Installation die Verbindung mit dem virtuellen Computer vm-web. Dadurch befinden Sie sich in der Remotedesktopverbindung des virtuellen Computers vm-mgmt. Navigieren Sie in einem Internetbrowser zu http://vm-web., um den IIS-Begrüßungsbildschirm anzuzeigen.
Trennen Sie die Verbindung mit der VM vm-mgmt.
Geben Sie auf Ihrem Computer in PowerShell den folgenden Befehl ein, um die öffentliche IP-Adresse des Servers vm-web abzurufen:
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Navigieren Sie auf Ihrem Computer in einem Internetbrowser zu http://<public-ip-address-from-previous-step>
, um sich zu vergewissern, dass Sie außerhalb von Azure auf den Webserver vm-web zugreifen können. Die Verbindung ist erfolgreich. Port 80 darf eingehenden Datenverkehr aus dem Internet an die Anwendungssicherheitsgruppe asg-web zulassen. Die an die VM vm-web angefügte Netzwerkschnittstelle befindet sich in dieser Gruppe.
Stellen Sie mithilfe eines SSH-Clients Ihrer Wahl eine Verbindung mit den zuvor erstellten VMs her. Beispielsweise kann der folgende Befehl über eine Befehlszeilenschnittstelle wie Windows-Subsystem für Linux verwendet werden, um eine SSH-Sitzung mit der VM vm-mgmt zu erstellen. Sie können sich mit Ihren Microsoft Entra ID-Anmeldeinformationen bei den VMs anmelden oder den SSH-Schlüssel verwenden, den Sie zum Erstellen der VMs verwendet haben. Im folgenden Beispiel verwenden Sie den SSH-Schlüssel, um sich bei der Verwaltungs-VM anzumelden und sich dann über die Verwaltungs-VM mit einem Kennwort bei der Web-VM anzumelden.
Weitere Informationen dazu, wie Sie per SSH aus eine Linux-VM zugreifen und sich mit Microsoft Entra ID anmelden, finden Sie unter Anmelden auf einer Linux-VM in Azure mithilfe von Microsoft Entra ID und OpenSSH.
Speichern der IP-Adresse der VM für SSH
Führen Sie den folgenden Befehl aus, um die IP-Adresse der VM als Umgebungsvariable zu speichern:
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
Die Verbindung wird erfolgreich hergestellt, da sich die an die VM vm-mgmt angefügte Netzwerkschnittstelle in der Anwendungssicherheitsgruppe asg-mgmt befindet, die eingehenden Datenverkehr aus dem Internet über Port 22 zulässt.
Stellen Sie mit dem folgenden Befehl eine SSH-Verbindung vom virtuellen Computer vm-mgmt zum virtuellen Computer vm-web her:
ssh -o StrictHostKeyChecking=no azureuser@vm-web
Die Verbindung wird erfolgreich hergestellt, da eine Standardsicherheitsregel innerhalb jeder Netzwerksicherheitsgruppe Datenverkehr über alle Ports zwischen allen IP-Adressen in einem virtuellen Netzwerk zulässt. Sie können keine SSH-Verbindung mit dem virtuellen Computer vm-webaus dem Internet herstellen, weil die Sicherheitsregel für asg-web keinen eingehenden Datenverkehr aus dem Internet über Port 22 zulässt.
Verwenden Sie die folgenden Befehle, um den nginx-Webserver auf dem virtuellen Computer vm-web zu installieren:
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
Für den virtuellen Computer vm-web ist ausgehender Datenverkehr ins Internet für den Abruf von nginx zulässig, weil eine Standardsicherheitsregel sämtlichen ausgehenden Datenverkehr ins Internet zulässt. Beenden Sie die SSH-Sitzung für vm-web. Sie befinden sich an der Eingabeaufforderung username@vm-mgmt:~$
des virtuellen Computers vm-mgmt. Um die nginx-Willkommensseite vom virtuellen Computer vm-web abzurufen, geben Sie den folgenden Befehl ein:
curl vm-web
Melden Sie sich von der VM vm-mgmt ab. Um zu bestätigen, dass Sie außerhalb von Azure auf den Webserver vm-web zugreifen können, geben Sie auf Ihrem eigenen Computer curl <publicIpAddress>
ein. Die Verbindung wird erfolgreich hergestellt, da die Anwendungssicherheitsgruppe asg-web, in der sich die an die VM vm-web angefügte Netzwerkschnittstelle befindet, eingehenden Datenverkehr aus dem Internet über Port 80 zulässt.
Azure leitet standardmäßig Datenverkehr zwischen Subnetzen weiter. Sie können Datenverkehr zwischen Subnetzen aber beispielsweise auch über einen virtuellen Computer weiterleiten, der als Firewall fungiert.
Im nächsten Tutorial erfahren Sie, wie Sie eine Routingtabelle erstellen.