Tutoriel : Créer une passerelle d’application avec un pare-feu d’applications web à l’aide du portail Azure

Ce tutoriel explique comment utiliser le portail Azure pour créer une passerelle d’application avec un pare-feu d’applications web (WAF). Le WAF utilise des règles OWASP pour protéger votre application. Ces règles incluent la protection contre les attaques telles que l’injection de code SQL, les attaques de script entre sites et les détournements de session. Après avoir créé la passerelle d’application, vous la testez pour vous assurer qu’elle fonctionne correctement. Avec Azure Application Gateway, vous dirigez le trafic web de votre application vers des ressources spécifiques en affectant des écouteurs à des ports, en créant des règles et en ajoutant des ressources à un pool de back-ends. Par souci de simplicité, ce tutoriel utilise une configuration simple avec une adresse IP front-end publique, un écouteur de base pour héberger un site unique sur cette passerelle d’application, deux machines virtuelles Linux utilisées pour le pool back-end et une règle de routage de demande simple.

Dans ce tutoriel, vous allez apprendre à :

  • Créer une passerelle d’application avec WAF activé
  • Créer les machines virtuelles utilisées comme serveurs principaux
  • Créer un compte de stockage et configurer des diagnostics
  • Tester la passerelle d’application

Diagramme de l’exemple de pare-feu d’applications web.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Connexion à Azure

Connectez-vous au portail Azure.

Créer une passerelle Application Gateway

  1. Sélectionnez Créer une ressource dans le menu de gauche du portail Azure. La fenêtre Nouvelle apparaît.

  2. Sélectionnez Mise en réseau, puis sélectionnez Application Gateway dans la liste Sélection.

Onglet Informations de base

  1. Sous l’onglet Informations de base, entrez ces valeurs pour les paramètres de passerelle d’application suivants :

    • Groupe de ressources : sélectionnez myResourceGroupAG comme nom de groupe de ressources. Si ce groupe n’existe pas encore, sélectionnez Créer pour le créer.

    • Nom de passerelle d’application : entrez myAppGateway comme nom de passerelle d’application.

    • Niveau : sélectionnez WAF V2.

    • Stratégie WAF : Sélectionnez Créer, entrez un nom pour la nouvelle stratégie, puis sélectionnez OK. Cela crée une stratégie WAF de base avec un ensemble de règles managé de base.

      Capture d’écran de l’onglet De base de la page de création d’une passerelle d’application.

  2. Azure a besoin d’un réseau virtuel pour communiquer avec les différentes ressources que vous créez. Vous pouvez créer un réseau virtuel ou en utiliser un. Dans cet exemple, vous allez créer un réseau virtuel en même temps que la passerelle d’application. Les instances Application Gateway sont créées dans des sous-réseaux séparés. Vous créez deux sous-réseaux dans cet exemple : un pour la passerelle d’application et un autre pour les serveurs back-end.

    Sous Configurer le réseau virtuel, sélectionnez Créer pour créer un réseau virtuel. Dans la fenêtre Créer un réseau virtuel qui s’ouvre, entrez les valeurs suivantes pour créer le réseau virtuel et deux sous-réseaux :

    • Name : entrez myVNet comme nom de réseau virtuel.

    • Nom de sous-réseau (sous-réseau Application Gateway) : La grille Sous-réseaux affiche un sous-réseau nommé Par défaut. Remplacez le nom de ce sous-réseau par myAGSubnet.
      Le sous-réseau de passerelle d’application peut contenir uniquement des passerelles d’application. Aucune autre ressource n’est autorisée.

    • Nom de sous-réseau (sous-réseau de serveur principal) : Dans la deuxième ligne de la grille Sous-réseaux, entrez myBackendSubnet dans la colonne Nom de sous-réseau.

    • Plage d’adresses (sous-réseau de serveur principal) : Dans la deuxième ligne de la grille Sous-réseaux, entrez une plage d’adresses qui ne chevauche pas la plage d’adresses de myAGSubnet. Par exemple, si la plage d'adresses de myAGSubnet est 10.21.0.0/24, entrez 10.21.1.0/24 pour la plage d'adresses de myBackendSubnet.

    Sélectionnez OK pour fermer la fenêtre Créer un réseau virtuel et enregistrez les paramètres du réseau virtuel.

    Capture d’écran de La création d’une passerelle applicative : Créer un réseau virtuel.

  3. Sous l’onglet Informations de base, acceptez les valeurs par défaut des autres paramètres, puis sélectionnez Suivant : Serveurs frontaux.

Onglet Front-ends

  1. Sous l’onglet Front-ends, vérifiez que Type d’adresse IP de front-end est défini sur Publique.
    Vous pouvez configurer l’adresse IP front-end en la définissant sur Publique ou Les deux conformément à votre cas d’usage. Dans cet exemple, vous allez choisir une adresse IP front-end publique.

    Notes

    Pour la référence SKU Application Gateway v2, les types d’adresses IP front-end Publique et Les deux sont pris en charge. La configuration d’adresse IP front-end Privée n’est pas prise en charge.

  2. Choisissez Ajouter nouveau pour Adresse IP publique, entrez myAGPublicIPAddress comme nom d’adresse IP publique, puis sélectionnez OK.

    Capture d’écran de la création d’une passerelle applicative : Front-ends.

  3. Sélectionnez Suivant : Back-ends.

