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.
Sélectionnez votre groupe de ressources, puis votre pare-feu.
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 :
Par défaut, IANAPrivateRanges est configuré.
Modifiez les plages d'adresses IP privées de votre environnement, puis sélectionnez Enregistrer.
Stratégie de pare-feu
Sélectionnez votre groupe de ressources, puis votre stratégie de pare-feu.
Sélectionnez Plages d’adresses IP privées (SNAT) dans la colonne Paramètres.
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.
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 itinéraires 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.
- 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).
- Vous pouvez voir les routes apprises dans la page Préfixes IP SNAT appris (préversion).
Étapes suivantes
- En savoir plus sur le Tunneling forcé du Pare-feu Azure