Partager via


Plages d’adresses IP privées de SNAT du Pare-feu Azure

Le Pare-feu Azure offre la capacité SNAT pour l’ensemble du trafic sortant à destination d’adresses IP publiques. Par défaut, le Pare-feu Azure n'effectue pas de SNAT avec les règles réseau lorsque l’adresse IP de destination se trouve dans une plage d’adresses IP privées conformément à la norme IANA RFC 1918 ou dans un espace d’adressage partagé conformément à la norme IANA RFC 6598. Les règles d'application sont toujours soumises au procédé SNAT à l'aide d'un proxy transparent, quelle que soit l'adresse IP de destination.

Ce comportement par défaut est approprié lors du routage du trafic directement vers Internet. Toutefois, il existe des scénarios où vous devrez peut-être remplacer le comportement SNAT par défaut :

  • Si vous avez activé le tunneling forcé, le trafic à destination d'Internet est SNATé vers l’une des adresses IP privées du pare-feu dans le AzureFirewallSubnet, masquant la source pour votre pare-feu local.
  • Si votre organisation utilise des plages d'adresses IP enregistrées en dehors de IANA RFC 1918 ou IANA RFC 6598 pour les réseaux privés, le pare-feu Azure traduit le trafic par SNAT en utilisant l'une des adresses IP privées du pare-feu situées dans AzureFirewallSubnet. Vous pouvez configurer le pare-feu Azure pour ne pas appliquer SNAT à votre plage d'adresses IP publiques. Par exemple, spécifiez une adresse IP individuelle en tant qu’adresse x.x.x.x IP ou une plage d’adresses IP en tant que x.x.x.x/24.

Vous pouvez modifier le comportement SNAT du pare-feu Azure de la manière suivante :

  • Pour configurer le Pare-feu Azure de manière à ce que le trafic SNAT ne soit jamais traité par les règles de réseau, quelle que soit l’adresse IP de destination, utilisez 0.0.0.0/0 comme plage d’adresses IP privées. Avec cette configuration, le Pare-feu Azure ne peut pas acheminer le trafic directement vers Internet.
  • Pour configurer le pare-feu pour toujours traiter le trafic SNAT traité par les règles réseau, quelle que soit l’adresse de destination, utilisez 255.255.255.255/32 comme plage d’adresses IP privées.
  • Le Pare-feu Azure peut être configuré pour apprendre automatiquement les plages privées et inscrites toutes les heures, et utiliser les routes apprises pour SNAT. Cette fonctionnalité en préversion nécessite qu’Azure Route Server soit déployé dans le même réseau virtuel que le Pare-feu Azure.

Important

  • La configuration de la plage d’adresses privées s’applique uniquement aux règles de réseau. Les règles d’application sont toujours SNAT.
  • Si vous souhaitez spécifier vos propres plages d’adresses IP privées et conserver les plages d’adresses IANA RFC 1918 par défaut, vérifiez que votre liste personnalisée inclut toujours la plage IANA RFC 1918.

Vous pouvez configurer les adresses IP privées SNAT à l’aide des méthodes suivantes. Utilisez la méthode appropriée pour votre configuration. Les pare-feu associés à une stratégie de pare-feu doivent spécifier la plage dans la stratégie et ne pas utiliser AdditionalProperties.

Méthode Utilisation de règles classiques Utilisation d’une stratégie de pare-feu
Portail Azure Pris en charge Pris en charge
Azure PowerShell configurer PrivateRange actuellement non pris en charge
Azure CLI configurer --private-ranges actuellement non pris en charge
Modèle ARM configurer AdditionalProperties dans la propriété de pare-feu configurer snat/privateRanges dans la politique de pare-feu

Configurer les plages d'adresses IP privées SNAT - Azure PowerShell

Règles classiques

Vous pouvez utiliser Azure PowerShell afin de spécifier des plages d'adresses IP privées pour le pare-feu.

Remarque

La propriété de pare-feu PrivateRange est ignorée pour les pare-feu associés à une stratégie de pare-feu. Vous devez utiliser la propriété SNAT dans firewallPolicies, comme décrit dans Configuration de plages d’adresses IP privées SNAT - Modèle ARM.

Nouveau pare-feu

Pour un nouveau pare-feu à l’aide de règles classiques, utilisez l’applet de commande Azure PowerShell suivante :

$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

Remarque

  • Le déploiement du Pare-feu Azure avec New-AzFirewall nécessite un réseau virtuel existant et une adresse IP publique. Pour accéder à un guide de déploiement complet, consultez Déploiement et configuration d’un Pare-feu Azure avec Azure PowerShell.
  • IANAPrivateRanges est étendu aux valeurs par défaut actuelles sur le Pare-feu Azure tandis que les autres plages sont ajoutées à celle-ci. Pour conserver la IANAPrivateRanges valeur par défaut dans votre spécification de plage privée, elle doit rester dans votre PrivateRange spécification, comme indiqué dans l’exemple.

