Configurer le port mirroring sous Hyper-V
Sommaire
I. Présentation
Le port mirroring est une fonctionnalité que l'on retrouve sur les switchs manageables (Cisco, HP, TP-Link, Netgear, etc...) et qui permet de superviser le trafic réseau, que ce soit pour analyser un flux réseau suspect ou diagnostiquer un problème réseau. Plus précisément, cette fonctionnalité permet de dupliquer le trafic d'un port Ethernet source vers un port Ethernet de destination.
Dans le cadre de la virtualisation, la première couche du réseau est virtuelle puisqu'elle est effectuée au niveau des commutateurs virtuels - vSwitch. Dans ce tutoriel, sous Hyper-V, nous allons voir comment récupérer le trafic réseau d'une VM pour l'analyser au sein d'une autre VM, avec WireShark.
Retrouvez ce tutoriel en version vidéo sur notre chaîne YouTube :
II. Architecture
Pour ce tutoriel, je vais utiliser un hôte Hyper-V (FloServer01) ainsi que deux VM :
- ADDS-01 : Sera définie comme source pour le port mirroring, c'est à dire que c'est le trafic de cette VM que nous allons copier vers une autre VM pour l'analyser
- W10-32-01 : Sera définie comme destination pour le port mirroring, c'est cette VM qui sera équipée de WireShark pour analyser les flux réseau de la machine ADDS-01
III. Configurer le port mirroring sur Hyper-V
Sur l'hôte Hyper-V, ouvrez le gestionnaire Hyper-V. Sur la machine virtuelle de destination du port mirroring, W10-32-01 pour ma part, effectuez un clic droit puis "Paramètres".
Sur la gauche, au niveau de la carte réseau, cliquez sur le "+" et ensuite sur "Fonctionnalités avancées". Sur la partie de droite, descendez jusqu'à la section "Mise en miroir de ports" et à la place de "Aucun" indiquez "Destination".
Validez et recommencez l'opération pour la VM source, pour ma part ADDS-01 afin de la définir comme source pour le port mirroring.
Plusieurs remarques :
- Il n'y a pas d'ordre dans l'attribution des rôles pour le port mirroring
- Plusieurs VM peuvent être définies en source et le trafic récupéré vers la même VM de destination
IV. Vérifier le bon fonctionnement
Sur la VM qui sert à analyser le trafic, exécutez Wireshark en tant qu'administrateur (après l'avoir installé...). Ceci est important pour que la carte réseau de la VM remonte dans Wireshark.
Double cliquez sur "Ethernet" pour démarrer la capture du flux sur la carte réseau ayant ce nom.
Dans la zone de saisie à côté du champs "en utilisant ce filtre", on pourrait spécifier "icmp" pour afficher uniquement les flux ICMP uniquement. Comme je suis connecté en bureau à distance sur la VM (port 3389), je pense que c'est pour ça que Wireshark exclu par défaut le port 3389 avec le filtre "not port 3389".
La capture tourne... On va aller maintenant sur l'hôte source pour simuler du trafic. On va tout simplement faire un ping vers l'hyperviseur (mais ça pourrait être vers un hôte externe à l'hyperviseur).
Si l'on retourne ensuite sur le Wireshark et, que l'on indique le filtre "icmp" dans la zone du filtre pour réduire la liste de paquets capturés, on remarque qu'il y a eu des paquets ICMP échangés.
Ces paquets ICMP sont échangés entre l'IP 192.168.1.149 et 192.168.1.160, ce qui correspond respectivement à FloServer01 et ADDS-01, alors que je me situe sur W10-32-01. Conclusion : le port mirroring fonctionne !
Voici un autre exemple de capture avec Wireshark, toujours avec la même VM, mais cette fois-ci avec 2 VM définies comme source pour le port mirroring.
Enfin, pour terminer ce tutoriel, sachez qu'il est possible de configurer le port mirroring via PowerShell, par le commandlet "Set-VMNetworkAdapter". Il permet de modifier les propriétés de l'adaptateur réseau d'une VM et il contient un paramètre nommé "PortMirroring" qui accepte les valeurs suivantes : None, Source, Destination
Voici ce que ça donnerait pour refaire la même configuration que dans ce tutoriel :
Set-VMNetworkAdapter –VMName ADDS-01 –PortMirroring Source Set-VMNetworkAdapter –VMName W10-32-01 –PortMirroring Destination
A vous de jouer ! 🙂