Azure Firewall SNAT voor privé-IP-adresreeksen

Azure Firewall biedt SNAT-mogelijkheden voor al het uitgaande verkeer naar openbare IP-adressen. Standaard gebruikt Azure Firewall geen SNAT met netwerkregels wanneer het doel-IP-adres zich in een privé-IP-adresbereik bevindt per IANA RFC 1918 of gedeelde adresruimte per IANA RFC 6598. Toepassingsregels gebruiken altijd SNAT via een transparante proxy , ongeacht het doel-IP-adres.

Dit standaardgedrag is geschikt wanneer verkeer rechtstreeks naar internet wordt gerouteerd. Er zijn echter scenario's waarin u mogelijk het standaardgedrag van SNAT moet overschrijven:

  • Als u geforceerde tunneling inschakelt, verbergt Azure Firewall SNATs internetverkeer naar een van de privé-IP-adressen van de firewall in AzureFirewallSubnet en verbergt u de bron van uw on-premises firewall.
  • Als uw organisatie gebruikmaakt van geregistreerde IP-adresbereiken buiten IANA RFC 1918 of IANA RFC 6598 voor privénetwerken, voert Azure Firewall SNAT uit op het verkeer naar een van de privé-IP-adressen van de firewall in AzureFirewallSubnet. U kunt Azure Firewall configureren om SNAT niet in te schakelen voor uw openbare IP-adresbereik. Geef bijvoorbeeld een afzonderlijk IP-adres op als x.x.x.x of een bereik van IP-adressen als x.x.x.x/24.

U kunt het SNAT-gedrag van Azure Firewall op de volgende manieren wijzigen:

  • Gebruik 0.0.0.0/0 als uw bereik voor privé-IP-adressen om Azure Firewall zodanig te configureren dat SNAT-verkeer nooit wordt verwerkt door netwerkregels, ongeacht het doel-IP-adres. Met deze configuratie kan Azure Firewall verkeer niet rechtstreeks naar internet routeren.
  • Gebruik 255.255.255.255.255.255/32 als uw privé-IP-adresbereik om de firewall zo te configureren dat altijd SNAT-verkeer wordt verwerkt door netwerkregels, ongeacht het doeladresbereik.
  • Om Azure Firewall te configureren zodat het automatisch geregistreerde en private IP-adresbereiken op regelmatige tijdstippen leert, schakel automatisch leren van SNAT-routes in. Aangeleerde adresbereiken worden als intern behandeld en verkeer dat voor deze bereiken is bestemd, wordt niet met SNAT vertaald.

Belangrijk

  • De configuratie van het privéadresbereik is alleen van toepassing op netwerkregels. Toepassingsregels maken altijd gebruik van SNAT.
  • Als u uw eigen privé-IP-adresbereiken wilt opgeven en de standaardadresbereiken van IANA RFC 1918 wilt behouden, moet u ervoor zorgen dat uw aangepaste lijst nog steeds het bereik van IANA RFC 1918 bevat.

De volgende tabel toont de ondersteunde configuratiemethoden. Firewalls die zijn gekoppeld aan een firewallbeleid, moeten het bereik in het beleid opgeven en niet gebruiken AdditionalProperties.

Wijze Klassieke regels Firewallbeleid
Azure PowerShell Supported Niet ondersteund
Azure CLI Supported Niet ondersteund
ARM template Supported Supported
Azure Portal Supported Supported

Configureer SNAT-privé-IP-adresbereiken

Kies je configuratiemethode. Azure PowerShell en Azure CLI ondersteunen alleen klassieke regels. Om SNAT-ranges te configureren met een firewallbeleid, gebruik je een ARM-sjabloon of het Azure-portaal.

Gebruik Azure PowerShell om privé-IP-adresbereiken voor de firewall op te geven.

Notitie

De firewalleigenschap PrivateRange wordt genegeerd voor firewalls die zijn gekoppeld aan een firewallbeleid. Je moet de eigenschap SNAT in firewallPolicies gebruiken, zoals beschreven op het tabblad ARM-sjabloon.

