Rozsahy privátních IP adres pro SNAT služby Azure Firewall

Azure Firewall poskytuje funkci SNAT pro veškerý odchozí provoz do veřejných IP adres. Azure Firewall ve výchozím nastavení nepoužívá SNAT se síťovými pravidly, pokud je cílová IP adresa v privátním rozsahu IP adres na IANA RFC 1918 nebo sdílený adresní prostor na IANA RFC 6598. Pravidla aplikací vždy používají SNAT prostřednictvím transparentního proxy serveru bez ohledu na cílovou IP adresu.

Toto výchozí chování je vhodné při směrování provozu přímo do internetu. Existují však scénáře, kdy možná budete muset přepsat výchozí chování SNAT:

  • Pokud povolíte vynucené tunelování, Azure Firewall provádí SNAT provozu směřujícího na internet na jednu z privátních IP adres brány firewall v podsíti AzureFirewallSubnet a skryje zdroj z místní brány firewall.
  • Pokud vaše organizace používá registrované rozsahy IP adres mimo IANA RFC 1918 nebo IANA RFC 6598 pro privátní sítě, Azure Firewall překládá provoz prostřednictvím SNAT na jednu z privátních IP adres firewallu v podsíti AzureFirewallSubnet. Službu Azure Firewall můžete nakonfigurovat tak, aby neprováděla SNAT na váš rozsah veřejných IP adres. Zadejte například individuální IP adresu jako x.x.x.x nebo rozsah IP adres jako x.x.x.x/24.

Chování SNAT služby Azure Firewall můžete změnit následujícími způsoby:

  • Pokud chcete nakonfigurovat službu Azure Firewall tak, aby nikdy neprováděl SNAT u provozu zpracovávaného pravidly sítě, a to bez ohledu na cílovou IP adresu, použijte rozsah privátních IP adres 0.0.0.0/0. Díky této konfiguraci nemůže Azure Firewall směrovat provoz přímo na internet.
  • Pokud chcete nakonfigurovat bránu firewall tak, aby vždy zpracovávala provoz SNAT podle pravidel sítě bez ohledu na cílovou adresu, použijte jako rozsah privátních IP adres 255.255.255.255/32.
  • Aby Azure Firewall automaticky zjišťoval rozsahy registrovaných a privátních IP adres v pravidelných intervalech, povolte automatické zjišťování tras SNAT. Naučené adresní rozsahy jsou považovány za interní a provoz určený do těchto oblastí není SNATován.

Důležité

  • Konfigurace rozsahu privátních adres se vztahuje pouze na pravidla sítě. Pravidla aplikací vždy používají SNAT.
  • Pokud chcete zadat vlastní rozsahy privátních IP adres a ponechat výchozí rozsahy adres IANA RFC 1918, ujistěte se, že váš vlastní seznam stále obsahuje rozsah IANA RFC 1918.

Následující tabulka ukazuje podporované konfigurační metody. Brány firewall přidružené k zásadám brány firewall musí určovat rozsah zásad a nesmí se používat AdditionalProperties.

metoda Klasická pravidla Pravidla firewallu
Azure PowerShell Podporováno Nepodporováno
Azure CLI Podporováno Nepodporováno
šablona ARM Podporováno Podporováno
Azure Portal Podporováno Podporováno

Konfigurace rozsahu privátních IP adres SNAT

Vyberte si způsob konfigurace. Azure PowerShell a Azure CLI podporují pouze klasická pravidla. Pro konfiguraci SNAT rozsahů pomocí firewallové politiky použijte ARM šablonu nebo Azure portál.

K určení rozsahů privátních IP adres pro bránu firewall použijte Azure PowerShell.

Poznámka:

Vlastnost brány firewall PrivateRange je ignorována pro brány firewall, které jsou přidruženy k politice brány firewall. Musíte použít vlastnost SNAT v firewallPolicies, jak je popsáno na kartě Šablona ARM.

Nový firewall

Pro nový firewall, který používá klasická pravidla, vytvořte firewall pomocí New-AzFirewall:

$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

