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.
Wybierz grupę zasobów, a następnie wybierz zaporę.
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:
Domyślnie skonfigurowano IANAPrivateRanges .
Edytuj zakresy prywatnych adresów IP dla środowiska, a następnie wybierz pozycję Zapisz.
Zasady zapory
Wybierz grupę zasobów, a następnie wybierz zasady zapory.
Wybierz pozycję Zakresy prywatnych adresów IP (SNAT) w kolumnie Ustawienia .
Wybierz warunki do wykonania SNAT dla środowiska w obszarze Wykonaj SNAT, aby dostosować konfigurację SNAT .
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).
- Zmodyfikuj zasady zapory, aby włączyć prefiksy adresów IP automatycznej nauki (wersja zapoznawcza) w sekcji Zakresy prywatnych adresów IP (SNAT).
- Na stronie Wyuczone prefiksy adresów IP protokołu SNAT (wersja zapoznawcza) można wyświetlić poznane trasy.
Następne kroki
- Dowiedz się więcej o wymuszonym tunelowaniu usługi Azure Firewall.