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 SNATed przy użyciu przezroczystego serwera proxy niezależnie od docelowego adresu IP.

Ta logika działa dobrze podczas kierowania ruchu bezpośrednio do Internetu. Istnieją jednak scenariusze, w których można zastąpić domyślne zachowanie 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żna jednak skonfigurować usługę Azure Firewall tak, aby nie sNAT twój zakres publicznych adresów IP. Aby na przykład określić pojedynczy adres IP, możesz określić go w następujący sposób: 192.168.1.10. Aby określić zakres adresów IP, możesz określić go w następujący sposób: 192.168.1.0/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 ruch SNAT przetwarzany przez reguły sieciowe niezależnie od docelowego adresu IP, użyj adresu 0.0.0.0/0 jako zakresu prywatnych adresów IP. Dzięki tej konfiguracji usługa Azure Firewall nigdy nie może kierować ruchu bezpośrednio do Internetu.

  • Aby skonfigurować zaporę tak, aby zawsze usługa SNAT przetwarzała przez reguły sieci niezależnie od adresu docelowego, użyj adresu 255.255.255.255/32 jako zakresu prywatnych adresów IP.

  • Usługę Azure Firewall można skonfigurować do automatycznego rejestrowania i prywatnych zakresów co godzinę i używać poznanych tras dla protokołu SNAT. Ta funkcja w wersji zapoznawczej musi mieć usługę Azure Route Server wdrożona w tej samej sieci wirtualnej co usługa Azure Firewall.

Ważne

Konfiguracja zakresu adresów prywatnych dotyczy tylko reguł sieci. Obecnie reguły aplikacji zawsze są wykonywane przy użyciu protokołu SNAT.

Ważne

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. Należy skonfigurować prywatne adresy SNAT przy użyciu metody odpowiedniej dla konfiguracji. Zapory skojarzone z zasadami zapory muszą określać zakres w zasadach i nie używać polecenia AdditionalProperties.

Method Używanie reguł klasycznych Korzystanie z zasad zapory
Azure Portal Obsługiwane Obsługiwane
Azure PowerShell konfigurować PrivateRange obecnie nieobsługiwane
Interfejs wiersza polecenia platformy Azure konfigurować --private-ranges obecnie nieobsługiwane
Szablon ARM konfigurowanie AdditionalProperties we właściwości zapory konfigurowanie snat/privateRanges w zasadach 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 zasadami zapory. Należy użyć właściwości w programie zgodnie z SNAT opisem w firewallPolicies temacie Konfigurowanie zakresów prywatnych adresów IP SNAT — szablon usługi ARM.

Nowa zapora

W przypadku nowej zapory korzystającej z reguł klasycznych polecenie cmdlet programu Azure PowerShell to:

$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 .

Uwaga

IANAPrivateRanges jest rozszerzany do bieżących wartości domyślnych w usłudze Azure Firewall, podczas gdy inne zakresy są do niego dodawane. Aby zachować domyślną wartość IANAPrivateRanges w specyfikacji zakresu prywatnego, musi pozostać w PrivateRange specyfikacji, jak pokazano w poniższych przykładach.

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 korzystającej z reguł klasycznych polecenie interfejsu wiersza polecenia platformy Azure to:

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.

Uwaga

IANAPrivateRanges jest rozszerzany do bieżących wartości domyślnych w usłudze Azure Firewall, podczas gdy inne zakresy są do niego dodawane. Aby zachować domyślną wartość IANAPrivateRanges w specyfikacji zakresu prywatnego, musi pozostać w private-ranges specyfikacji, jak pokazano w poniższych przykładach.

Istniejąca zapora

Aby skonfigurować istniejącą zaporę przy użyciu reguł klasycznych, polecenie interfejsu wiersza polecenia platformy Azure to:

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

Konfigurowanie zakresów prywatnych adresów IP protokołu SNAT — szablon usługi ARM

Reguły klasyczne

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

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

Zasady zapory

Usługa Azure Firewalls skojarzona z zasadami zapory obsługuje zakresy prywatne SNAT od wersji interfejsu API 2020-11-01. Obecnie można użyć szablonu do zaktualizowania zakresu prywatnego SNAT w zasadach zapory. Poniższy przykład konfiguruje zaporę tak, aby zawsze ruch sieciowy SNAT:

{ 

            "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 zakresy prywatnych adresów IP wybierz wartość domyślną IANA RFC 1918.

    Zostanie otwarta strona Edytowanie prefiksów prywatnych adresów IP:

    Zrzut ekranu przedstawiający edytowanie prefiksów prywatnych adresów IP.

  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 zasady 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 . Zrzut ekranu przedstawiający zakresy prywatnych adresów IP (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 poznane zakresy adresów są uważane za wewnętrzne w sieci, więc ruch do miejsc docelowych w poznanych zakresach nie jest SNATed. 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 usługi ARM, programu Azure PowerShell lub witryny Azure Portal, aby skonfigurować trasy SNAT do automatycznego uczenia się.

Uwaga

Trasy SNAT do automatycznego uczenia się są dostępne tylko we wdrożeniach sieci wirtualnej (sieci wirtualnej 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?

Konfigurowanie przy użyciu szablonu usługi ARM

Do skonfigurowania automatycznego uczenia można użyć następującego kodu JSON. Usługa Azure Firewall musi być skojarzona z serwerem usługi 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 kodu JSON, aby skojarzyć serwer usługi 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ę za pomocą 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
    
    
  • Tworzenie nowych zasad zapory przy użyciu podanego parametru 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 
    
    
  • Aktualizowanie istniejących zasad zapory przy użyciu protokołu 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

Za pomocą portalu można skojarzyć serwer route server z usługą Azure Firewall w celu skonfigurowania tras SNAT automatycznego uczenia się (wersja zapoznawcza).

Użyj portalu, aby wykonać następujące zadania:

  • Dodaj podsieć o nazwie RouteServerSubnet do istniejącej sieci wirtualnej zapory. Rozmiar podsieci powinien wynosić co najmniej /27.
  • Wdróż serwer route server w istniejącej sieci wirtualnej zapory. Aby uzyskać informacje o usłudze Azure Route Server, zobacz Szybki start: tworzenie i konfigurowanie serwera route server przy użyciu witryny Azure Portal.
  • Dodaj serwer tras na stronie Poznane prefiksy adresów IP protokołu SNAT (wersja zapoznawcza). Zrzut ekranu przedstawiający dodawanie serwera tras przez zaporę.
  • Zmodyfikuj zasady zapory, aby włączyć prefiksy adresów IP automatycznej nauki (wersja zapoznawcza) w sekcji Zakresy prywatnych adresów IP (SNAT). Zrzut ekranu przedstawiający ustawienia prywatnych zakresów adresów IP (SNAT) zasad zapory.
  • Na stronie Wyuczone prefiksy adresów IP protokołu SNAT (wersja zapoznawcza) można wyświetlić poznane trasy.

Następne kroki