Freigeben über


Azure Firewall –Private SNAT-IP-Adressbereiche

Azure Firewall bietet eine SNAT-Funktionalität für sämtlichen ausgehenden Datenverkehr an öffentliche IP-Adressen. Standardmäßig verwendet Azure Firewall SNAT nicht mit Netzwerkregeln, wenn sich die Ziel-IP-Adresse in einem privaten IP-Adressbereich pro IANA RFC 1918 oder freigegebenem Adressraum pro IANA RFC 6598 befindet. Anwendungsregeln verwenden SNAT immer über einen transparenten Proxy , unabhängig von der Ziel-IP-Adresse.

Dieses Standardverhalten eignet sich, wenn der Datenverkehr direkt an das Internet weitergeleitet wird. Es gibt jedoch Szenarien, in denen Sie möglicherweise das Standardmäßige SNAT-Verhalten außer Kraft setzen müssen:

  • Wenn Sie die erzwungene Tunnelung aktivieren, leitet die Azure Firewall internetgebundenen Datenverkehr zu einer der privaten IP-Adressen der Firewall im AzureFirewallSubnet um, um die Quelle vor Ihrer lokalen Firewall zu verbergen.
  • Wenn Ihre Organisation registrierte IP-Adressbereiche außerhalb von IANA RFC 1918 oder IANA RFC 6598 für private Netzwerke verwendet, führt Azure Firewall SNAT für den Datenverkehr zu einer der privaten IP-Adressen der Firewall im AzureFirewallSubnet durch. Sie können Azure Firewall so konfigurieren, dass Ihr öffentlicher IP-Adressbereich nicht per SNAT weitergeleitet wird. Geben Sie z. B. eine einzelne IP-Adresse als x.x.x.x oder einen Bereich von IP-Adressen als x.x.x.x/24.

Sie können das SNAT-Verhalten von Azure Firewall auf folgende Weise ändern:

  • 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 den Datenverkehr nicht direkt an das Internet weiterleiten.
  • Verwenden Sie 255.255.255.255.255/255/32 als privaten IP-Adressbereich, um die Firewall so zu konfigurieren, dass der von Netzwerkregeln verarbeitete SNAT-Datenverkehr unabhängig von der Zieladresse immer verarbeitet wird.
  • Sie können die Azure Firewall so konfigurieren, dass sie jede Stunde automatisch registrierte und private Bereiche lernt und die gelernten Routen für SNAT verwendet. Für diese Vorschaufunktion muss Azure Route Server im selben virtuellen Netzwerk wie die Azure-Firewall bereitgestellt werden.

Wichtig

  • Die private Adressbereichskonfiguration gilt nur für Netzwerkregeln. Anwendungsregeln verwenden immer SNAT.
  • 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. Verwenden Sie die für Ihre Konfiguration geeignete Methode. 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 PrivateRange Derzeit nicht unterstützt
Azure-Befehlszeilenschnittstelle Konfigurieren --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

Verwenden Sie Azure PowerShell, um private IP-Adressbereiche für die Firewall anzugeben.

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

Verwenden Sie für eine neue Firewall, die klassische Regeln verwendet, das folgende Azure PowerShell-Cmdlet verwendet:

$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

  • Um Azure Firewall mithilfe von New-AzFirewall bereitzustellen, sind ein vorhandenes virtuelles Netzwerk und eine öffentliche IP-Adresse erforderlich. Eine vollständige Bereitstellungsanleitung finden Sie unter Bereitstellen und Konfigurieren der Azure Firewall mit Azure PowerShell.
  • IANAPrivateRanges wird auf die aktuellen Standardwerte in der Azure-Firewall erweitert, während die anderen Bereiche hinzugefügt werden. Damit die IANAPrivateRanges Standardeinstellung in Ihrer Spezifikation für private Bereiche beibehalten wird, muss sie in Ihrer PrivateRange Spezifikation verbleiben, wie im Beispiel gezeigt.

Weitere Informationen finden Sie unter New-AzFirewall.

Vorhandene Firewall

Verwenden Sie die folgenden Azure PowerShell-Cmdlets, um eine vorhandene Firewall zu konfigurieren, die klassische Regeln verwendet:

