15/11/2024

Hyper-V

Hyper-V : Protection contre les DHCP malicieux avec DHCP Guard

I. Présentation

Avant de commencer, je tiens à préciser que cette option est disponible depuis Windows Server 2012.

Le service DHCP est omniprésent dans les réseaux d'entreprises afin de distribuer une configuration réseau aux postes clients et même aux serveurs. Généralement, plusieurs serveurs sont présents dans le but d'assurer la disponibilité et la stabilité du service. Ces serveurs géreront des étendues communes et se synchroniseront pour éviter tout doublon.

Imaginez maintenant qu'un serveur DHCP autre que les vôtres vient se connecter à votre réseau, il pourra distribuer des mauvaises configurations IP et cela perturbera fortement votre réseau... D'autant plus que selon le fonctionnement du protocole DHCP, un client négocie avec le premier serveur DHCP qui lui répondra donc il suffit que le serveur DHCP malicieux réponde avant le vôtre et le tour est joué.

Par ailleurs, on peut imaginer un environnement hors production où se situe une machine virtuelle de test exécutant un serveur DHCP, si celle-ci se retrouve malencontreusement connectée au réseau, les perturbations auront lieu également.

Pour cela, Hyper-V intègre une fonctionnalité nommée "DHCP Guard", en français "Protection DHCP", qui lorsqu'elle est active sur une machine virtuelle l'empêche d'envoyer des trames de type "DHCP Offer", et donc de faire une proposition de configuration IP à un client potentiel.

Comment activer cette option ? Peut-on l'activer par défaut ? Peut-on la configurer rapidement sur plusieurs machines virtuelles ? Ce tutoriel répondra à ces questions, allez on commence !

II. Activer cette option

L'option peut être définie sur chaque machine virtuelle, au cas par cas, voyons comment procéder.

Note : N'activez pas cette option sur une machine virtuelle qui est un serveur DHCP légitime, car sinon il ne pourra pas traiter la demande des clients.

Commencez par ouvrir le "Gestionnaire Hyper-V" et sélectionnez une de vos machines virtuelles qui n'a pas à envoyer de trames de type DHCP Offer, autrement dit une machine qui ne joue pas le rôle de serveur DHCP sur votre réseau.

Effectuez un clic droit sur votre machine virtuelle dans l'inventaire et cliquez sur "Paramètres", comme ceci :

dhcpguard1

Sur la gauche, cliquez sur le "+" au niveau de "Carte réseau" et sélectionnez "Fonctionnalités avancées". Ensuite, la partie de droite affiche les options avancées disponibles, vous trouverez une section nommée "Protection DHCP". Cochez la case "Activer la protection DHCP" et appliquez les paramètres. La configuration de cette VM est terminée.

dhcpguard2

Il ne reste plus qu'à recommencer l'opération sur les autres machines virtuelles sur lesquelles vous souhaitez activer cette protection.

Note : Pour activer par défaut le DHCP Guard, vous devez spécifier ce paramètre dans un template lorsque vous utilisez System Center Virtual Machine Manager.

III. Activation sur plusieurs machines

Via l'interface graphique, cela peut vite devenir long et ennuyeux d'effectuer la configuration sur chacune de vos VMs. Pour contrer cela, nous allons passer par PowerShell et quelques commandes. Commencez par ouvrir une console PowerShell et à charger le module Hyper-V :

Import-Module Hyper-v

Ensuite, on va commencer par lister l'ensemble des machines virtuelles référencées dans l'inventaire de notre serveur Hyper-V, en ajoutant une colonne qui permet de savoir l'état du paramètre DHCP Guard.

Get-VMNetworkAdapter * | ft VMName,Name,DhcpGuard

On remarque sur la copie d'écran ci-dessous, que, parmi mes 3 VMs une seule dispose d'une protection DHCP active (SRV-01).

dhcpguard3

Pour activer le DHCP Guard sur l'ensemble des machines virtuelles on utilisera (cela peut être plus intéressant de l'activer partout et de désactiver l'option sur les quelques serveurs DHCP de votre entreprise) :

Set-VMNetworkAdapter * -DhcpGuard On

À l'inverse pour le désactiver sur toutes les machines :

Set-VMNetworkAdapter * -DhcpGuard Off

Si vous souhaitez viser uniquement une ou plusieurs machines virtuelles, remplacez le signe "*" par le nom de la VM. Dans le cas où il y a plusieurs noms à préciser, séparez-les par une virgule.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.