Pare-feu Azure traduit l’adresse réseau source des plages d’adresses IP privées

Le Pare-feu Azure assure la capacité de traduction d’adresses réseau sources (SNAT) pour l’ensemble du trafic sortant à destination d’adresses IP publiques. Par défaut, Pare-feu Azure ne traduit pas l’adresse réseau source avec des règles de 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 font l’objet d’une traduction SNAT à l’aide d’un proxy transparent, quelle que soit l’adresse IP de destination.

Cette logique fonctionne bien lorsque vous acheminez le trafic directement vers Internet. Cependant, dans certains scénarios, il est possible que vous souhaitiez remplacer le comportement par défaut de SNAT.

  • Si vous avez activé le tunneling forcé, le trafic Internet fait l’objet d’une traduction SNAT vers l’une des adresses IP privées du pare-feu dans AzureFirewallSubnet, ce qui a pour effet de masquer la source de votre pare-feu local.
  • Si votre organisation utilise une plage d’adresses IP inscrites en dehors de IANA RFC 1918 ou IANA RFC 6598 pour les réseaux privés, le Pare-feu Azure traduit l’adresse réseau source du trafic en une des adresses IP privées du pare-feu dans AzureFirewallSubnet. Toutefois, vous pouvez configurer Pare-feu Azure pour qu’il n’effectue pas une telle traduction. Par exemple, pour spécifier une adresse IP individuelle, vous pouvez la spécifier comme suit : 192.168.1.10. Pour spécifier une plage d’adresses IP, vous pouvez la spécifier comme suit : 192.168.1.0/24.

Le comportement SNAT du Pare-feu Azure peut être modifié 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 jamais acheminer le trafic directement vers Internet.

  • Pour configurer le pare-feu de manière à ce que la traduction SNAT soit toujours traitée par les règles de 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 enregistrées toutes les heures et utiliser les routes apprises pour SNAT. Cette fonctionnalité en préversion doit avoir le Serveur de routes Azure 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. Actuellement, les règles d’application sont toujours SNAT.

Important

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, assurez-vous que votre liste personnalisée comprend toujours la plage IANA RFC 1918.

Vous pouvez configurer les adresses IP privées SNAT à l’aide des méthodes suivantes. Vous devez configurer les adresses privées SNAT à l’aide de la méthode appropriée à 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 le pare-feu, propriété configurer snat/privateRanges dans le pare-feu, stratégie

Configurer des plages d'adresses IP privées pour la traduction 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.

Notes

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 utilisant des règles classiques, la cmdlet Azure PowerShell est la 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

Notes

Le déploiement du Pare-feu Azure avec New-AzFirewall exige un réseau virtuel et une adresse IP publique existants. Pour accéder à un guide de déploiement complet, consultez Déploiement et configuration d’un Pare-feu Azure avec Azure PowerShell.

Notes

IANAPrivateRanges est étendu aux valeurs par défaut actuelles sur Pare-feu Azure, tandis que les autres plages y sont ajoutées. Pour conserver la valeur par défaut IANAPrivateRanges dans votre spécification de plage privée, elle doit rester dans votre spécification PrivateRange, comme indiqué dans les exemples suivants.

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 utilisant des règles classiques, la commande Azure CLI est la suivante :

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

Notes

Le déploiement du Pare-feu Azure avec la commande Azure CLI az network firewall create impose des étapes de configuration supplémentaires visant à 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.

Notes

IANAPrivateRanges est étendu aux valeurs par défaut actuelles sur Pare-feu Azure, tandis que les autres plages y sont ajoutées. Pour conserver la valeur par défaut IANAPrivateRanges dans votre spécification de plage privée, elle doit rester dans votre spécification private-ranges, comme indiqué dans les exemples suivants.

Pare-feu existant

Pour configurer un pare-feu existant utilisant des règles classiques, la commande Azure CLI est la 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 d’un modèle ARM, vous pouvez ajouter les éléments suivants à la propriété additionalProperties :

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

Stratégie de pare-feu

Les pare-feu Azure associés à une stratégie de pare-feu contiennent des plages privées SNAT prises en charge depuis la version 2020-11-01 de l’API. Actuellement, vous pouvez utiliser un modèle pour mettre à jour la plage privée SNAT dans la stratégie de pare-feu. L’exemple suivant configure toujours le pare-feu sur le trafic réseau SNAT :

{ 

            "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 pour la traduction 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 :

    Screenshot of edit private IP prefixes.

  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, décochez la case, puis, sous Effectuer une traduction SNAT, sélectionnez les conditions pour effectuer une traduction SNAT pour votre environnement. Screenshot of Private IP ranges (SNAT).

  4. Sélectionnez Appliquer.

Apprendre automatiquement les routes SNAT (préversion)

Vous pouvez configurer le Pare-feu Azure pour apprendre automatiquement les plages inscrites et privées toutes les 30 minutes. Ces plages d’adresses apprises sont considérées comme internes au réseau et un trafic vers des destinations dans des plages apprises ne fait donc pas l’objet de traductions SNAT. Des plages SNAT d’apprentissage automatique nécessitent le déploiement de Serveur de routes Azure dans le même réseau virtuel que le service Pare-feu Azure. Le pare-feu doit être associé au Serveur de routes Azure et configuré pour apprendre automatiquement des plages SNAT dans la stratégie de Pare-feu Azure. Vous pouvez actuellement utiliser ARM, Azure PowerShell ou le Portail Azure pour configurer l’apprentissage automatique des routes SNAT.

Remarque

L’apprentissage automatique des routes SNAT est disponible uniquement sur les déploiements VNet (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 JSON suivant pour configurer l’apprentissage automatique. 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

Vous pouvez utiliser le portail pour associer un Serveur de routes au Pare-feu Azure afin de configurer l’apprentissage automatique des routes SNAT (préversion).

Utilisez le portail pour effectuer les tâches suivantes :

  • Ajoutez un sous-réseau nommé RouteServerSubnet à votre réseau virtuel de pare-feu existant. La taille du sous-réseau doit être au moins /27.
  • Déployez un Serveur de routes dans le réseau virtuel de pare-feu existant. Si vous souhaitez obtenir plus d’informations sur le Serveur de routes Azure, consultez Démarrage rapide : créer et configurer un serveur de routes à l’aide du Portail Azure.
  • Ajoutez le serveur de routes sur la page Préfixes IP SNAT appris (préversion) du pare-feu. Screenshot showing firewall add a route server.
  • Modifiez votre stratégie de pare-feu pour activer l’Apprentissage automatique des préfixes IP (préversion) dans la section Plages d’adresses IP privées (SNAT). Screenshot showing firewall policy Private IP ranges (SNAT) settings.
  • Vous pouvez voir les routes apprises dans la page Préfixes IP SNAT appris (préversion).

Étapes suivantes