$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

Verwenden Sie Azure CLI, um private IP-Adressbereiche für die Firewall mithilfe klassischer Regeln anzugeben.

Neue Firewall

Verwenden Sie für eine neue Firewall, die klassische Regeln verwendet, den folgenden Azure CLI-Befehl:

az network firewall create \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

Hinweis

  • Für die Bereitstellung von Azure Firewall mithilfe des Azure CLI-Befehls az network firewall create sind zusätzliche Konfigurationsschritte erforderlich, um öffentliche IP-Adressen und IP-Konfigurationen zu erstellen. Eine vollständige Bereitstellungsanleitung finden Sie unter Bereitstellen und Konfigurieren der Azure Firewall mit Azure CLI.
  • Azure Firewall erweitert IANAPrivateRanges um die aktuellen Standardwerte und fügt die anderen Bereiche hinzu. Wenn Sie die IANAPrivateRanges Standardeinstellung in Ihrer spezifikation für private Bereiche beibehalten möchten, fügen Sie sie in Ihre private-ranges Spezifikation ein, wie im Beispiel gezeigt.

Vorhandene Firewall

Verwenden Sie den folgenden Azure CLI-Befehl, um eine vorhandene Firewall zu konfigurieren, die klassische Regeln verwendet:

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

Um SNAT während der ARM-Vorlagenbereitstellung zu konfigurieren, fügen Sie der additionalProperties Eigenschaft den folgenden Code hinzu:

"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. Sie können eine Vorlage verwenden, um den privaten SNAT-Bereich in der Firewallrichtlinie zu aktualisieren. Im folgenden Beispiel wird die Firewall so konfiguriert, dass der Netzwerkdatenverkehr immer über SNAT geleitet 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

Verwenden Sie das Azure-Portal, um private IP-Adressbereiche für die Firewall anzugeben.

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

  2. Wählen Sie im Bereich "Übersicht " private IP-Bereiche den Standardwert IANA RFC 1918 aus.

    Die Seite Präfixe privater IP-Adressen bearbeiten wird geöffnet:

  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.
  4. Wählen Sie Anwenden aus.

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 gelernten Adressbereiche sind intern im Netzwerk, daher ist der Datenverkehr zu Zielen in den gelernten Bereichen nicht SNATed. Für automatisches Lernen von SNAT-Bereichen muss Azure Route Server im selben virtuellen Netzwerk wie die Azure-Firewall bereitgestellt werden. Die Firewall muss dem Azure Route-Server zugeordnet und so konfiguriert werden, dass sie SNAT-Bereiche in der Azure-Firewall-Richtlinie automatisch erlernt. Sie können derzeit eine ARM-Vorlage, Azure PowerShell oder das Azure-Portal verwenden, um autolearn SNAT-Routen zu konfigurieren.

Hinweis

SNAT-Routen für automatisches Lernen sind nur für virtuelle Netzwerkbereitstellungen (hub virtual network) 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 autolearn 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 Sie eine neue Firewallrichtlinie mit dem bereitgestellten 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 Firewallpräfixen

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Konfigurieren über das Azure-Portal

Führen Sie die folgenden Schritte aus, um autolearn SNAT-Routen (Vorschau) mithilfe des Azure-Portals zu konfigurieren:

  1. Subnetz hinzufügen:

    • Fügen Sie ihrem vorhandenen virtuellen Firewallnetzwerk ein Subnetz namens RouteServerSubnet hinzu.
    • Stellen Sie sicher, dass die Subnetzgröße mindestens /27 ist.
  2. Bereitstellen eines Routenservers:

  3. Zuordnen des Routenservers:

    • Fügen Sie auf der Seite mit den gelernten SNAT-IP-Präfixen (Vorschau) der Firewall den Routenserver hinzu.
  4. Firewallrichtlinie ändern:

    • Aktivieren Sie autolernende IP-Präfixe (Vorschau) im Abschnitt "Private IP Ranges (SNAT)" Ihrer Firewallrichtlinie.
  5. Anzeigen gelernter Routen:

    • Überprüfen Sie die gelernten Routen im Bereich " Gelernte SNAT-IP-Präfixe (Vorschau) ".

Nächste Schritte