Configurer une règle de restriction IP avec un WAF pour Azure Front Door

Cet article vous montre comment configurer des règles de restriction IP dans (WAF) pour Azure Front Door à l'aide du Portail Microsoft Azure, de l'interface de ligne de commande Azure, d'Azure PowerShell ou d'un modèle Azure Resource Manager.

Une règle de contrôle d’accès basé sur l’adresse IP est une règle WAF personnalisée qui vous permet de contrôler l’accès à vos applications web. La règle spécifie une liste d'adresses IP ou de plages d'adresses IP au format CIDR (Classless Inter-Domain Routing).

Il existe deux types de variables de correspondance dans une correspondance d'adresse IP : RemoteAddr et SocketAddr. La variable RemoteAddr est l’adresse IP du client d’origine qui est généralement envoyée au travers de l’en-tête de demande X-Forwarded-For. La variable SocketAddr est l'adresse IP source que le WAF voit. Si votre utilisateur est derrière un proxy, SocketAddr est souvent l'adresse du serveur proxy.

Par défaut, votre application web est accessible depuis Internet. Si vous souhaitez limiter l'accès aux clients à partir d'une liste d'adresses IP ou de plages d'adresses IP connues, vous pouvez créer une règle de correspondance IP qui contient la liste des adresses IP comme valeurs correspondantes et définit l'opérateur sur (nier est vrai) Not et l'action à Block. Une fois une règle de restriction IP appliquée, les demandes provenant d’adresses qui ne figurent pas dans cette liste autorisée recevront une réponse 403 Interdit.

Configurer une stratégie WAF avec le portail Azure

Suivez ces étapes pour configurer une stratégie WAF à l'aide du Portail Microsoft Azure.

Prérequis

Créez un profil Azure Front Door en suivant les instructions décrites dans Démarrage rapide : créer une instance Azure Front Door pour une application Web globale hautement disponible.

