Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 używa protokołu SNAT z regułami sieciowymi, gdy docelowy adres IP znajduje się w prywatnym zakresie adresów IP dla protokołu IANA RFC 1918 lub współużytkowanej przestrzeni adresowej na IANA RFC 6598. Reguły aplikacji zawsze używają protokołu SNAT za pośrednictwem 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łączysz wymuszone tunelowanie, usługa Azure Firewall wykonuje SNAT dla ruchu internetowego przechodzącego przez zaporę, zmieniając jego adres wyjściowy na jeden z prywatnych adresów IP w podsieci AzureFirewallSubnet, co ukrywa źródło przed zaporą w lokalnej infrastrukturze.
- 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.xlub zakres adresów IP jakox.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.
- Aby skonfigurować Azure Firewall tak, by automatycznie uczył się rejestrowanych i prywatnych zakresów adresów IP w regularnych odstępach czasu, włącz automatyczne uczenie się tras SNAT. Nauczone zakresy adresów są traktowane jako wewnętrzne, a ruch przeznaczony do tych zakresów nie jest zaznaczany SNAT-em.
Ważne
- Konfiguracja zakresu adresów prywatnych dotyczy tylko reguł sieci. Reguły aplikacji zawsze używają protokołu 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.
Poniższa tabela przedstawia obsługiwane metody konfiguracji. Zapory powiązane z polityką zapory muszą określać zakres w tej polityce i nie używać AdditionalProperties.
| Metoda | Reguły klasyczne | Zasady zapory |
|---|---|---|
| Azure PowerShell | Supported | Niewspierane |
| Azure CLI | Supported | Niewspierane |
| szablon usługi ARM | Supported | Supported |
| Azure Portal | Supported | Supported |
Konfiguruj prywatne zakresy adresów IP w SNAT
Wybierz metodę konfiguracji. Azure PowerShell i Azure CLI obsługują tylko klasyczne reguły. Aby skonfigurować zakresy SNAT za pomocą polityki zapory, użyj szablonu ARM lub portalu Azure.
Użyj programu Azure PowerShell, aby 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ą. Musisz użyć właściwości SNAT w firewallPolicies, zgodnie z opisem na karcie Szablon ARM.
Nowa zapora
Aby utworzyć nową zaporę korzystającą z klasycznych reguł, użyj polecenia New-AzFirewall, aby ją utworzyć:
$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-AzFirewallwymaga 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. -
IANAPrivateRangesRozwija się do bieżących wartości domyślnych w usłudze Azure Firewall, a pozostałe zakresy są do niego dodawane. Aby zachować domyślny elementIANAPrivateRangesw specyfikacji zakresu prywatnego, musi on pozostać w specyfikacjiPrivateRange, jak pokazano w przykładzie.
Istniejąca zapora
Aby skonfigurować istniejącą zaporę używającą klasycznych reguł, pobierz zaporę za pomocą Get-AzFirewall i zaktualizuj ją za pomocą Set-AzFirewall:
$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
Automatyczne uczenie się tras SNAT
Możesz skonfigurować Azure Firewall tak, aby automatycznie uczył się zarówno rejestrowanych, jak i prywatnych zakresów co 30 minut. Te poznane zakresy adresów są wewnętrzne dla sieci, więc ruch do miejsc docelowych w poznanych zakresach nie jest poddawany SNAT. Zarówno wdrożenia sieci wirtualnej (VNet), jak i wdrożenia zabezpieczonych wirtualnych hub (vHub) obsługują automatyczne uczenie się tras SNAT.
Uwaga
- Auto-learn SNAT wymaga, aby Azure Firewall był powiązany z Azure Route Server.
- W przypadku wdrożeń VNet musisz wdrożyć Azure Route Server w tej samej sieci wirtualnej co Azure Firewall.
- Dla wdrożeń vHub Azure Route Server jest już domyślnie wdrożony i powiązany.
- Dla obu modeli wdrożenia musisz włączyć automatyczne uczenie się SNAT w polityce Azure Firewall po zakończeniu powiązania.
- Aby uzyskać więcej informacji na temat opcji architektury usługi Azure Firewall, zobacz Co to są opcje architektury usługi Azure Firewall Manager?
Zapora VNet
W przypadku wdrożeń VNet musisz wdrożyć i skojarzyć Azure Route Server przed włączeniem automatycznego uczenia się tras SNAT.
Wymagania wstępne:
- Podsieć o nazwie RouteServerSubnet w wirtualnej sieci z zaporą o rozmiarze co najmniej /27.
- Azure Route Server wdrożony w tej samej sieci wirtualnej co zapora. Kroki wdrożenia znajdziesz w Quickstart: Create and configure Route Server using the Azure portal.
W poniższych przykładach zastąp nazwy zmiennych ($azureFirewallName, $rgname, $location, itd.) własnymi wartościami.
Stwórz nową zaporę z identyfikatorem Route Server, używając New-AzFirewall.
# Specify the Route Server resource ID $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS" # Create the firewall $azureFirewall = New-AzFirewall -Name $azureFirewallName ` -ResourceGroupName $rgname ` -Location $location ` -RouteServerId $routeServerId # Verify the Route Server ID is set Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgnamePołącz Route Server z istniejącą zaporą, używając Get-AzFirewall i Set-AzFirewall.
# Specify the Route Server resource ID $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS" # Get the firewall $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname # Associate the Route Server and update the firewall $azFirewall.RouteServerId = $routeServerId Set-AzFirewall -AzureFirewall $azFirewall # Verify the Route Server ID is updated Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgnameUtwórz nowe zasady zapory z włączonym automatycznym uczeniem za pomocą New-AzFirewallPolicySnat i New-AzFirewallPolicy.
# Include AutoLearnPrivateRange to enable auto-learn $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange # Create the firewall policy with SNAT configuration $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName ` -ResourceGroupName $rgname ` -Location $location ` -Snat $snat # Verify the firewall policy Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgnameZaktualizuj istniejącą politykę zapory za pomocą SNAT, używając New-AzFirewallPolicySnat i Set-AzFirewallPolicy.
$snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 -AutoLearnPrivateRange # Update the firewall policy $azureFirewallPolicy.Snat = $snat Set-AzFirewallPolicy -InputObject $azureFirewallPolicy # Verify the update Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgnameZweryfikowaj wyuczone prefiksy, używając Get-AzFirewallLearnedIpPrefiks.
Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
Zapora vHub
Dla wdrożeń vHub Azure Route Server jest już domyślnie wdrożony i powiązany. Wystarczy włączyć automatyczne uczenie w polityce zapory.
W poniższych przykładach zastąp nazwy zmiennych ($azureFirewallName, $rgname, $location, itd.) własnymi wartościami.
Utwórz nowe zasady zapory z włączonym automatycznym uczeniem za pomocą New-AzFirewallPolicySnat i New-AzFirewallPolicy.
# Include AutoLearnPrivateRange to enable auto-learn $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange # Create the firewall policy with SNAT configuration $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName ` -ResourceGroupName $rgname ` -Location $location ` -Snat $snat # Verify the firewall policy Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgnameZaktualizuj istniejącą politykę zapory za pomocą SNAT, używając New-AzFirewallPolicySnat i Set-AzFirewallPolicy.
$snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 -AutoLearnPrivateRange # Update the firewall policy $azureFirewallPolicy.Snat = $snat Set-AzFirewallPolicy -InputObject $azureFirewallPolicy # Verify the update Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgnamePobierz wirtualny hub korzystając z Get-AzVirtualHub , a politykę zapory za pomocą Get-AzFirewallPolicy.
$Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgnameStwórz publiczną konfigurację IP, używając New-AzFirewallHubPublicIpAddress oraz New-AzFirewallHubIpAddress.
$azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1 $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPsStwórz zaporę vHub z polityką auto-learn, używając New-AzFirewall.
$azureFirewall = New-AzFirewall -Name $azureFirewallName ` -ResourceGroupName $rgname ` -Location $location ` -VirtualHubId $Hub.Id ` -FirewallPolicyId $azureFirewallPolicy.Id ` -SkuName "AZFW_Hub" ` -HubIPAddress $azureFirewallHubIPs ` -SkuTier $FirewallTierZweryfikowaj wyuczone prefiksy, używając Get-AzFirewallLearnedIpPrefiks.
Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname