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.

  1. Wählen Sie Ihre Ressourcengruppe und dann Ihre Firewall aus.

  2. 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:

    Screenshot of edit private IP prefixes.

  3. Standardmäßig ist IANAPrivateRanges konfiguriert.

  4. Bearbeiten Sie die privaten IP-Adressbereiche für Ihre Umgebung, und wählen Sie dann Speichern aus.

Firewallrichtlinie

  1. Wählen Sie Ihre Ressourcengruppe und dann Ihre Firewallrichtlinie aus.

  2. Wählen Sie Private IP-Adressbereiche (SNAT) in der Spalte Einstellungen aus.

  3. 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. Screenshot of Private IP ranges (SNAT).

  4. 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 (am Hub des virtuellen Netzwerks) 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. Screenshot showing firewall add a route server.
  • Ändern Sie Ihre Firewallrichtlinie, sodass IP-Präfixe automatisch lernen (Vorschau) im Abschnitt Private IP-Bereiche (SNAT) aktiviert ist. Screenshot showing firewall policy Private IP ranges (SNAT) settings.
  • Sie können die erlernten Routen auf der Seite Erlernte SNAT-IP-Präfixe (Vorschau) einsehen.

Nächste Schritte