Poznámka:

  • Vyžaduje nasazení služby Azure Firewall v existující virtuální síti a s veřejnou IP adresou. Kompletní průvodce nasazením najdete v tématu Nasazení a konfigurace služby Azure Firewall pomocí Azure PowerShellu.
  • IANAPrivateRanges rozšíří aktuální výchozí nastavení ve službě Azure Firewall, když se do ní přidají další rozsahy. Pokud si přejete v rámci vaší specifikace privátního rozsahu zachovat IANAPrivateRanges výchozí hodnotu, musí zůstat v PrivateRange specifikaci, jak je ukázáno v příkladu.

Existující firewall

Pro konfiguraci existujícího firewallu, který používá klasická pravidla, získáte firewall pomocí Get-AzFirewall a aktualizujte ho 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

Automatické učení tras SNAT

Můžete nastavit Azure Firewall tak, aby se automaticky učil jak registrované, tak soukromé rozsahy každých 30 minut. Tyto získané rozsahy adres jsou interní v rámci sítě, takže provoz k cílům v těchto získaných rozsazích není podroben SNAT. Jak nasazení virtuální sítě (VNet), tak nasazení zabezpečeného virtuálního rozbočovače (vHub) podporují automatické zjišťování tras SNAT.

Poznámka:

  • Auto-learn SNAT vyžaduje, aby byl Azure Firewall spojen s Azure Route Server.
  • Pro nasazení VNet musíte nasadit Azure Route Server ve stejné virtuální síti jako Azure Firewall.
  • Pro nasazení vHub je Azure Route Server již nasazen a přiřazen ve výchozím nastavení.
  • Pro oba modely nasazení musíte po dokončení asociace povolit automatické učení SNAT v Azure Firewall Policy.
  • Další informace o možnostech architektury služby Azure Firewall najdete v tématu Jaké jsou možnosti architektury Azure Firewall Manageru?

VNet firewall

Pro nasazení VNet musíte nasadit a přidružit Azure Route Server před povolením automatického zjišťování tras SNAT.

Požadavky:

V následujících příkladech nahraďte názvy proměnných ($azureFirewallName, $rgname, $location, atd.) vlastními hodnotami.

  1. Vytvořte nový firewall s ID Route Server pomocí 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 $rgname
    
  2. Připojte Route Server k existujícímu firewallu pomocí Get-AzFirewall a 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 $rgname
    
  3. Vytvořte novou firewallovou politiku s povoleným automatickým učením pomocí New-AzFirewallPolicySnat a 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 $rgname
    
  4. Aktualizujte stávající firewallovou politiku pomocí SNAT pomocí New-AzFirewallPolicySnat a 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 $rgname
    
  5. Ověřte naučené prefixy pomocí Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

brána firewall vHub

Pro nasazení vHub je Azure Route Server již nasazen a přiřazen ve výchozím nastavení. Stačí zapnout automatické učení ve firewallové politice.

V následujících příkladech nahraďte názvy proměnných ($azureFirewallName, $rgname, $location, atd.) vlastními hodnotami.

  1. Vytvořte novou firewallovou politiku s povoleným automatickým učením pomocí New-AzFirewallPolicySnat a 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 $rgname
    
  2. Aktualizujte stávající firewallovou politiku pomocí SNAT pomocí New-AzFirewallPolicySnat a 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 $rgname
    
  3. Získejte virtuální hub pomocí Get-AzVirtualHub a firewallovou politiku pomocí Get-AzFirewallPolicy.

    $Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName
    $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Vytvořte veřejnou IP konfiguraci pomocí New-AzFirewallHubPublicIpAddress a New-AzFirewallHubIpAddress.

    $azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1
    $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPs
    
  5. Vytvořte firewall vHub s politikou automatického učení pomocí New-AzFirewall.

    $azureFirewall = New-AzFirewall -Name $azureFirewallName `
        -ResourceGroupName $rgname `
        -Location $location `
        -VirtualHubId $Hub.Id `
        -FirewallPolicyId $azureFirewallPolicy.Id `
        -SkuName "AZFW_Hub" `
        -HubIPAddress $azureFirewallHubIPs `
        -SkuTier $FirewallTier
    
  6. Ověřte naučené prefixy pomocí Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Další kroky