Nieuwe firewall

Voor een nieuwe firewall die klassieke regels gebruikt, maak je de firewall aan met 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

Notitie

  • Bij het uitrollen van Azure Firewall met behulp van New-AzFirewall is een bestaand virtueel netwerk en een openbaar IP-adres vereist. Zie Azure Firewall implementeren en configureren met behulp van Azure PowerShell voor een volledige implementatiehandleiding.
  • IANAPrivateRanges wordt uitgebreid naar de huidige stapwaarden op Azure Firewall, waarbij de andere reeksen eraan worden toegevoegd. Als u de IANAPrivateRanges standaardspecificatie van uw privébereik wilt behouden, moet deze in uw PrivateRange specificatie blijven, zoals wordt weergegeven in het voorbeeld.

Bestaande firewall

Om een bestaande firewall te configureren die klassieke regels gebruikt, haal je de firewall op via Get-AzFirewall en werk je deze bij met 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

Automatisch leren van SNAT-routes

Je kunt Azure Firewall zo instellen dat zowel geregistreerde als private ranges elke 30 minuten automatisch leren. Deze geleerde adresbereiken zijn intern in het netwerk, dus verkeer naar bestemmingen binnen de geleerde adresbereiken wordt niet SNAT. Zowel VNet-implementaties als beveiligde vHub-implementaties ondersteunen automatisch geleerde SNAT-routes.

Notitie

  • Auto-learn SNAT vereist dat Azure Firewall gekoppeld is aan Azure Route Server.
  • Voor VNet-implementaties moet je Azure Route Server deployen in hetzelfde virtuele netwerk als Azure Firewall.
  • Voor vHub-implementaties is Azure Route Server standaard al geïmplementeerd en gekoppeld.
  • Voor beide implementatiemodellen moet je auto-learning SNAT inschakelen in het Azure Firewall Policy nadat de associatie is voltooid.
  • Zie Wat zijn de architectuuropties van Azure Firewall Manager voor meer informatie over opties voor Azure Firewall-architectuur?

VNet-firewall

Voor VNet-implementaties moet je Azure Route Server uitrollen en associëren voordat je auto-learn SNAT-routes inschakelt.

Voorwaarden:

In de volgende voorbeelden vervang je de variabelenamen ($azureFirewallName, $rgname, $location, enz.) door je eigen waarden.

  1. Maak een nieuwe firewall aan met een Route Server-ID door gebruik te maken van 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. Koppel een Route Server aan een bestaande firewall door gebruik te maken van Get-AzFirewall en 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. Maak een nieuw firewallbeleid aan met auto-learn ingeschakeld door gebruik te maken van New-AzFirewallPolicySnat en 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. Werk een bestaand firewallbeleid bij met SNAT door gebruik te maken van New-AzFirewallPolicySnat en 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. Controleer de geleerde prefixen met behulp van Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

vHub-firewall

Voor vHub-implementaties is Azure Route Server standaard al geïmplementeerd en gekoppeld. Je hoeft alleen auto-learn in je firewallbeleid in te schakelen.

In de volgende voorbeelden vervang je de variabelenamen ($azureFirewallName, $rgname, $location, enz.) door je eigen waarden.

  1. Maak een nieuw firewallbeleid aan met auto-learn ingeschakeld door gebruik te maken van New-AzFirewallPolicySnat en 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. Werk een bestaand firewallbeleid bij met SNAT door gebruik te maken van New-AzFirewallPolicySnat en 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. Download de virtuele hub met Get-AzVirtualHub en het firewallbeleid met Get-AzFirewallPolicy.

    $Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName
    $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Maak een publieke IP-configuratie door gebruik te maken van New-AzFirewallHubPublicIpAddress en New-AzFirewallHubHubIpAddress.

    $azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1
    $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPs
    
  5. Maak de vHub-firewall aan met het auto-learn-beleid door gebruik te maken van 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. Controleer de geleerde prefixen met behulp van Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Volgende stappen