Udostępnij za pośrednictwem


Usługa SNAT dla zakresów prywatnych adresów IP w usłudze Azure Firewall

Usługa Azure Firewall zapewnia funkcję SNAT dla całego ruchu wychodzącego do publicznych adresów IP. Domyślnie usługa Azure Firewall nie obsługuje protokołu SNAT z regułami sieci, gdy docelowy adres IP znajduje się w prywatnym zakresie adresów IP na przestrzeń adresową IANA RFC 1918 lub udostępnioną przestrzeń adresową na IANA RFC 6598. Reguły aplikacji są zawsze poddawane SNAT przy użyciu przezroczystego serwera proxy, niezależnie od docelowego adresu IP.

To domyślne zachowanie jest odpowiednie podczas kierowania ruchu bezpośrednio do Internetu. Istnieją jednak scenariusze, w których może być konieczne zastąpienie domyślnego zachowania SNAT:

  • Jeśli włączono wymuszone tunelowanie, ruch związany z Internetem jest kierowany do jednego z prywatnych adresów IP zapory w podsieci AzureFirewallSubnet, ukrywając źródło z zapory lokalnej.
  • Jeśli twoja organizacja używa zarejestrowanych zakresów adresów IP poza protokołem IANA RFC 1918 lub IANA RFC 6598 dla sieci prywatnych, usługa Azure Firewall SNATs ruchu do jednego z prywatnych adresów IP zapory w podsieci AzureFirewallSubnet. Możesz skonfigurować usługę Azure Firewall, aby nie stosować SNAT do twojego zakresu publicznych adresów IP. Na przykład określ pojedynczy adres IP jako x.x.x.x lub zakres adresów IP jako x.x.x.x/24.

Zachowanie SNAT usługi Azure Firewall można zmienić w następujący sposób:

  • Aby skonfigurować usługę Azure Firewall tak, aby nigdy nie wykonywała SNAT na ruchu przetwarzanym przez reguły sieciowe niezależnie od docelowego adresu IP, użyj zakresu prywatnych adresów IP 0.0.0.0/0. Dzięki tej konfiguracji usługa Azure Firewall nie może kierować ruchu bezpośrednio do Internetu.
  • Aby skonfigurować zaporę tak, aby reguły sieciowe zawsze stosowały SNAT na ruchu niezależnie od adresu docelowego, użyj zakresu prywatnych adresów IP 255.255.255.255/32.
  • Usługę Azure Firewall można skonfigurować do automatycznej nauki zarejestrowanych i prywatnych zakresów co godzinę oraz używania nauczonych tras dla SNAT. Ta funkcja w wersji zapoznawczej wymaga wdrożenia usługi Azure Route Server w tej samej sieci wirtualnej co usługa Azure Firewall.

Ważne

  • Konfiguracja zakresu adresów prywatnych dotyczy tylko reguł sieci. Reguły aplikacji zawsze stosują SNAT.
  • Jeśli chcesz określić własne zakresy prywatnych adresów IP i zachować domyślne zakresy adresów IANA RFC 1918, upewnij się, że lista niestandardowa nadal zawiera zakres IANA RFC 1918.

Prywatne adresy IP SNAT można skonfigurować przy użyciu następujących metod. Użyj metody odpowiedniej dla konfiguracji. Zapory powiązane z polityką zapory muszą określać zakres w tej polityce i nie używać AdditionalProperties.

Metoda Używanie reguł klasycznych Korzystanie z zasad zapory
Azure Portal Wspierane Wspierane
Azure PowerShell skonfiguruj PrivateRange obecnie nieobsługiwane
Azure CLI skonfiguruj --private-ranges obecnie nieobsługiwane
Szablon ARM Skonfiguruj AdditionalProperties we właściwości zapory skonfigurować snat/privateRanges w polityce zapory

Konfigurowanie zakresów prywatnych adresów IP protokołu SNAT — Azure PowerShell

Reguły klasyczne

Za pomocą programu Azure PowerShell można określić zakresy prywatnych adresów IP dla zapory.

Uwaga

