Azure Firewall –Private SNAT-IP-Adressbereiche
Azure Firewall bietet eine SNAT-Funktionalität für sämtlichen ausgehenden Datenverkehr an öffentliche IP-Adressen. Azure Firewall bietet standardmäßig kein SNAT mit Netzwerkregeln, wenn die Ziel-IP-Adresse ein privater IP-Adressbereich gemäß IANA RFC 1918 oder ein geteilter Adressraum gemäß IANA RFC 6598 ist. Anwendungsregeln werden immer mit SNAT mithilfe eines transparenten Proxys unabhängig von der IP-Zieladresse weitergeleitet.
Diese Logik funktioniert gut, wenn Sie Datenverkehr direkt an das Internet weiterleiten. Es gibt jedoch Szenarien, in denen Sie das Standardverhalten von SNAT außer Kraft setzen möchten.
- Wenn Sie erzwungenes Tunneln aktiviert haben, wird der Internet-gebundene Datenverkehr mit SNAT an eine der privaten IP-Adressen der Firewall in AzureFirewallSubnet weitergeleitet, wodurch die Quelle vor Ihrer lokalen Firewall verborgen wird.
- Wenn Ihre Organisation registrierte IP-Adressbereiche außerhalb von IANA RFC 1918 oder IANA RFC 6598 für private Netzwerke verwendet, leitet Azure Firewall mit SNAT den Datenverkehr zu einer der privaten IP-Adressen der Firewall in AzureFirewallSubnet weiter. Sie können Azure Firewall jedoch so konfigurieren, dass Ihr öffentlicher IP-Adressbereich nicht per SNAT weitergeleitet wird. Eine einzelne IP-Adresse können Sie beispielsweise so angeben:
192.168.1.10
. Einen Bereich von IP-Adressen können Sie wie folgt angeben:192.168.1.0/24
.
Das Azure Firewall SNAT-Verhalten kann auf folgende Weise geändert werden:
Wenn Sie Azure Firewall so konfigurieren möchten, dass Datenverkehr, der von Netzwerkregeln verarbeitet wird, niemals mit SNAT weitergeleitet wird, unabhängig von der Ziel-IP-Adresse, verwenden Sie 0.0.0.0/0 als Ihren privaten IP-Adressbereich. Mit dieser Konfiguration kann Azure Firewall niemals Datenverkehr direkt an das Internet weiterleiten.
Wenn Sie die Firewall so konfigurieren möchten, dass Datenverkehr, der von Netzwerkregeln verarbeitet wird, immer mit SNAT weitergeleitet wird, unabhängig von der Zieladresse, verwenden Sie 255.255.255.255/32 als Ihren privaten IP-Adressbereich.
Azure Firewall kann so konfiguriert werden, dass registrierte und private Bereiche stündlich automatisch erlernt und die erlernten Routen für SNAT verwendet werden. Für diese Vorschaufunktionalität muss Azure Route Server im selben VNet wie die Azure Firewall bereitgestellt sein.
Wichtig
Die private Adressbereichskonfiguration gilt nur für Netzwerkregeln. Zurzeit erfolgt bei Anwendungsregeln immer eine SNAT.
Wichtig
Wenn Sie Ihre eigenen privaten IP-Adressbereiche festlegen und die standardmäßigen IANA RFC 1918-Adressbereiche beibehalten möchten, stellen Sie sicher, dass Ihre benutzerdefinierte Liste den IANA RFC 1918-Bereich noch enthält.
Sie können die privaten SNAT-IP-Adressen mithilfe der folgenden Methoden konfigurieren. Sie müssen die privaten SNAT-Adressen mithilfe der für Ihre Konfiguration geeigneten Methode konfigurieren. Firewalls, die einer Firewallrichtlinie zugeordnet sind, müssen den Bereich in der Richtlinie angeben und dürfen nicht AdditionalProperties
verwenden.
Methode | Verwenden klassischer Regeln | Verwenden der Firewallrichtlinie |
---|---|---|
Azure-Portal | Unterstützt | Unterstützt |
Azure PowerShell | Konfigurieren von PrivateRange |
Derzeit nicht unterstützt |
Azure CLI | Konfigurieren von --private-ranges |
Derzeit nicht unterstützt |
ARM-Vorlage | Konfigurieren von AdditionalProperties in der Firewalleigenschaft |
Konfigurieren von snat/privateRanges in der Firewallrichtlinie |
Konfigurieren von privaten SNAT-IP-Adressbereichen – Azure PowerShell
Klassische Regeln
Sie können mithilfe von Azure PowerShell private IP-Adressbereiche für die Firewall angeben.
Hinweis
Die Firewalleigenschaft PrivateRange
wird für Firewalls ignoriert, die einer Firewallrichtlinie zugeordnet sind. Sie müssen die Eigenschaft SNAT
in firewallPolicies
verwenden, wie unter Konfigurieren von privaten SNAT-IP-Adressbereichen – ARM-Vorlagebeschrieben.
Neue Firewall
Für eine neue Firewall mit klassischen Regeln lautet das Azure PowerShell-Cmdlet folgendermaßen:
$azFw = @{
Name = '<fw-name>'
ResourceGroupName = '<resourcegroup-name>'
Location = '<location>'
VirtualNetworkName = '<vnet-name>'
PublicIpName = '<public-ip-name>'
PrivateRange = @("IANAPrivateRanges", "192.168.1.0/24", "192.168.1.10")
}
New-AzFirewall @azFw
Hinweis
Zum Bereitstellen von Azure Firewall mit New-AzFirewall
sind ein VNet und eine öffentliche IP-Adresse erforderlich. Einen vollständigen Bereitstellungsleitfaden finden Sie unter Bereitstellen und Konfigurieren von Azure Firewall mithilfe von Azure PowerShell.
Hinweis
„IANAPrivateRanges“ wird auf die aktuellen Standardeinstellungen von Azure Firewall erweitert, während die anderen Bereiche hinzugefügt werden. Damit der IANAPrivateRanges-Standard in Ihrer privaten Bereichsspezifikation beibehalten wird, muss er in Ihrer PrivateRange
-Spezifikation verbleiben, wie in den folgenden Beispielen gezeigt wird.
Weitere Informationen finden Sie unter New-AzFirewall.
Vorhandene Firewall
Zum Konfigurieren einer vorhandenen Firewall mit klassischen Regeln verwenden Sie die folgenden Azure PowerShell-Cmdlets:
$azfw = Get-AzFirewall -Name '<fw-name>' -ResourceGroupName '<resourcegroup-name>'
$azfw.PrivateRange = @("IANAPrivateRanges","192.168.1.0/24", "192.168.1.10")
Set-AzFirewall -AzureFirewall $azfw
Konfigurieren von privaten SNAT-IP-Adressbereichen – Azure-Befehlszeilenschnittstelle
Klassische Regeln
Sie können mithilfe der Azure CLI private IP-Adressbereiche für die Firewall mit klassischen Regeln angeben.
Neue Firewall
Für eine neue Firewall mit klassischen Regeln lautet der Azure CLI-Befehl folgendermaßen:
az network firewall create \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges
Hinweis
Zum Bereitstellen von Azure Firewall mithilfe des Befehls az network firewall create
der Azure-Befehlszeilenschnittstelle sind zusätzliche Konfigurationsschritte erforderlich, um öffentliche IP-Adressen und IP-Konfigurationen zu erstellen. Einen vollständigen Bereitstellungsleitfaden finden Sie unter Bereitstellen und Konfigurieren von Azure Firewall mit der Azure-Befehlszeilenschnittstelle.
Hinweis
„IANAPrivateRanges“ wird auf die aktuellen Standardeinstellungen von Azure Firewall erweitert, während die anderen Bereiche hinzugefügt werden. Damit der IANAPrivateRanges-Standard in Ihrer privaten Bereichsspezifikation beibehalten wird, muss er in Ihrer private-ranges
-Spezifikation verbleiben, wie in den folgenden Beispielen gezeigt wird.
Vorhandene Firewall
Der Azure CLI-Befehl zum Konfigurieren einer vorhandenen Firewall mit klassischen Regeln lautet folgendermaßen:
az network firewall update \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges
Konfigurieren von privaten SNAT-IP-Adressbereichen – ARM-Vorlage
Klassische Regeln
Zum Konfigurieren von SNAT während der Bereitstellung mit einer ARM-Vorlage können Sie der additionalProperties
-Eigenschaft Folgendes hinzufügen:
"additionalProperties": {
"Network.SNAT.PrivateRanges": "IANAPrivateRanges , IPRange1, IPRange2"
},
Firewallrichtlinie
Azure Firewalls, die einer Firewallrichtlinie zugeordnet sind, unterstützen private SNAT-Bereiche seit API-Version 2020-11-01. Derzeit können Sie eine Vorlage verwenden, um den privaten SNAT-Bereich in der Firewallrichtlinie zu aktualisieren. Im folgenden Beispiel wird die Firewall so konfiguriert, dass SNAT-Netzwerkdatenverkehr immer zugelassen wird:
{
"type": "Microsoft.Network/firewallPolicies",
"apiVersion": "2020-11-01",
"name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
"location": "eastus",
"properties": {
"sku": {
"tier": "Standard"
},
"snat": {
"privateRanges": "[255.255.255.255/32]"
}
}
Konfigurieren von privaten SNAT-IP-Adressbereichen – Azure-Portal
Klassische Regeln
Sie können mithilfe des Azure-Portals private IP-Adressbereiche für die Firewall angeben.
Wählen Sie Ihre Ressourcengruppe und dann Ihre Firewall aus.
Wählen Sie auf der Seite Übersicht die Option Private IP-Bereiche aus und dann den Standardwert IANA RFC 1918.
Die Seite Präfixe privater IP-Adressen bearbeiten wird geöffnet:
Standardmäßig ist IANAPrivateRanges konfiguriert.
Bearbeiten Sie die privaten IP-Adressbereiche für Ihre Umgebung, und wählen Sie dann Speichern aus.
Firewallrichtlinie
Wählen Sie Ihre Ressourcengruppe und dann Ihre Firewallrichtlinie aus.
Wählen Sie Private IP-Adressbereiche (SNAT) in der Spalte Einstellungen aus.
Wählen Sie unter SNAT durchführen die Bedingungen für die Durchführung von SNAT in Ihrer Umgebung aus, um die SNAT-Konfiguration anzupassen.
Wählen Sie Übernehmen.
Automatisches Erlernen von SNAT-Routen (Vorschau)
Sie können Azure Firewall so konfigurieren, dass alle 30 Minuten sowohl registrierte als auch private Bereiche automatisch erlernt werden. Diese erlernten Adressbereiche werden als netzintern betrachtet, sodass der Datenverkehr zu Zielen in den erlernten Bereichen nicht mit SNAT weitergeleitet wird. SNAT-Bereiche für automatisches Erlernen erfordern eine Bereitstellung von Azure Route Server im selben VNet wie die Azure Firewall. Die Firewall muss dem Azure Route Server zugeordnet und in der Azure Firewall-Richtlinie für das automatische Erlernen von SNAT-Bereichen konfiguriert sein. Sie können derzeit eine ARM-Vorlage, Azure PowerShell oder das Azure-Portal verwenden, um SNAT-Routen für automatisches Erlernen zu konfigurieren.
Hinweis
SNAT-Routen mit automatischem Lernen sind nur bei VNet-Bereitstellungen (virtuelles Hubnetzwerk) verfügbar. Bei VWAN-Bereitstellungen (geschützter virtueller Hub) sind sie nicht verfügbar. Weitere Informationen zu Azure Firewall-Architekturoptionen finden Sie unter Welche Optionen bietet die Azure Firewall Manager-Architektur?.
Konfigurieren mithilfe einer ARM-Vorlage
Sie können den folgenden JSON-Code verwenden, um automatisches Erlernen zu konfigurieren. Azure Firewall muss einem Azure Route Server zugeordnet sein.
"type": "Microsoft.Network/firewallPolicies",
"apiVersion": "2022-11-01",
"name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
"location": "eastus",
"properties": {
"sku": {
"tier": "Standard"
},
"snat": {
"autoLearnPrivateRanges": "Enabled"
}
}
Verwenden Sie den folgenden JSON-Code, um einen Azure Route Server zuzuordnen:
"type": "Microsoft.Network/azureFirewalls",
"apiVersion": "2022-11-01",
"name": "[parameters('azureFirewalls_testFW_name')]",
"location": "eastus",
"properties": {
"sku": {
"name": "AZFW_VNet",
"tier": "Standard"
},
"threatIntelMode": "Alert",
"additionalProperties": {
"Network.RouteServerInfo.RouteServerID": "[parameters'virtualHubs_TestRouteServer_externalid')]"
},
...
}
Konfigurieren mit Azure PowerShell
Erstellen Sie eine neue Firewall mit einer RouteServerId.
# specify RouteServerId Uri $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS" # Create AzureFirewall $azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName ` $rgname -Location $location -RouteServerId $routeServerId # Get firewall and confirm if RouteServerId is included on the response under additional properties (Network.RouteServerInfo.RouteServerID) Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
Aktualisieren einer vorhandenen Firewall mit RouteServerId
# specify RouteServerId Uri $routeServerId="/subscriptions/ your_sub /resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS" # Get firewall $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname # Update the response with RouteServerId and do firewall SET $azFirewall.RouteServerId = $routeServerId Set-AzFirewall -AzureFirewall $azFirewall # Do firewall Get and confirm if routeServerId is updated Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
Erstellen einer neuen Firewallrichtlinie mit bereitgestelltem SNAT-Parameter
# If AutoLearnPrivateRange parameter is provided, auto learn will be enabled, if not it will be disabled $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange # Create AzureFirewallPolicy (with SNAT) $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName ` -ResourceGroupName $rgname -Location $location -Snat $snat # Get AzureFirewallPolicy and verify Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
Aktualisieren einer vorhandenen Firewallrichtlinie mit SNAT
$snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 # Set AzureFirewallPolicy $azureFirewallPolicy.Snat = $snat Set-AzFirewallPolicy -InputObject $azureFirewallPolicy # Do Get and Verify Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
Abrufen von erlernten Firewall-Präfixen
Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
Konfigurieren über das Azure-Portal
Sie können das Portal verwenden, um einen Route Server mit Azure Firewall zu verknüpfen, um SNAT-Routen für automatisches Erlernen (Vorschau) zu konfigurieren.
Führen Sie die folgenden Aufgaben über das Portal aus:
- Fügen Sie Ihrem vorhandenen Firewall-VNet ein Subnetz mit dem Namen RouteServerSubnet hinzu. Die Größe des Subnetzes sollte mindestens /27 betragen.
- Stellen Sie einen Route Server im vorhandenen Firewall-VNet bereit. Informationen zu Azure Route Server finden Sie unter Schnellstart: Erstellen und Konfigurieren einer Route Server-Instanz mithilfe des Azure-Portals.
- Fügen Sie den Route Server auf der Seite Erlernte SNAT-IP-Präfixe (Vorschau) der Firewall hinzu.
- Ändern Sie Ihre Firewallrichtlinie, sodass IP-Präfixe automatisch lernen (Vorschau) im Abschnitt Private IP-Bereiche (SNAT) aktiviert ist.
- Sie können die erlernten Routen auf der Seite Erlernte SNAT-IP-Präfixe (Vorschau) einsehen.
Nächste Schritte
- Erfahren Sie mehr über die Azure Firewall-Tunnelerzwingung.