Sécuriser le trafic destiné aux points de terminaison privés dans Azure Virtual WAN
Notes
Cet article s’applique uniquement au hub virtuel sécurisé. Si vous souhaitez inspecter le trafic destiné à des points de terminaison privés à l’aide du Pare-feu Azure dans un réseau virtuel de hub, consultez Utiliser le Pare-feu Azure pour inspecter le trafic destiné à un point de terminaison privé.
Le point de terminaison privé Azure est le composant fondamental d’Azure Private Link. Les points de terminaison privés permettent aux ressources Azure déployées dans un réseau virtuel de communiquer en privé avec des ressources de liaisons privées.
Les points de terminaison privés permettent aux ressources d’accéder au service de liaison privée déployé dans un réseau virtuel. L’accès au point de terminaison privé via l’appairage de réseaux virtuels et les connexions réseau locales permettent d’étendre la connectivité.
Vous devrez peut-être filtrer le trafic des clients localement ou dans Azure destiné aux services exposés via des points de terminaison privés dans un réseau Virtual WAN connecté. Cet article vous guide tout au long de cette tâche en utilisant un hub virtuel sécurisé avec le service Pare-feu Azure comme fournisseur de sécurité.
Le service Pare-feu Azure filtre le trafic en utilisant l’une de ces méthodes :
- Nom de domaine complet dans les règles de réseau pour les protocoles TCP et UDP
- Nom de domaine complet dans les règles d’application pour HTTP, HTTPS et MSSQL.
- Adresses IP source et de destination, port et protocole utilisant les règles de réseau
Les règles d’application sont préférées aux règles réseau pour inspecter le trafic destiné aux points de terminaison privés, car le Pare-feu Azure achemine toujours le trafic SNAT avec des règles d’application. SNAT est recommandé lors de l’inspection du trafic destiné à un point de terminaison privé en raison de la limitation décrite ici : Qu’est-ce qu’un point de terminaison privé ?. Si vous envisagez d’utiliser des règles réseau à la place, il est recommandé de configurer le Pare-feu Azure pour toujours effectuer SNAT : plages d’adresses IP privées SNAT du Pare-feu Azure.
Microsoft gère des hubs virtuels sécurisés, qui ne peuvent pas être liés à une zone DNS privée. Cela est nécessaire pour résoudre le nom de domaine complet (ou « FQDN ») d’une ressource de lien privé vers l’adresse IP correspondant à son point de terminaison privé.
Le filtrage FQDN SQL est pris en charge uniquement en mode proxy (port 1433). Le mode proxy peut entraîner une plus grande latence par rapport au mode de redirection. Si vous souhaitez continuer à utiliser le mode de redirection, qui est le mode par défaut pour les clients se connectant dans Azure, vous pouvez filtrer l’accès en utilisant le nom de domaine complet dans les règles de réseau du pare-feu.
Filtrer le trafic à l’aide de règles réseau ou d’application dans Pare-feu Azure
Les étapes suivantes permettent à Pare-feu Azure de filtrer le trafic à l’aide de règles réseau (FQDN ou basées sur une adresse IP) ou de règles d’application :
Règles réseau :
Déployez une machine virtuelle de redirecteur DNS dans un réseau virtuel connecté au hub virtuel sécurisé et lié aux zones de DNS privé hébergeant les types d’enregistrements A pour les points de terminaison privés.
Configurez des serveurs DNS personnalisés pour les réseaux virtuels connectés au hub virtuel sécurisé :
- Règles réseau basées sur FQDN : Configurez des paramètres DNS personnalisés pour pointer vers l’adresse IP de la machine virtuelle du redirecteur DNS et activez le proxy DNS dans la stratégie de pare-feu associée au Pare-feu Azure. L’activation du proxy DNS est requise si vous souhaitez effectuer un filtrage de nom de domaine complet dans les règles réseau.
- Règles réseau basées sur l’adresse IP : Les paramètres DNS personnalisés décrits au point précédent sont facultatifs. Vous pouvez configurer les serveurs DNS personnalisés pour qu’ils pointent vers l’adresse IP privée de la machine virtuelle du redirecteur DNS.
Selon la configuration choisie à l’étape 2, configurez des serveurs DNS locaux pour transférer des requêtes DNS pour les zones DNS publiques des points de terminaison privés à l’adresse IP privée du Pare-feu Azure ou à la machine virtuelle du redirecteur DNS.
Configurez une règle réseau en fonction des besoins dans la stratégie de pare-feu associée au Pare-feu Azure. Choisissez Type de destination Adresses IP si vous utilisez une règle basée sur une adresse IP et configurez l’adresse IP du point de terminaison privé en tant que Destination. Pour les règles réseau basées sur FQDN, choisissez Type de destination FQDN et configurez le nom de domaine complet public de la ressource de liaison privée en tant que Destination.
Accédez à la stratégie de pare-feu associée au Pare-feu Azure déployé dans le hub virtuel sécurisé. Sélectionnez Plages d’adresses IP privées (SNAT) et sélectionnez l’option Toujours effectuer SNAT.
Règles d’application :
Pour les règles d’application, les étapes 1 à 3 de la section précédente s’appliquent toujours. Pour la configuration de serveur DNS personnalisée, vous pouvez choisir d’utiliser le Pare-feu Azure comme proxy DNS ou pointer directement vers la machine virtuelle du redirecteur DNS.
Configurez une règle d’application en fonction des besoins dans la stratégie de pare-feu associée au Pare-feu Azure. Choisissez Type de destination FQDN et le nom de domaine complet public de la ressource de liaison privée comme Destination.
Enfin, quel que soit le type de règles configuré dans le Pare-feu Azure, assurez-vous que les Stratégies réseau (au moins pour la prise en charge de l’UDR) sont activées dans le ou les sous-réseaux où les points de terminaison privés sont déployés. Cela garantit que le trafic destiné aux points de terminaison privés ne contourne pas le Pare-feu Azure.
Important
Par défaut, les préfixes RFC 1918 sont automatiquement inclus dans les Préfixes de trafic privé du Pare-feu Azure. Pour la plupart des points de terminaison privés, cela sera suffisant pour s’assurer que le trafic provenant de clients locaux ou de réseaux virtuels différents connectés au même hub sécurisé sera inspecté par le pare-feu. Si le trafic destiné aux points de terminaison privés n’est pas enregistré dans le pare-feu, essayez d’ajouter le préfixe /32 pour chaque point de terminaison privé à la liste des Préfixes de trafic privé.
Si nécessaire, vous pouvez modifier les préfixes CIDR qui sont inspectés via le Pare-feu Azure dans un hub sécurisé comme suit :
Dans la stratégie de pare-feu associée au service Pare-feu Azure déployé dans le hub virtuel sécurisé, accédez à Hubs virtuels sécurisés et sélectionnez le hub virtuel sécurisé où le filtrage du trafic destiné aux points de terminaison privés est configuré.
Accédez à Configuration de la sécurité, puis sous Trafic Privé, sélectionnez Envoyer via le Pare-feu Azure.
Sélectionnez Préfixes de trafic privé pour modifier les préfixes CIDR à inspecter via le Pare-feu Azure dans le hub virtuel sécurisé et ajoutez un préfixe /32 pour chaque point de terminaison privé.
Pour inspecter le trafic des clients dans le même réseau virtuel que les points de terminaison privés, il n’est pas nécessaire de remplacer spécifiquement les itinéraires /32 à partir de points de terminaison privés. Tant que les stratégies réseau sont activées dans les sous-réseaux de points de terminaison privés, un itinéraire UDR avec une plage d’adresses plus large est prioritaire. Par exemple, configurez cette UDR avec le Type de tronçon suivant défini sur Appliance virtuelle, l’Adresse du tronçon suivant définie sur l’adresse IP privée du Pare-feu Azure et la destination du Préfixe d’adresse définie sur le sous-réseau dédié à tous les points de terminaison privés déployés dans le réseau virtuel. Le paramètre Propager des itinéraires de passerelle doit être défini sur Oui.
Le diagramme suivant illustre les flux du DNS et des trafics de données des différents clients qui se connectent à un point de terminaison privé déployé dans un réseau Azure Virtual WAN :
Dépannage
Voici les principaux problèmes que vous pouvez rencontrer lorsque vous tentez de filtrer le trafic destiné à des points de terminaison privés via un hub virtuel sécurisé :
Les clients ne parviennent pas à se connecter aux points de terminaison privés.
Le service Pare-feu Azure est contourné. Vous pouvez confirmer ce symptôme par l’absence d’entrées du journal des règles d’application ou de réseau dans le service Pare-feu Azure.
Généralement, l’un des problèmes suivants provoquent ces situations :
une résolution de noms DNS incorrecte, ou ;
une configuration du routage incorrecte.
Résolution de noms DNS incorrecte
Vérifiez que les serveurs DNS du réseau virtuel sont définis sur Personnalisé et que l’adresse IP est l’adresse IP privée du service Pare-feu Azure dans le hub virtuel sécurisé.
Azure CLI :
az network vnet show --name <VNET Name> --resource-group <Resource Group Name> --query "dhcpOptions.dnsServers"
Vérifiez que les clients situés dans le même réseau virtuel que l’ordinateur virtuel redirecteur DNS peuvent résoudre le nom de domaine complet public du point de terminaison privé en son adresse IP privée correspondante en interrogeant directement la machine virtuelle configurée en tant que redirecteur DNS.
Linux :
dig @<DNS forwarder VM IP address> <Private endpoint public FQDN>
Inspectez les entrées du journal du service Pare-feu Azure AzureFirewallDNSProxy et validez qu’il peut recevoir et résoudre les requêtes DNS des clients.
AzureDiagnostics | where Category contains "DNS" | where msg_s contains "database.windows.net"
Vérifiez que le paramètre Proxy DNS a été activé et qu’un serveur DNS Personnalisé pointant vers l’adresse IP de la machine virtuelle agissant en tant que redirecteur DNS d’adresse IP a été configuré dans la stratégie de pare-feu associée au service Pare-feu Azure dans le hub virtuel sécurisé.
Azure CLI :
az network firewall policy show --name <Firewall Policy> --resource-group <Resource Group Name> --query dnsSettings
Configuration du routage incorrecte
Dans la stratégie de pare-feu associée au service Pare-feu Azure déployé dans le hub virtuel sécurisé, vérifiez le paramètre Configuration de la sécurité. Assurez-vous que la colonne TRAFIC PRIVÉ affiche la valeur Sécurisé par le service Pare-feu Azure pour chaque connexion de réseau virtuel et de branche dont vous souhaitez filtrer le trafic.
Dans la stratégie de pare-feu associée au service Pare-feu Azure déployé dans le hub virtuel sécurisé, vérifiez le paramètre Configuration de la sécurité. Si le trafic destiné aux points de terminaison privés n’est pas enregistré dans le pare-feu, essayez d’ajouter le préfixe /32 pour chaque point de terminaison privé à la liste des préfixes de trafic privé.
Dans le hub virtuel sécurisé sous Virtual WAN, examinez les itinéraires effectifs des tables de routage associées aux connexions de réseaux virtuels et de branches dont vous souhaitez filtrer le trafic. Si des entrées /32 ont été ajoutées pour chaque point de terminaison privé pour lequel vous souhaitez inspecter le trafic, assurez-vous qu’elles sont répertoriées dans les itinéraires effectifs.
Inspectez les itinéraires effectifs sur les cartes réseau jointes aux machines virtuelles déployées dans les réseaux virtuels dont vous souhaitez filtrer le trafic. Assurez-vous qu’il existe des entrées /32 pour chaque adresse IP privée de point de terminaison privé dont vous souhaitez filtrer le trafic (si ajouté).
Azure CLI :
az network nic show-effective-route-table --name <Network Interface Name> --resource-group <Resource Group Name> -o table
Examinez les tables de routage de vos appareils de routage locaux. Notez les espaces d’adressage des réseaux virtuels sur lesquels les points de terminaison privés sont déployés.
Azure Virtual WAN ne publie pas les préfixes configurés sous Préfixes de trafic privé dans le paramètre Configuration de la sécurité de la stratégie de pare-feu pour le local. Il est prévu que les entrées /32 ne s’affichent pas dans les tables de routage de vos appareils de routage locaux.
Inspectez les journaux du service Pare-feu Azure AzureFirewallApplicationRule et AzureFirewallNetworkRule. Assurez-vous que le trafic destiné aux points de terminaison privés est journalisé.
Les entrées de journal AzureFirewallNetworkRule n’incluent pas d’informations sur le nom de domaine complet. Lorsque vous inspectez les règles de réseau, filtrez les résultats par adresse IP et par port.
Lors du filtrage du trafic destiné aux points de terminaison privés Azure Files, les entrées de journal AzureFirewallNetworkRule sont générées uniquement quand un client monte le partage de fichiers ou s’y connecte pour la première fois. Le service Pare-feu Azure ne génère pas de journaux pour les opérations CRUD pour les fichiers dans le partage de fichiers. Cela est dû au fait que les opérations CRUD sont effectuées sur le canal TCP persistant ouvert lorsque le client monte le partage de fichiers ou s’y connecte pour la première fois.
Exemple de requête de journal de règle d’application :
AzureDiagnostics | where msg_s contains "database.windows.net" | where Category contains "ApplicationRule"