Właściwość zapory PrivateRange jest ignorowana dla zapór skojarzonych z polityką zarządzania zaporą sieciową. Należy użyć właściwości SNAT w firewallPolicies zgodnie z opisem w temacie Konfigurowanie zakresów prywatnych adresów IP SNAT — szablon ARM.

Nowa zapora

W przypadku nowej zapory korzystającej z reguł klasycznych użyj następującego polecenia cmdlet programu Azure PowerShell:

$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

Uwaga

  • Wdrażanie usługi Azure Firewall przy użyciu programu New-AzFirewall wymaga istniejącej sieci wirtualnej i publicznego adresu IP. Aby uzyskać pełny przewodnik wdrażania, zobacz Wdrażanie i konfigurowanie usługi Azure Firewall przy użyciu programu Azure PowerShell .
  • IANAPrivateRanges jest dostosowywana do bieżących wartości domyślnych w usłudze Azure Firewall, a inne zakresy są do niej dodawane. Aby zachować domyślny element IANAPrivateRanges w specyfikacji zakresu prywatnego, musi on pozostać w specyfikacji PrivateRange, jak pokazano w przykładzie.

Aby uzyskać więcej informacji, zobacz New-AzFirewall.

Istniejąca zapora

Aby skonfigurować istniejącą zaporę przy użyciu reguł klasycznych, użyj następujących poleceń cmdlet programu Azure PowerShell:

$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

Konfigurowanie zakresów prywatnych adresów IP protokołu SNAT — interfejs wiersza polecenia platformy Azure

Reguły klasyczne

Za pomocą interfejsu wiersza polecenia platformy Azure można określić zakresy prywatnych adresów IP dla zapory przy użyciu reguł klasycznych.

Nowa zapora

W przypadku nowej zapory używającej reguł klasycznych użyj następującego polecenia Azure CLI:

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

Uwaga

  • Wdrożenie usługi Azure Firewall przy użyciu polecenia interfejsu wiersza polecenia az network firewall create platformy Azure wymaga wykonania dodatkowych kroków konfiguracji w celu utworzenia publicznych adresów IP i konfiguracji adresów IP. Aby uzyskać pełny przewodnik wdrażania, zobacz Wdrażanie i konfigurowanie usługi Azure Firewall przy użyciu interfejsu wiersza polecenia platformy Azure.
  • IANAPrivateRanges jest dostosowywana do bieżących wartości domyślnych w usłudze Azure Firewall, a inne zakresy są do niej dodawane. Aby zachować domyślny element IANAPrivateRanges w specyfikacji zakresu prywatnego, musi on pozostać w specyfikacji private-ranges, jak pokazano w przykładzie.

Istniejąca zapora

Aby skonfigurować istniejącą zaporę przy użyciu reguł klasycznych, użyj następującego polecenia interfejsu wiersza polecenia platformy Azure:

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

Konfiguracja zakresów prywatnych adresów IP dla SNAT — szablon ARM

Reguły klasyczne

Aby skonfigurować protokół SNAT podczas wdrażania szablonu usługi ARM, dodaj następujące elementy do additionalProperties właściwości :

"additionalProperties": {
   "Network.SNAT.PrivateRanges": "IANAPrivateRanges, IPRange1, IPRange2"
},

Zasady zapory

Usługa Azure Firewalls powiązana z polityką zapory obsługuje zakresy prywatne SNAT od wersji interfejsu API 2020-11-01. Możesz użyć szablonu, aby zaktualizować prywatny zakres SNAT w polityce zapory ogniowej. Poniższy przykład konfiguruje zaporę tak, aby zawsze stosować SNAT dla ruchu sieciowego.

{
   "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]"
      }
   }
}

Konfigurowanie zakresów prywatnych adresów IP protokołu SNAT — Azure Portal

Reguły klasyczne

Za pomocą witryny Azure Portal można określić zakresy prywatnych adresów IP dla zapory.

  1. Wybierz grupę zasobów, a następnie wybierz zaporę.

  2. Na stronie Przegląd, w sekcji prywatne zakresy adresów IP, wybierz domyślną wartość IANA RFC 1918.

    Strona Edytuj prefiksy prywatnych adresów IP zostanie otwarta:

  3. Domyślnie skonfigurowano IANAPrivateRanges .

  4. Edytuj zakresy prywatnych adresów IP dla środowiska, a następnie wybierz pozycję Zapisz.