Onglet Back-ends

Le pool de back-ends est utilisé pour router les demandes vers les serveurs back-end qui les traitent. Les pools back-end peuvent être composés de cartes d’interface réseau, de groupes de machines virtuelles identiques, d’adresses IP publiques, d’adresses IP internes, de noms de domaine complets et de serveurs back-end multi-locataires comme Azure App Service. Dans cet exemple, vous allez créer un pool de back-ends vide avec votre passerelle d’application, puis ajouter des cibles de back-end à ce pool.

  1. Sous l’onglet Backends, sélectionnez Ajouter un pool de back-ends.

  2. Dans la fenêtre Ajouter un pool de back-ends qui s’ouvre, entrez les valeurs suivantes pour créer un pool de back-ends vide :

    • Name : Entrez myBackendPool comme nom du pool de back-ends.
    • Ajouter un pool backend sans cible : Sélectionnez Oui pour créer un pool de back-ends sans cible. Vous ajouterez des cibles de back-end après avoir créé la passerelle d’application.
  3. Dans la fenêtre Ajouter un pool de back-ends, sélectionnez Ajouter pour enregistrer la configuration du pool de back-ends et revenir à l’onglet Back-ends.

    Capture d’écran de la création d’une passerelle applicative : Back-ends.

  4. Sous l’onglet Back-ends, sélectionnez Suivant : Configuration.

Onglet Configuration

Sous l’onglet Configuration, vous allez connecter le front-end et le pool de back-ends que vous avez créés à l’aide d’une règle de routage.

  1. Sélectionnez Ajouter une règle de routage dans la colonne Règles de routage.

  2. Dans la fenêtre Ajouter une règle de routage qui s’ouvre, entrez myRoutingRule pour Nom de la règle.

  3. Pour Priorité, entrez un numéro de priorité.

  4. Une règle de routage requiert un écouteur. Sous l’onglet Écouteur dans la fenêtre Ajouter une règle de routage, entrez les valeurs suivantes pour l’écouteur :

    • Nom de l’écouteur : Entrez myListener comme nom pour l’écouteur.

    • Adresse IP du front-end : Sélectionnez Publique pour choisir l’adresse IP publique que vous avez créée pour le front-end.

      Acceptez les valeurs par défaut pour les autres paramètres sous l’onglet Écouteur, puis sélectionnez l’onglet Cibles de back-end pour configurer le reste de la règle de routage.

    Capture d’écran montrant la page Créer une passerelle Application Gateway : écouteur.

  5. Sous l’onglet Cibles de back-end, sélectionnez myBackendPool pour la Cible de back-end.

  6. Pour les Paramètres de back-end, sélectionnez Ajouter nouveau pour créer un paramètre de back-end. Ce paramètre détermine le comportement de la règle de routage. Dans la fenêtre Ajouter un paramètre de back-end qui s’ouvre, entrez myBackendSetting pour Nom des paramètres de back-end. Acceptez les valeurs par défaut pour les autres paramètres de la fenêtre, puis sélectionnez Ajouter pour revenir à la fenêtre Ajouter une règle de routage.

    Capture d’écran montrant la page Créer une passerelle Application Gateway, paramétrage Backend.

  7. Dans la fenêtre Ajouter une règle de routage, sélectionnez Ajouter pour enregistrer la règle de routage et revenir à l’onglet Configuration.

    Capture d’écran montrant la page Créer une passerelle Application Gateway : règle d’acheminement.

  8. Sélectionnez Suivant : Balises, puis sur Suivant : Vérifier + créer.

Onglet Vérifier + créer

Examinez les paramètres sous l’onglet Vérifier + créer, puis sélectionnez Créer pour créer le réseau virtuel, l’adresse IP publique et la passerelle d’application. La création de la passerelle d’application par Azure peut prendre plusieurs minutes.

Patientez jusqu’à ce que le déploiement soit terminé avant de passer à la section suivante.

Ajouter des cibles de back-end

Dans cet exemple, vous allez utiliser des machines virtuelles comme back-end cible. Vous pouvez utiliser des machines virtuelles existantes ou en créer de nouvelles. Vous allez créer deux machines virtuelles qu’Azure va utiliser comme serveurs back-end pour la passerelle d’application.

Pour ce faire, vous allez effectuer les opérations suivantes :

  1. Créez deux machines virtuelles Linux, myVM et myVM2, à utiliser comme serveurs back-end.
  2. Installer NGINX sur les machines virtuelles pour vérifier que la passerelle d’application a bien été créée.
  3. Ajoutez les serveurs principaux au pool principal.

