Intervalos de endereços IP privados do Azure Firewall SNAT

O Firewall do Azure fornece o recurso SNAT para todo o tráfego de saída para endereços IP públicos. Por defeito, o Azure Firewall não usa SNAT com regras de rede quando o endereço IP de destino está num intervalo de endereços IP privados conforme o IANA RFC 1918 ou num espaço de endereçamento partilhado segundo o IANA RFC 6598. As regras de aplicação usam sempre SNAT através de um proxy transparente , independentemente do endereço IP de destino.

Esse comportamento padrão é adequado ao rotear o tráfego diretamente para a Internet. No entanto, existem cenários em que pode ser necessário substituir o comportamento padrão do SNAT:

  • Se ativar o tunelamento forçado, o Azure Firewall SNAT envia tráfego ligado à Internet para um dos endereços IP privados do firewall no AzureFirewallSubnet, escondendo a origem do seu firewall local.
  • Se a sua organização utilizar intervalos de endereços IP registados fora do IANA RFC 1918 ou IANA RFC 6598 para redes privadas, o Firewall do Azure realiza SNAT no tráfego para um dos endereços IP privados do firewall no AzureFirewallSubnet. Você pode configurar o Firewall do Azure para não realizar SNAT no intervalo de endereços IP públicos. Por exemplo, especifique um endereço IP individual como x.x.x.x ou um intervalo de endereços IP como x.x.x.x/24.

Você pode alterar o comportamento SNAT do Firewall do Azure das seguintes maneiras:

  • Para configurar o Azure Firewall para nunca SNAT o tráfego processado pelas regras da rede, independentemente do endereço IP de destino, use 0.0.0.0/0 como o seu intervalo de endereços IP privados. Com essa configuração, o Firewall do Azure não pode rotear o tráfego diretamente para a Internet.
  • Para configurar o firewall para sempre aplicar SNAT ao tráfego processado pelas regras de rede, independentemente do endereço de destino, utilize 255.255.255.255/32 como intervalo de endereços IP privados.
  • Para configurar o Azure Firewall para aprender automaticamente os intervalos de endereços IP registados e privados a intervalos regulares, ative rotas SNAT de aprendizagem automática. Os intervalos de endereços IP detetados são tratados como internos e o tráfego destinado a esses intervalos não é sujeito a SNAT.

Important

  • A configuração do intervalo de endereços privados só se aplica a regras de rede. As regras de aplicação utilizam sempre SNAT.
  • Se quiser especificar os seus próprios intervalos de endereços IP privados e manter os intervalos de endereços predefinidos da norma IANA RFC 1918, certifique-se de que a sua lista personalizada ainda inclui o intervalo da norma IANA RFC 1918.

A tabela seguinte mostra os métodos de configuração suportados. Os firewalls associados a uma política de firewall devem especificar o intervalo na política e não usar AdditionalProperties.

Método Regras clássicas Política de firewall
Azure PowerShell Suportado Não suportado
CLI do Azure Suportado Não suportado
modelo do ARM Suportado Suportado
portal do Azure Suportado Suportado

Configurar intervalos de endereços IP SNAT privados

Escolhe o teu método de configuração. Azure PowerShell e CLI do Azure apenas suportam regras clássicas. Para configurar intervalos SNAT com uma política de firewall, utilize um modelo ARM ou o portal Azure.

Use o Azure PowerShell para especificar intervalos de endereços IP privados para o firewall.

Nota

A propriedade firewall PrivateRange é ignorada para firewalls associados a uma Diretiva de Firewall. Deve usar a propriedade SNAT em firewallPolicies, conforme descrito no separador Modelo ARM.

Novo firewall

Para um novo firewall que usa regras clássicas, crie o firewall usando o 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

  • Implementar o Azure Firewall usando New-AzFirewall requer uma rede virtual existente e um endereço IP público. Para um guia completo de implementação, consulte Deploy and configure Azure Firewall using Azure PowerShell.
  • IANAPrivateRanges expande-se para os valores predefinidos atuais do Azure Firewall enquanto os outros intervalos são adicionados a ele. Para manter o IANAPrivateRanges padrão em sua especificação de intervalo privado, ele deve permanecer em sua PrivateRange especificação, conforme mostrado no exemplo.

Firewall existente

Para configurar um firewall existente que use regras clássicas, obtenha o firewall usando o Get-AzFirewall e atualize-o usando o 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

Aprendizagem automática das rotas SNAT

Pode configurar o Azure Firewall para aprender automaticamente tanto os intervalos registados como privados a cada 30 minutos. Estes intervalos de endereços aprendidos são internos à rede, por isso o tráfego para destinos nos intervalos aprendidos não é SNAT. Tanto as implementações de redes virtuais (VNet) como as implementações de hub virtual seguro (vHub) suportam rotas SNAT de autoaprendizagem.

Nota

  • O SNAT de auto-aprendizagem exige que o Azure Firewall esteja associado ao Azure Route Server.
  • Para implementações de VNet, deve implementar o Azure Route Server na mesma rede virtual do Azure Firewall.
  • Para implementações de vHub, o Azure Route Server já está implementado e associado por defeito.
  • Para ambos os modelos de implementação, deve ativar o SNAT de auto-aprendizagem na Azure Firewall Policy após a conclusão da associação.
  • Para obter mais informações sobre as opções de arquitetura do Firewall do Azure, consulte Quais são as opções de arquitetura do Gerenciador de Firewall do Azure?

Firewall VNet

Para implementações de VNet, é necessário implementar e associar o Azure Route Server antes de ativar as rotas SNAT de aprendizagem automática.

Pré-requisitos:

Nos exemplos seguintes, substitua os nomes das variáveis ($azureFirewallName, $rgname, $location, etc.) pelos seus próprios valores.

  1. Crie um novo firewall com um ID de Servidor de Rotas por meio de 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. Associe um Route Server a um firewall existente 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. Crie uma nova política de firewall com o auto-aprendizado ativado 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. Atualize uma política de firewall existente com SNAT usando 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. Verifique os prefixos aprendidos usando Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Firewall vHub

Para implementações de vHub, o Azure Route Server já está implementado e associado por defeito. Só precisas de ativar o auto-aprendizado na tua política de firewall.

Nos exemplos seguintes, substitua os nomes das variáveis ($azureFirewallName, $rgname, $location, etc.) pelos seus próprios valores.

  1. Crie uma nova política de firewall com o auto-aprendizado ativado 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. Atualize uma política de firewall existente com SNAT usando 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. Obtenha o hub virtual usando o Get-AzVirtualHub e a política de firewall usando o Get-AzFirewallPolicy.

    $Hub = Get-AzVirtualHub -ResourceGroupName $rgname -Name $virtualHubName
    $azureFirewallPolicy = Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname
    
  4. Crie uma configuração de IP público usando New-AzFirewallHubPublicIpAddress e New-AzFirewallHubIpAddress.

    $azureFirewallPIPs = New-AzFirewallHubPublicIpAddress -Count 1
    $azureFirewallHubIPs = New-AzFirewallHubIpAddress -PublicIP $azureFirewallPIPs
    
  5. Crie o firewall do vHub com a política de auto-aprendizado usando o 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. Verifique os prefixos aprendidos usando Get-AzFirewallLearnedIpPrefix.

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname
    

Próximos passos