Zasady zapory

  1. Wybierz grupę zasobów, a następnie wybierz politykę zapory.
  2. Wybierz pozycję Zakresy prywatnych adresów IP (SNAT) w kolumnie Ustawienia .
  3. Wybierz warunki do wykonania SNAT dla środowiska w obszarze Wykonaj SNAT, aby dostosować konfigurację SNAT .
  4. Wybierz Zastosuj.

Automatyczne uczenie tras SNAT (wersja zapoznawcza)

Usługę Azure Firewall można skonfigurować tak, aby automatycznie uczyć się zarówno zarejestrowanych, jak i prywatnych zakresów co 30 minut. Te nauczone zakresy adresów są uważane za wewnętrzne w sieci, więc ruch do miejsc w tych zakresach nie jest objęty SNAT. Zakresy SNAT automatycznego uczenia się wymagają wdrożenia usługi Azure Route Server w tej samej sieci wirtualnej co usługa Azure Firewall. Zapora musi być skojarzona z serwerem usługi Azure Route Server i skonfigurowana do automatycznego uczenia zakresów SNAT w zasadach usługi Azure Firewall. Obecnie możesz użyć szablonu ARM, programu Azure PowerShell lub portalu Azure, aby skonfigurować autolearn tras SNAT.

Uwaga

Funkcja automatycznego uczenia się tras SNAT jest dostępna tylko we wdrożeniach sieci wirtualnej (sieć wirtualna koncentratora). Nie jest ona dostępna we wdrożeniach VWAN (zabezpieczony koncentrator wirtualny). Aby uzyskać więcej informacji na temat opcji architektury usługi Azure Firewall, zobacz Co to są opcje architektury usługi Azure Firewall Manager?

Konfigurować przy użyciu szablonu ARM

Aby skonfigurować autonaukę, użyj następującego kodu JSON. Azure Firewall musi być skojarzony z Azure Route Server.

{
   "type": "Microsoft.Network/firewallPolicies",
   "apiVersion": "2022-11-01",
   "name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "tier": "Standard"
      },
      "snat": {
         "autoLearnPrivateRanges": "Enabled"
      }
   }
}

Użyj następującego JSON, aby skojarzyć Azure Route Server.

{
   "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')]"
      }
   }
}

Konfigurowanie przy użyciu programu Azure PowerShell

  • Utwórz nową zaporę, korzystając z identyfikatora 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 
    
  • Aktualizowanie istniejącej zapory za pomocą identyfikatora 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
    
  • Utwórz nowe zasady zapory z podanym parametrem SNAT

    # 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 
    
  • Aktualizacja istniejącej polityki zapory przy użyciu 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 
    
  • Uzyskiwanie prefiksów poznanych przez zaporę

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname 
    

Konfigurowanie przy użyciu witryny Azure Portal

Aby skonfigurować autolearn tras SNAT (wersja próbna) za pomocą Azure Portal, wykonaj następujące kroki:

  1. Dodaj podsieć:

    • Dodaj podsieć o nazwie RouteServerSubnet do swojej istniejącej sieci wirtualnej zapory.
    • Upewnij się, że rozmiar podsieci wynosi co najmniej /27.
  2. Wdróż serwer tras:

  3. Połącz z serwerem tras:

    • Na stronie Poznane prefiksy adresów IP SNAT zapory sieciowej (wersja próbna) dodaj serwer routingu.
  4. Modyfikowanie zasad zapory:

    • Włącz Automatyczne uczenie prefiksów IP (wersja zapoznawcza) w części Zakresy prywatnych adresów IP (SNAT) zasad zapory.
  5. Wyświetl poznane trasy:

    • Sprawdź poznane trasy na stronie Poznane prefiksy adresów IP protokołu SNAT (wersja zapoznawcza).

Następne kroki