Pour plus d’informations, consultez New-AzFirewall.

Pare-feu existant

Pour configurer un pare-feu existant utilisant des règles classiques, utilisez les cmdlets Azure PowerShell suivantes :

$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

Configuration de plages d’adresses IP privées SNAT – Azure CLI

Règles classiques

Vous pouvez utiliser Azure CLI afin de spécifier des plages d’adresses IP privées pour le pare-feu utilisant des règles classiques.

Nouveau pare-feu

Pour un nouveau pare-feu à l’aide de règles classiques, utilisez la commande Azure CLI suivante :

az network firewall create \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

Remarque

  • Le déploiement du Pare-feu Azure à l’aide de la commande az network firewall create Azure CLI nécessite des étapes de configuration supplémentaires pour créer des adresses IP publiques et une configuration IP. Pour accéder à un guide de déploiement complet, consultez Déploiement et configuration d’un Pare-feu Azure avec Azure CLI.
  • IANAPrivateRanges est étendu aux valeurs par défaut actuelles sur le Pare-feu Azure tandis que les autres plages sont ajoutées à celle-ci. Pour conserver la IANAPrivateRanges valeur par défaut dans votre spécification de plage privée, elle doit rester dans votre private-ranges spécification, comme indiqué dans l’exemple.

Pare-feu existant

Pour configurer un pare-feu existant à l’aide de règles classiques, utilisez la commande Azure CLI suivante :

az network firewall update \
-n <fw-name> \
-g <resourcegroup-name> \
--private-ranges 192.168.1.0/24 192.168.1.10 IANAPrivateRanges

Configuration de plages d’adresses IP privées SNAT - Modèle ARM

Règles classiques

Pour configurer SNAT pendant le déploiement du modèle ARM, ajoutez ce qui suit à la additionalProperties propriété :

"additionalProperties": {
   "Network.SNAT.PrivateRanges": "IANAPrivateRanges, IPRange1, IPRange2"
},

Stratégie de pare-feu

Les pare-feu Azure associés à une stratégie de pare-feu prennent en charge les plages privées SNAT depuis la version d’API 2020-11-01. Vous pouvez utiliser un modèle pour mettre à jour la plage privée SNAT sur la stratégie de pare-feu. L’exemple suivant configure le pare-feu pour qu’il fasse toujours une traduction SNAT du trafic réseau :

{
   "type": "Microsoft.Network/firewallPolicies",
   "apiVersion": "2020-11-01",
   "name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "tier": "Standard"
      },
      "snat": {
         "privateRanges": "[255.255.255.255/32]"
      }
   }
}

Configurer des plages d'adresses IP privées SNAT - Portail Azure

Règles classiques

Vous pouvez utiliser le portail Azure afin de spécifier des plages d'adresses IP privées pour le pare-feu.

  1. Sélectionnez votre groupe de ressources, puis votre pare-feu.

  2. Sur la page Présentation, Plages IP privées, sélectionnez la valeur par défaut IANA RFC 1918.

    La page Modifier les préfixes des adresses IP privées s'ouvre :

  3. Par défaut, IANAPrivateRanges est configuré.

  4. Modifiez les plages d'adresses IP privées de votre environnement, puis sélectionnez Enregistrer.

Stratégie de pare-feu

  1. Sélectionnez votre groupe de ressources, puis votre stratégie de pare-feu.
  2. Sélectionnez Plages d’adresses IP privées (SNAT) dans la colonne Paramètres.
  3. Pour personnaliser la configuration SNAT, sélectionnez les conditions pour effectuer le SNAT de votre environnement sous Effectuer SNAT.
  4. Sélectionnez Appliquer.

Apprendre automatiquement les routes SNAT (préversion)

Vous pouvez configurer le Pare-feu Azure pour qu’il apprenne automatiquement les plages inscrites et les plages privées toutes les 30 minutes. Ces plages d’adresses apprises sont considérées comme internes au réseau. Par conséquent, le trafic vers les destinations dans les plages apprises n’est pas SNATed. Les plages SNAT d’apprentissage automatique nécessitent le déploiement du serveur de routage Azure dans le même réseau virtuel que le Pare-feu Azure. Le pare-feu doit être associé au serveur de routage Azure et configuré pour effectuer l’autolearn des plages SNAT dans la stratégie de pare-feu Azure. Vous pouvez actuellement utiliser un modèle ARM, Azure PowerShell ou le portail Azure pour configurer des itinéraires SNAT autolearn.

Remarque