Créer une stratégie de pare-feu d’applications web (WAF).

  1. Dans le portail Azure, sélectionnez Créer une ressource. Saisissez Pare-feu d'application Web dans la zone de recherche des services de recherche et de la place de marché et sélectionnez Entrée. Sélectionnez ensuite Pare-feu d'application Web (WAF).

  2. Sélectionnez Create (Créer).

  3. Sur la page Créer une stratégie WAF, utilisez les valeurs suivantes pour compléter l'onglet Général.

    Paramètre Valeur
    Stratégie pour WAF mondial (porte d'entrée).
    Niveau Front Door Sélectionnez Premium ou Standard pour correspondre à votre niveau Azure Front Door.
    Abonnement Sélectionnez votre abonnement.
    Resource group Sélectionnez le groupe de ressources où se trouve votre instance Azure Front Door.
    Nom de stratégie Saisissez un nom pour votre stratégie.
    État de la stratégie Sélectionné.
    Mode de stratégie Prévention.
  4. Sélectionnez Suivant : Règles managées.

  5. Sélectionnez Suivant : Paramètres Azure Policy.

  6. Dans l'onglet Paramètres Azure Policy, entrez Vous avez été bloqué ! pour le corps de la réponse Block afin que vous puissiez voir que votre règle personnalisée est en vigueur.

  7. Sélectionnez Suivant : Règles personnalisées.

  8. Sélectionnez Ajouter une règle personnalisée.

  9. Sur la page Ajouter une règle personnalisée, utilisez les valeurs de test suivantes pour créer une règle personnalisée.

    Paramètre Valeur
    Nom de la règle personnalisée FdWafCustRule
    Statut activé
    Type de règle Faire correspondre
    Priority 100
    Type de correspondance Adresse IP
    Variable de correspondance SocketAddr
    Opération Ne contient pas
    Adresse IP ou plage d'adresses IP 10.10.10.0/24
    Alors Refuser le trafic

    Règle personnalisée

    Sélectionnez Ajouter.

  10. Sélectionnez Suivant : Association.

  11. Sélectionnez Associer un profil Front Door.

  12. Pour Profil frontal, sélectionnez votre profil frontal.

  13. Pour Domaine, sélectionnez le domaine.

  14. Sélectionnez Ajouter.

  15. Sélectionnez Revoir + créer.

  16. Une fois la validation de votre stratégie réussie, sélectionnez Créer.

Tester votre stratégie WAF

  1. Une fois le déploiement de votre stratégie WAF terminé, accédez à votre nom d'hôte frontal Azure Front Door.

  2. Vous devez voir votre message de bloc personnalisé.

    Test de règle WAF

    Notes

    Une adresse IP privée a été utilisée intentionnellement dans la règle personnalisée pour garantir le déclenchement de la règle. Dans un déploiement réel, créez des règles d'autorisation et de refus en utilisant des adresses IP adaptées à votre situation particulière.

Configurer une stratégie WAF avec Azure CLI

Suivez ces étapes pour configurer une stratégie WAF à l'aide d'Azure CLI.

Prérequis

Avant de commencer à configurer une stratégie de restriction d’IP, configurez votre environnement CLI et créez un profil Azure Front Door.

Configurer l'environnement Azure CLI

  1. Installez Azure CLI ou utilisez Azure Cloud Shell. Azure Cloud Shell est un interpréteur de commandes Bash gratuit, que vous pouvez exécuter directement dans le portail Azure. L’interface Azure CLI est préinstallée et configurée pour être utilisée avec votre compte. Sélectionnez le bouton Essayer dans les commandes de l’interface de ligne de commande qui suit. Connectez-vous ensuite à votre compte Azure dans la session Cloud Shell qui s'ouvre. Une fois la session ouverte, saisissez az extension add --name front-door pour ajouter l’extension Azure Front Door.
  2. Si vous utilisez l’interface CLI localement dans Bash, connectez-vous à Azure à l’aide de az login.

Créer un profil Azure Front Door

Créez un profil Azure Front Door en suivant les instructions décrites dans Démarrage rapide : créer une instance Azure Front Door pour une application Web globale hautement disponible.

Créer une stratégie de pare-feu d’applications web (WAF).

Créer une stratégie WAF à l’aide de la commande az network front-door waf-policy create. Dans l’exemple suivant, remplacez le nom de la stratégie IPAllowPolicyExampleCLI par un nom unique.

az network front-door waf-policy create \
  --resource-group <resource-group-name> \
  --subscription <subscription ID> \
  --name IPAllowPolicyExampleCLI

Ajouter une règle de contrôle d’accès IP personnalisée

Utilisez la commande az network front-door waf-policy custom-rule create pour ajouter une règle de contrôle d'accès IP personnalisée pour la stratégie WAF que vous avez créée.

Dans les exemples suivants :

  • Remplacez IPAllowPolicyExampleCLI par votre stratégie unique créée précédemment.
  • Remplacez ip-address-range-1, ip-address-range-2 par votre propre plage.

Tout d’abord, créez une règle d’autorisation IP pour la stratégie créée à l’étape précédente.

Notes

--defer est requis, car une règle doit avoir une condition de correspondance pour être ajoutée à l’étape suivante.

az network front-door waf-policy rule create \
  --name IPAllowListRule \
  --priority 1 \
  --rule-type MatchRule \
  --action Block \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI --defer

Ensuite, ajoutez une condition de correspondance à la règle :

az network front-door waf-policy rule match-condition add \
--match-variable SocketAddr \
--operator IPMatch \
--values "ip-address-range-1" "ip-address-range-2" \
--negate true \
--name IPAllowListRule \
  --resource-group <resource-group-name> \
  --policy-name IPAllowPolicyExampleCLI

Rechercher l’ID d’une stratégie WAF

Recherchez une stratégie WAF à l’aide de la commande az network front-door waf-policy show. Là encore, remplacez IPAllowPolicyExampleCLI dans l’exemple suivant par votre stratégie unique que vous avez créée précédemment.

az network front-door  waf-policy show \
  --resource-group <resource-group-name> \
  --name IPAllowPolicyExampleCLI

Définissez l’ID WebApplicationFirewallPolicyLink d’Azure Front Door sur l’ID de la stratégie à l’aide de la commande az network front-door update. Remplacez IPAllowPolicyExampleCLI par votre stratégie unique créée précédemment.

az network front-door update \
  --set FrontendEndpoints[0].WebApplicationFirewallPolicyLink.id=/subscriptions/<subscription ID>/resourcegroups/resource-group-name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/IPAllowPolicyExampleCLI \
  --name <frontdoor-name> \
  --resource-group <resource-group-name>

Dans cet exemple, la stratégieWAF est appliquée à FrontendEndpoints[0]. Vous pouvez lier la stratégie WAF à n’importe quel front-end en votre possession.

Notes

Vous devez définir la propriété WebApplicationFirewallPolicyLink une seule fois pour lier une stratégie WAF à un front-end Azure Front Door. Les mises à jour de stratégie suivantes sont automatiquement appliquées au front-end.

Configurer une stratégie WAF avec Azure PowerShell

Suivez ces étapes pour configurer une stratégie WAF à l'aide d'Azure PowerShell.

Prérequis

Avant de commencer à configurer une stratégie de restriction d’IP, configurez votre environnement PowerShell et créez un profil Azure Front Door.

Configurer votre environnement PowerShell

Azure PowerShell fournit un ensemble de cmdlets qui utilisent le modèle Azure Resource Manager pour gérer des ressources Azure.

Vous pouvez installer Azure PowerShell sur votre ordinateur local et l’utiliser sur n’importe quelle session PowerShell. Suivez les instructions de la page pour vous connecter à PowerShell à l'aide de vos informations d'identification Azure, puis installez le module Az.

  1. Connectez-vous à Azure à l'aide de la commande suivante, puis utilisez une boîte de dialogue interactive pour vous connecter.

    Connect-AzAccount
    
  2. Avant d’installer le module Azure Front Door, assurez-vous que vous avez installé la version actuelle du module PowerShellGet. Exécutez la commande suivante, puis rouvrez PowerShell.

    Install-Module PowerShellGet -Force -AllowClobber
    
  3. Installez le module Az.FrontDoor à l'aide de la commande suivante :

    Install-Module -Name Az.FrontDoor
    

Créer un profil Azure Front Door

Créez un profil Azure Front Door en suivant les instructions décrites dans Démarrage rapide : Créer une porte d’entrée pour une application web globale hautement disponible.

Définir une condition de correspondance IP

Utilisez la commande New-AzFrontDoorWafMatchConditionObject pour définir une condition de correspondance IP. Dans l’exemple suivante, remplacez ip-address-range-1, ip-address-range-2 par votre propre plage.

$IPMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable  SocketAddr `
-OperatorProperty IPMatch `
-MatchValue "ip-address-range-1", "ip-address-range-2"
-NegateCondition 1

Créer une règle d’autorisation IP personnalisée

Utilisez la commande New-AzFrontDoorWafCustomRuleObject pour définir une action et une priorité. Dans l'exemple suivant, les demandes ne provenant pas d'adresses IP clientes qui correspondent à la liste sont bloquées.

$IPAllowRule = New-AzFrontDoorWafCustomRuleObject `
-Name "IPAllowRule" `
-RuleType MatchRule `
-MatchCondition $IPMatchCondition `
-Action Block -Priority 1

Configurer une stratégie WAF

Recherchez le nom du groupe de ressources qui contient le profil Azure Front Doorà l’aide de Get-AzResourceGroup. Configurez ensuite une stratégie WAF avec la règle IP à l’aide de la commande New-AzFrontDoorWafPolicy.

  $IPAllowPolicyExamplePS = New-AzFrontDoorWafPolicy `
    -Name "IPRestrictionExamplePS" `
    -resourceGroupName <resource-group-name> `
    -Customrule $IPAllowRule`
    -Mode Prevention `
    -EnabledState Enabled

Conseil

Pour une stratégie WAF existante, vous pouvez utiliser Update-AzFrontDoorWafPolicy pour mettre à jour la stratégie.

Liez un objet de stratégie WAF à un hôte front-end existant et mettez à jour les propriétés d’Azure Front Door. Récupérez tout d’abord l’objet Azure Front Door avec la commande Get-AzFrontDoor. Définissez ensuite la propriété WebApplicationFirewallPolicyLink sur l’ID de la ressource de $IPAllowPolicyExamplePS, créée à l’étape précédente, via la commande Set-AzFrontDoor.

  $FrontDoorObjectExample = Get-AzFrontDoor `
    -ResourceGroupName <resource-group-name> `
    -Name $frontDoorName
  $FrontDoorObjectExample[0].FrontendEndpoints[0].WebApplicationFirewallPolicyLink = $IPBlockPolicy.Id
  Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

Notes

Dans cet exemple, la stratégieWAF est appliquée à FrontendEndpoints[0]. Vous pouvez lier une stratégie WAF à n’importe quel front-end en votre possession. Vous devez définir la propriété WebApplicationFirewallPolicyLink une seule fois pour lier une stratégie WAF à un front-end Azure Front Door. Les mises à jour de stratégie suivantes sont automatiquement appliquées au front-end.

Configurer une stratégie WAF avec un modèle Resource Manager

Pour afficher le modèle qui crée une stratégie Azure Front Door et WAF avec des règles de restriction IP personnalisées, rendez-vous sur GitHub.

Étapes suivantes

Découvrez comment Créer un profil Azure Front Door.