Intervalli di indirizzi IP privati SNAT del firewall di Azure

Firewall di Azure offre funzionalità SNAT per tutto il traffico in uscita verso indirizzi IP pubblici. Per impostazione predefinita, Firewall di Azure non usa SNAT con regole di rete quando l'indirizzo IP di destinazione si trova in un intervallo di indirizzi IP privati per IANA RFC 1918 o spazio indirizzi condiviso per IANA RFC 6598. Le regole dell'applicazione usano sempre SNAT tramite un proxy trasparente indipendentemente dall'indirizzo IP di destinazione.

Questo comportamento predefinito è adatto quando si instrada il traffico direttamente a Internet. Esistono tuttavia scenari in cui potrebbe essere necessario eseguire l'override del comportamento SNAT predefinito:

  • Se abiliti il tunneling forzato, Firewall di Azure effettua il SNAT del traffico destinato a Internet verso uno degli indirizzi IP privati del firewall nella AzureFirewallSubnet, nascondendo l'origine dal tuo firewall locale.
  • Se l'organizzazione usa intervalli di indirizzi IP registrati all'esterno di IANA RFC 1918 o IANA RFC 6598 per le reti private, Firewall di Azure indirizzerà il traffico tramite SNAT verso uno degli indirizzi IP privati del firewall in AzureFirewallSubnet. È possibile configurare Firewall di Azure affinché non effettui SNAT sulla gamma di indirizzi IP pubblici. Ad esempio, specificare un singolo indirizzo IP come x.x.x.x o un intervallo di indirizzi IP come x.x.x.x/24.

È possibile modificare il comportamento SNAT di Firewall di Azure nei modi seguenti:

  • Per configurare Firewall di Azure in modo che il traffico SNAT non venga mai elaborato dalle regole di rete indipendentemente dall'indirizzo IP di destinazione, usare 0.0.0.0/0 come intervallo di indirizzi IP privati. Con questa configurazione, Firewall di Azure non può instradare il traffico direttamente a Internet.
  • Per configurare il firewall per sempre il traffico SNAT elaborato dalle regole di rete a prescindere dall'indirizzo di destinazione, usare 255.255.255.255/32 come l'intervallo di indirizzi IP privati.
  • Per configurare Firewall di Azure affinché apprezzi automaticamente gli intervalli di indirizzi IP registrati e privati a intervalli regolari, abilita l'apprendimento automatico delle rotte SNAT. Gli intervalli di indirizzi appresi sono trattati come interni e il traffico destinato a questi intervalli non viene sottoposto a SNAT.

Importante

  • La configurazione dell'intervallo di indirizzi privato si applica solo alle regole di rete. Le regole dell'applicazione usano sempre SNAT.
  • Se si desidera specificare intervalli di indirizzi IP privati propri e mantenere gli intervalli di indirizzi IANA RFC 1918 predefiniti, assicurarsi che l'elenco personalizzato includa ancora l'intervallo IANA RFC 1918.

La tabella seguente mostra i metodi di configurazione supportati. I firewall associati a un criterio firewall devono specificare l'intervallo nel criterio e non utilizzare AdditionalProperties.

metodo Regole classiche Politica firewall
Azure PowerShell Supported Non supportato
Interfaccia della riga di comando di Azure (CLI) Supported Non supportato
Modello ARM Supported Supported
Portale di Azure Supported Supported

Configura gli intervalli di indirizzi IP privati SNAT

Scegli il metodo di configurazione. Azure PowerShell e interfaccia della riga di comando di Azure supportano solo le regole classiche. Per configurare i range SNAT con una policy firewall, utilizza un template ARM o il portale Azure.

Usare Azure PowerShell per specificare intervalli di indirizzi IP privati per il firewall.

Nota

La proprietà del firewall PrivateRange viene ignorata per i firewall associati a un criterio firewall. Devi utilizzare la SNAT proprietà in firewallPolicies come descritto nella scheda modello ARM .

Nuovo firewall

Per un nuovo firewall che utilizza regole classiche, crea il firewall usando 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

Nota

  • La distribuzione di Firewall di Azure tramite New-AzFirewall richiede una rete virtuale esistente e un indirizzo IP pubblico. Per una guida completa alla distribuzione, vedere Distribuire e configurare Firewall di Azure con Azure PowerShell.
  • IANAPrivateRanges si espande alle impostazioni predefinite correnti in Firewall di Azure, mentre gli altri intervalli vengono aggiunti. Per mantenere l'impostazione predefinita IANAPrivateRanges nella specifica dell'intervallo privato, deve essere mantenuta nella specifica PrivateRange, come mostrato nell'esempio.

Firewall esistente

Per configurare un firewall esistente che utilizza regole classiche, ottieni il firewall usando Get-AzFirewall e aggiornalo usando 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

Apprendimento automatico delle rotte SNAT

Puoi configurare Firewall di Azure per imparare automaticamente sia i range registrati che quelli privati ogni 30 minuti. Questi intervalli di indirizzi appresi sono interni alla rete, quindi il traffico verso le destinazioni negli intervalli appresi non è SNATed. Sia le implementazioni di rete virtuale (VNet) sia quelle di hub virtuale sicuro (vHub) supportano le rotte SNAT di apprendimento automatico.

Nota

  • Auto-learning SNAT richiede che Firewall di Azure sia associato a Server di route Azure.
  • Per le implementazioni VNet, devi distribuire Server di route Azure nella stessa rete virtuale di Firewall di Azure.
  • Per le implementazioni vHub, Server di route Azure è già implementato e associato di default.
  • Per entrambi i modelli di implementazione, devi abilitare l'auto-learning SNAT nella Firewall di Azure Policy dopo che l'associazione è completata.
  • Per altre informazioni sulle opzioni di architettura Firewall di Azure, vedere Quali sono le opzioni di architettura di Firewall di Azure Manager?

Firewall VNet

Per le distribuzioni di reti virtuali, è necessario distribuire e associare Server di route Azure prima di abilitare le route SNAT apprese automaticamente.

Prerequisiti:

Nei seguenti esempi, sostituisci i nomi delle variabili ($azureFirewallName, $rgname, $location, ecc.) con i tuoi valori.

  1. Crea un nuovo firewall con un ID Route Server usando 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. Associa un Route Server a un firewall esistente usando Get-AzFirewall e 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. Crea una nuova policy firewall con l'auto-learning abilitato usando New-AzFirewallPolicySnat e 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. Aggiorna una policy firewall esistente con SNAT utilizzando New-AzFirewallPolicySnat e 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. Verifica i prefissi appresi utilizzando Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

firewall di vHub

Per le implementazioni vHub, Server di route Azure è già implementato e associato di default. Devi solo abilitare l'auto-apprendimento nella tua policy firewall.

Nei seguenti esempi, sostituisci i nomi delle variabili ($azureFirewallName, $rgname, $location, ecc.) con i tuoi valori.

  1. Crea una nuova policy firewall con l'auto-learning abilitato usando New-AzFirewallPolicySnat e 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. Aggiorna una policy firewall esistente con SNAT utilizzando New-AzFirewallPolicySnat e 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. Ottieni l'hub virtuale usando Get-AzVirtualHub e la policy firewall usando Get-AzFirewallPolicy.

    $Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName
    $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Crea una configurazione IP pubblica utilizzando New-AzFirewallHubPublicIpAddress e New-AzFirewallHubIpAddress.

    $azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1
    $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPs
    
  5. Crea il firewall del vHub con la policy di auto-learning usando 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. Verifica i prefissi appresi utilizzando Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Passaggi successivi