Les itinéraires SNAT d’apprentissage automatique sont disponibles uniquement sur les déploiements de réseau virtuel (réseau virtuel hub). Il n'est pas disponible sur les déploiements VWAN (hub virtuel sécurisé). Pour plus d’informations sur les options d’architecture du Pare-feu Azure, consultez Quelles sont les options d’architecture d’Azure Firewall Manager ?

Configuration à l’aide d’un modèle ARM

Vous pouvez utiliser le code JSON suivant pour configurer l’autolearn. Le Pare-feu Azure doit être associé à un Serveur de routes Azure.

{
   "type": "Microsoft.Network/firewallPolicies",
   "apiVersion": "2022-11-01",
   "name": "[parameters('firewallPolicies_DatabasePolicy_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "tier": "Standard"
      },
      "snat": {
         "autoLearnPrivateRanges": "Enabled"
      }
   }
}

Utilisez le JSON suivant pour associer un Serveur de routes Azure :

{
   "type": "Microsoft.Network/azureFirewalls",
   "apiVersion": "2022-11-01",
   "name": "[parameters('azureFirewalls_testFW_name')]",
   "location": "eastus",
   "properties": {
      "sku": {
         "name": "AZFW_VNet",
         "tier": "Standard"
      },
      "threatIntelMode": "Alert",
      "additionalProperties": {
         "Network.RouteServerInfo.RouteServerID": "[parameters('virtualHubs_TestRouteServer_externalid')]"
      }
   }
}

Configuration à l’aide d’Azure PowerShell

  • Créer un nouveau pare-feu avec routeServerId.

    # specify RouteServerId Uri
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Create AzureFirewall 
    $azureFirewall = New-AzFirewall -Name $azureFirewallName -ResourceGroupName `
      $rgname -Location $location -RouteServerId $routeServerId 
    
    # Get firewall and confirm if RouteServerId is included on the response under additional properties (Network.RouteServerInfo.RouteServerID) 
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname 
    
  • Mettre à jour un pare-feu existant avec RouteServerId

    # specify RouteServerId Uri 
    $routeServerId="/subscriptions/your_sub/resourceGroups/testRG/providers/Microsoft.Network/virtualHubs/TestRS"
    
    # Get firewall 
    $azFirewall = Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname 
    
    # Update the response with RouteServerId and do firewall SET 
    $azFirewall.RouteServerId = $routeServerId 
    Set-AzFirewall -AzureFirewall $azFirewall
    
    # Do firewall Get and confirm if routeServerId is updated 
    Get-AzFirewall -Name $azureFirewallName -ResourceGroupName $rgname
    
  • Créer une nouvelle stratégie de pare-feu avec le paramètre SNAT fourni

    # If AutoLearnPrivateRange parameter is provided, auto learn will be enabled, if not it will be disabled 
    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange -AutoLearnPrivateRange
    
    # Create AzureFirewallPolicy (with SNAT) 
    $azureFirewallPolicy = New-AzFirewallPolicy -Name $azureFirewallPolicyName `
      -ResourceGroupName $rgname -Location $location -Snat $snat
    
    # Get AzureFirewallPolicy and verify 
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname 
    
  • Mettre à jour une stratégie de pare-feu existante avec SNAT

    $snat = New-AzFirewallPolicySnat -PrivateRange $privateRange2 
    
    # Set AzureFirewallPolicy 
    $azureFirewallPolicy.Snat = $snat 
    Set-AzFirewallPolicy -InputObject $azureFirewallPolicy 
    
    # Do Get and Verify 
    Get-AzFirewallPolicy -Name $azureFirewallPolicyName -ResourceGroupName $rgname 
    
  • Obtenir les préfixes appris du pare-feu

    Get-AzFirewallLearnedIpPrefix -Name $azureFirewallName -ResourceGroupName $rgname 
    

Configurer à l’aide du portail Azure

Pour configurer des itinéraires SNAT autolearn (préversion) à l’aide du portail Azure, procédez comme suit :

  1. Ajoutez un sous-réseau :

    • Ajoutez un sous-réseau nommé RouteServerSubnet à votre réseau virtuel de pare-feu existant.
    • Vérifiez que la taille du sous-réseau est au moins /27.
  2. Déployer un serveur de routage :

  3. Associez le serveur de routage :

    • Dans la page Préfixes IP SNAT appris (préversion) du pare-feu, ajoutez le serveur de routes.
  4. Modifier la stratégie de pare-feu :

    • Activez les préfixes IP d’apprentissage automatique (préversion) dans la section Plages d’adresses IP privées (SNAT) de votre stratégie de pare-feu.
  5. Afficher les itinéraires appris :

    • Vérifiez les routes apprises dans la page Préfixes IP SNAT appris (préversion).

Étapes suivantes