Création d'une machine virtuelle

  1. Dans le portail Azure, sélectionnez Créer une ressource. La fenêtre Créer une ressource apparaît.

  2. Sous Machine virtuelle, sélectionnez Créer.

  3. Sous l’onglet De base, entrez ces valeurs pour les paramètres de machine virtuelle suivants :

    • Groupe de ressources : sélectionnez myResourceGroupAG comme nom de groupe de ressources.
    • Nom de la machine virtuelle : entrez myVM comme nom de machine virtuelle.
    • Image : Ubuntu Server 20.04 LTS - Gen2
    • Type d’authentification : Mot de passe
    • Nom d’utilisateur : Entrez un nom d’utilisateur administrateur.
    • Mot de passe : Entrez un mot de passe comme mot de passe d’administrateur.
    • Ports d'entrée publics : sélectionnez Aucun.
  4. Acceptez les autres valeurs par défaut, puis sélectionnez Suivant : Disques.

  5. Acceptez les valeurs par défaut sous l’onglet Disques, puis sélectionnez Suivant : Mise en réseau.

  6. Sous l’onglet Mise en réseau, vérifiez que myVNet est sélectionné comme Réseau virtuel et que Sous-réseau est défini sur myBackendSubnet.

  7. Pour Adresse IP publique, sélectionnez Aucune.

  8. Acceptez les autres valeurs par défaut, puis sélectionnez Suivant : Gestion.

  9. Sélectionnez Suivant : Supervision, puis définissez les Diagnostics de démarrage sur Désactiver. Acceptez les autres valeurs par défaut, puis sélectionnez Vérifier + créer.

  10. Sous l’onglet Vérifier + créer, passez en revue les paramètres, corrigez les éventuelles erreurs de validation et sélectionnez Créer.

  11. Attendez la fin de la création de la machine virtuelle avant de continuer.

Installer NGINX à des fins de test

Dans cet exemple, vous allez installer NGINX sur les machines virtuelles uniquement pour vérifier si Azure a bien créé la passerelle d’application.

  1. Ouvrez un Cloud Shell Bash. Pour ce faire, sélectionnez l’icône Cloud Shell dans la barre de navigation supérieure du portail Azure, puis sélectionnez Bash dans la liste déroulante.

    Capture d’écran montrant le Cloud Shell Bash.

  2. Exécutez la commande suivante pour installer NGINX sur la machine virtuelle :

     az vm extension set \
     --publisher Microsoft.Azure.Extensions \
     --version 2.0 \
     --name CustomScript \
     --resource-group myResourceGroupAG \
     --vm-name myVM \
     --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
    
  3. Créez une deuxième machine virtuelle et installez NGINX en suivant les mêmes étapes que vous avez effectuées précédemment. Utilisez myVM2 comme nom de machine virtuelle et comme paramètre --vm-name de la cmdlet.

Ajouter des serveurs principaux pour le pool principal

  1. Sélectionnez Toutes les ressources, puis myAppGateway.

  2. Sélectionnez Pools principaux dans le menu de gauche.

  3. Sélectionnez MyBackendPool.

  4. Sous Type de cible, sélectionnez Machine virtuelle dans la liste déroulante.

  5. Sous Cible, sélectionnez l’interface réseau associée pour myVM dans la liste déroulante.

  6. Répétez l’opération pour myVM2.

    Ajouter des serveurs principaux

  7. Sélectionnez Enregistrer.

  8. Attendez que le déploiement se termine avant de passer à l’étape suivante.

Tester la passerelle d’application

Même si NGINX n’est pas nécessaire pour créer la passerelle d’application, vous l’avez installé pour vérifier qu’Azure avait bien créé la passerelle d’application. Utilisez le service web pour tester la passerelle Application Gateway :

  1. Recherchez l’adresse IP publique de la passerelle d’application dans la page Vue d’ensemble correspondante. Capture d’écran de l’adresse IP publique Application Gateway dans la page Vue d’ensemble.

    Vous pouvez aussi sélectionner Toutes les ressources, entrer myAGPublicIPAddress dans la zone de recherche, puis la sélectionner dans les résultats de la recherche. Azure affiche l’adresse IP publique dans la page Vue d’ensemble.

  2. Copiez l’adresse IP publique, puis collez-la dans la barre d’adresses de votre navigateur.

  3. Vérifiez la réponse. Une réponse valide vérifie que la passerelle d’application a bien été créée avec succès et qu’elle est capable de se connecter au back-end.

    Capture d’écran du test de la passerelle applicative.

Nettoyer les ressources

Quand vous n’avez plus besoin des ressources que vous avez créées avec la passerelle d’application, supprimez le groupe de ressources. En supprimant le groupe de ressources, vous supprimez aussi la passerelle d’application et toutes ses ressources associées.

Pour supprimer le groupe de ressources :

  1. Dans le menu de gauche du portail Azure, sélectionnez Groupes de ressources.
  2. Dans la page Groupes de ressources, recherchez myResourceGroupAG dans la liste, puis sélectionnez ce groupe de ressources.
  3. Dans la page Groupe de ressources, sélectionnez Supprimer le groupe de ressources.
  4. Entrez myResourceGroupAG dans TYPE THE RESOURCE GROUP NAME, puis sélectionnez Supprimer.

Étapes suivantes