Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Die Steuerung des ausgehenden Netzwerkzugriffs ist ein wichtiger Teil eines umfassenden Netzwerksicherheitsplans. Vielleicht möchten Sie beispielsweise den Zugriff auf Websites einschränken. Mitunter kann es auch empfehlenswert sein, die verfügbaren Ports einzuschränken.
Eine Möglichkeit zur Steuerung des ausgehenden Netzwerkzugriffs aus einem Subnetz ist Azure Firewall. Mit Azure Firewall können Sie Folgendes konfigurieren:
- Anwendungsregeln, die vollqualifizierte Domänennamen (Fully Qualified Domain Names, FQDNs) definieren, auf die von einem Subnetz aus zugegriffen werden kann. Der FQDN kann auch SQL-Instanzen enthalten.
- Netzwerkregeln, die die Quelladresse, das Protokoll, den Zielport und die Zieladresse definieren.
Die konfigurierten Firewallregeln werden auf den Netzwerkdatenverkehr angewendet, wenn Sie Ihren Netzwerkdatenverkehr an die Firewall als Subnetz-Standardgateway weiterleiten.
In diesem Artikel erstellen Sie der Einfachheit halber ein einzelnes vereinfachtes VNET mit drei Subnetzen. Für Produktionsbereitstellungen wird ein Hub-Spoke-Modell empfohlen. Die Firewall befindet sich dabei in einem eigenen VNET. Die Workloadserver befinden sich in per Peering verknüpften VNETs in derselben Region mit einem oder mehreren Subnetzen.
- AzureFirewallSubnet: Das Subnetz mit der Firewall.
- Workload-SN: Das Subnetz mit dem Workloadserver. Der Netzwerkdatenverkehr dieses Subnetzes durchläuft die Firewall.
- AzureBastionSubnet – Azure Bastion befindet sich in diesem Subnetz und bietet sicheren Zugriff auf den Workloadserver.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Einrichten einer Netzwerkumgebung zu Testzwecken
- Bereitstellen einer Firewall
- Erstellen einer Standardroute
- Konfigurieren einer Anwendungsregel zum Zulassen des Zugriffs auf www.microsoft.com
- Konfigurieren einer Netzwerkregel, um den Zugriff auf externe DNS-Server zuzulassen
- Testen der Firewall
Dieses Verfahren kann auch mit dem Azure-Portal oder mit Azure PowerShell durchgearbeitet werden.
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit 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. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe 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 und Verwalten 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.55.0 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Einrichten des Netzwerks
Erstellen Sie zunächst eine Ressourcengruppe für die Ressourcen, die zum Bereitstellen der Firewall benötigt werden. Erstellen Sie dann ein VNet, Subnetze und Testserver.
Erstellen einer Ressourcengruppe
Die Ressourcengruppe enthält alle Ressourcen für die Bereitstellung.
az group create --name Test-FW-RG --location eastus
Erstellen eines VNET
Dieses virtuelle Netzwerk umfasst drei Subnetze.
Hinweis
Die Größe des Subnetzes AzureFirewallSubnet beträgt /26. Weitere Informationen zur Subnetzgröße finden Sie unter Azure Firewall – Häufig gestellte Fragen.
az network vnet create \
--name Test-FW-VN \
--resource-group Test-FW-RG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name AzureFirewallSubnet \
--subnet-prefix 10.0.1.0/26
az network vnet subnet create \
--name Workload-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.2.0/24
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefix 10.0.3.0/26
Erstellen eines virtuellen Computers
Erstellen Sie zum Testen eine Netzwerkkarte für Srv-Work mit spezifischen DNS-Server-IP-Adressen und keiner öffentlichen IP-Adresse.
az network nic create \
--resource-group Test-FW-RG \
--name Srv-Work-NIC \
--vnet-name Test-FW-VN \
--subnet Workload-SN \
--dns-servers <replace with External DNS ip #1> <replace with External DNS ip #2>
Erstellen Sie jetzt den virtuellen Workloadcomputer. Mit dem folgenden Befehl wird eine Ubuntu Server 22.04 LTS-VM mit SSH-Schlüsselauthentifizierung erstellt und Nginx installiert. Wenn Sie dazu aufgefordert werden, speichern Sie den generierten privaten Schlüssel in einer .pem Datei, die beim Herstellen einer Verbindung über Azure Bastion verwendet werden soll.
az vm create \
--resource-group Test-FW-RG \
--name Srv-Work \
--location eastus \
--image Ubuntu2204 \
--nics Srv-Work-NIC \
--admin-username azureuser \
--generate-ssh-keys \
--custom-data cloud-init.txt
Erstellen Sie eine cloud-init.txt Datei mit dem folgenden Inhalt, um Nginx zu installieren:
#cloud-config
package_upgrade: true
packages:
- nginx
runcmd:
- echo '<h1>'$(hostname)'</h1>' | sudo tee /var/www/html/index.html
Hinweis
Azure stellt eine ausgehende Standardzugriffs-IP für VMs bereit, denen keine öffentliche IP-Adresse zugewiesen ist oder die sich im Backendpool eines internen grundlegenden Azure-Lastenausgleichs befinden. Der Mechanismus für Standard-IP-Adressen für den ausgehenden Zugriff stellt eine ausgehende IP-Adresse bereit, die nicht konfigurierbar ist.
Die Standard-IP-Adresse für ausgehenden Zugriff ist deaktiviert, wenn eines der folgenden Ereignisse auftritt:
- Dem virtuellen Computer wird eine öffentliche IP-Adresse zugewiesen.
- Die VM wird im Backendpool eines Standardlastenausgleichs platziert (mit oder ohne Ausgangsregeln).
- Dem Subnetz der VM wird eine Azure NAT Gateway-Ressource zugewiesen.
VMs, die Sie mithilfe von VM-Skalierungsgruppen im Orchestrierungsmodus „Flexibel“ erstellen, haben keinen ausgehenden Standardzugriff.
Weitere Informationen zu ausgehenden Verbindungen in Azure finden Sie unter Standardzugriff in ausgehender Richtung und Verwenden von SNAT (Source Network Address Translation) für ausgehende Verbindungen.
Bereitstellen der Firewall
Stellen Sie nun die Firewall im virtuellen Netzwerk bereit.
az network firewall create \
--name Test-FW01 \
--resource-group Test-FW-RG \
--location eastus
az network public-ip create \
--name fw-pip \
--resource-group Test-FW-RG \
--location eastus \
--allocation-method static \
--sku standard
az network firewall ip-config create \
--firewall-name Test-FW01 \
--name FW-config \
--public-ip-address fw-pip \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN
az network firewall update \
--name Test-FW01 \
--resource-group Test-FW-RG
az network public-ip show \
--name fw-pip \
--resource-group Test-FW-RG
fwprivaddr="$(az network firewall ip-config list --resource-group Test-FW-RG --firewall-name Test-FW01 --query "[?name=='FW-config'].privateIpAddress" --output tsv)"
Notieren Sie sich die private IP-Adresse. Diese wird später für die Erstellung der Standardroute benötigt.
Bereitstellen von Azure Bastion
Stellen Sie Azure Bastion bereit, um eine sichere Verbindung mit dem Srv-Work virtuellen Computer herzustellen, ohne dass öffentliche IP-Adressen oder ein Sprungserver erforderlich sind.
az network public-ip create \
--resource-group Test-FW-RG \
--name bastion-pip \
--sku Standard \
--location eastus
az network bastion create \
--name Test-Bastion \
--public-ip-address bastion-pip \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--location eastus \
--sku Basic
Hinweis
Die Azure Bastion-Bereitstellung kann ungefähr 10 Minuten dauern.
Erstellen einer Standardroute
Erstellen einer Routingtabelle mit deaktivierter BGP-Routenweitergabe
az network route-table create \
--name Firewall-rt-table \
--resource-group Test-FW-RG \
--location eastus \
--disable-bgp-route-propagation true
Erstellen Sie die Route.
az network route-table route create \
--resource-group Test-FW-RG \
--name DG-Route \
--route-table-name Firewall-rt-table \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address $fwprivaddr
Ordnen Sie die Routingtabelle dem Subnetz zu.
az network vnet subnet update \
--name Workload-SN \
--resource-group Test-FW-RG \
--vnet-name Test-FW-VN \
--address-prefixes 10.0.2.0/24 \
--route-table Firewall-rt-table
Konfigurieren einer Anwendungsregel
Die Anwendungsregel lässt den ausgehenden Zugriff auf www.microsoft.com zu.
az network firewall application-rule create \
--collection-name App-Coll01 \
--firewall-name Test-FW01 \
--name Allow-Microsoft \
--protocols Http=80 Https=443 \
--resource-group Test-FW-RG \
--target-fqdns www.microsoft.com \
--source-addresses 10.0.2.0/24 \
--priority 200 \
--action Allow
Azure Firewall enthält eine integrierte Regelsammlung für Infrastruktur-FQDNs, die standardmäßig zulässig sind. Diese FQDNs sind plattformspezifisch und können nicht für andere Zwecke verwendet werden. Weitere Informationen finden Sie unter Infrastruktur-FQDNs.
Konfigurieren einer Netzwerkregel
Die Netzwerkregel lässt ausgehenden Zugriff auf zwei öffentliche DNS-IP-Adressen Ihrer Wahl über Port 53 (DNS) zu.
az network firewall network-rule create \
--collection-name Net-Coll01 \
--destination-addresses <replace with DNS ip #1> <replace with DNS ip #2> \
--destination-ports 53 \
--firewall-name Test-FW01 \
--name Allow-DNS \
--protocols UDP \
--resource-group Test-FW-RG \
--priority 200 \
--source-addresses 10.0.2.0/24 \
--action Allow
Testen der Firewall
Testen Sie nun die Firewall, um sicherzustellen, dass sie wie erwartet funktioniert.
Notieren Sie die private IP-Adresse des virtuellen Computers Srv-Work:
az vm list-ip-addresses \ --resource-group Test-FW-RG \ --name Srv-WorkNavigieren Sie im Azure-Portal zum virtuellen Srv-Work-Computer , und wählen Sie Connect>über Bastion aus.
Geben Sie den Benutzernamen azureuser an, und laden Sie die private Schlüsseldatei
.pemhoch, die beim Erstellen der VM generiert wurde. Wählen Sie "Verbinden" aus, um eine SSH-Sitzung zu öffnen.Führen Sie in der SSH-Sitzung die folgenden Befehle aus, um die DNS-Auflösung zu testen:
nslookup www.google.com nslookup www.microsoft.comFür beide Befehle sollten Antworten zurückgegeben werden, was zeigt, dass Ihre DNS-Abfragen die Firewall durchqueren.
Führen Sie die folgenden Befehle aus, um den Webzugriff zu testen:
curl https://www.microsoft.com curl https://www.google.comDie
www.microsoft.comAnforderung sollte erfolgreich sein und HTML-Inhalte zurückgeben, während diewww.google.comAnforderung fehlschlägt oder timeout ist. Dies zeigt, dass Ihre Firewallregeln erwartungsgemäß funktionieren.
Damit haben Sie sich vergewissert, dass die Firewallregeln funktionieren:
- Sie können DNS-Namen mithilfe des konfigurierten externen DNS-Servers auflösen.
- Sie können zum einzigen zulässigen FQDN navigieren, aber nicht zu anderen.
Bereinigen von Ressourcen
Sie können die Firewallressourcen für das nächste Tutorial behalten oder die Ressourcengruppe Test-FW-RG löschen, wenn Sie sie nicht mehr benötigen. Dadurch werden alle firewallbezogenen Ressourcen gelöscht:
az group delete \
--name Test-FW-RG