l'IP DHCP Snooping
IP DHCP Snooping est une fonctionnalité de sécurité qui valide les messages DHCP et crée une base de données des associations IP-MAC fiables, prévenant ainsi les attaques DHCP comme l'usurpation d'adresse IP ou les serveurs DHCP non autorisés.
Introduction
Votre serveur DHCP subit régulièrement des attaques type DHCP Starvation (en français : famine) appelé aussi attaque DoS (Deny Of Service), vidant ainsi votre pool (plage adressage IP) de toutes ses IP. De plus les postes clients récupèrent des informations IP différentes de celle proposé par votre serveur DHCP, vous pensez donc qu’il existe un DHCP rogue sur votre LAN.
Dans un réseau informatique, l’attribution automatique d’adresses IP via le protocole DHCP est devenue indispensable pour simplifier la gestion des équipements. Cependant, ce mécanisme présente une faille importante : il peut être exploité par des attaquants à travers la mise en place de serveurs DHCP frauduleux. Ces derniers peuvent distribuer de mauvaises configurations réseau, rediriger le trafic ou encore intercepter des données sensibles.
Pour répondre à cette problématique, une fonctionnalité de sécurité appelée DHCP Snooping a été développée. Intégrée aux commutateurs réseau, elle permet de filtrer et contrôler les messages DHCP en distinguant les ports de confiance des ports non fiables. Ainsi, elle protège le réseau contre les attaques liées aux faux serveurs DHCP et garantit l’intégrité des communications.
Topologie du réseau à mettre en place
Dans ce contexte, nous allons voir en détail le fonctionnement du DHCP Snooping, son utilité, ainsi que sa mise en place dans un environnement réseau.
Nous allons protéger votre serveur DHCP des attaques DoS et de l’identifier comme seul serveur DHCP sur le LAN, laissant les rogues ainsi impuissantes. L’objectif ici n’est pas d’identifier l’hackeur mais de protéger notre serveur DHCP.
Nous allons créer une maquette afin de comprendre et configurer votre serveur DHCP de ces attaques; nous aurons besoin pour cela :
Maquette vierge pour la réalisation du tuto
L'adressage IP que nous allons utiliser seras dans le tableau ci-dessous :
| Équipement | Adresse IP | Remarque |
|---|---|---|
| PC-1 | DHCP | Configuration auto |
| PC-2 | DHCP | Configuration auto |
| Switch-B | Commmutateur | -- |
| Switch-C | Commutateur | -- |
| Serveur | 192.168.1.100/24 | Service DHCP |
| Switch-A | Commutateur | -- |
| Serveur | 172.16.10.100/16 | Hacker |
| PC-4 | DHCP | Configuration auto |
| PC-3 | DHCP | Configuration auto |
Avec la maquette mise à votre disposition, les adresse IP on été mise dans les serveurs, mais si vous voulez créer la maquette, pensez a leurs attribuer une adresse IP pour vos deux serveurs, car les pc viendront chercher leur adresse IP automatiquement.
Mise en condition d'un DHCP Snooping
La première étape sera de limiter les attaques DoS sur votre serveur DHCP. Une attaque de ce genre se traduit par une inondation de trame partant du hackeur vers le serveur. Ces trames sont créées de façon aléatoire avec des adresses mac sources différentes. Le hackeur n’a qu’à générer 254 requêtes avec 254 adresses mac sources différentes pour réussir son attaque.
Pour pallier cette attaque nous devons implémenter de la sécurité de port sur les ports d’accès de nos switch A et switch B avec les commandes suivantes :
Commande pour le Switch-B
! ── Passer en mode privilégié ─────────────────────────
Switch> enable
! ── Entrer en mode de configuration globale ───────────
Switch# configure terminal
! ── Renommer le Switch-B ───────────
Switch(config)# hostname Switch-B
! ── Section des interface FastEthernet ───────────
Switch-B(config)# inter range fastethernet 0/2-24
! ── Passage de l'interface en mode access ───────────
Switch-B(config-if-range)# switchport mode access
! ── Activation de la sécurité sur le port ───────────
Switch-B(config-if-range)# switchport port-security
! ── Configuration max de périphériques ───────────
Switch-B(config-if-range)# switchport port-security maximum 5
! ── apprentissage automatique des adresses mac ───────────
Switch-B(config-if-range)# switchport port-security mac-address sticky
Nous reproduisons les même commande pour le Switch A.
Commande pour le Switch-A
! ── Passer en mode privilégié ─────────────────────────
Switch> enable
! ── Entrer en mode de configuration globale ───────────
Switch# configure terminal
! ── Renommer le Switch-A ───────────
Switch(config)# hostname Switch-A
! ── Section des interface FastEthernet ───────────
Switch-A(config)# inter range fastethernet 0/2-24
! ── Passage de l'interface en mode access ───────────
Switch-A(config-if-range)# switchport mode access
! ── Activation de la sécurité sur le port ───────────
Switch-A(config-if-range)# switchport port-security
! ── Configuration max de périphériques ───────────
Switch-A(config-if-range)# switchport port-security maximum 5
! ── apprentissage automatique des adresses mac ───────────
Switch-A(config-if-range)# switchport port-security mac-address sticky
Si une attaque est détectée par l’un des switch configuré, l’interface du switch s’éteindra automatiquement. A vous de réactiver l’interface avec la commande suivante :
! ── Allée dans l'interface éteint ─────────────────────────
Switch(config)# interface fastethernet 0/2 (par exemple)
! ── Activer l'interface ───────────
Switch(config-if)# no shutdown
Si cela vous intéresse je vous conseil de regarder comment sécuriser un switch, mon tutos « Sécurisation des ports de Switch » qui vous donneras de plus amble renseignement, en bas de cette page.
Test d'intrusion-protection
A présent, passons la deuxième étape du tuto.
Actuellement nous avons juste empêché une attaque DoS. mais rien n’empêche un deuxième serveur DHCP de fonctionner sur le LAN. Dans la maquette packet tracer, le serveur en rouge appelé « DHCP HACK » distribue des IPs sur les PC2 et PC3. Voyons donc la configuration pour empêcher le serveur DHCP HACK de nuire sur le LAN.
Les commandes suivantes sont à réaliser sur switch-A et switch-B
! ── Passer en mode privilégié ─────────────────────────
Switch> enable
! ── Entrer en mode de configuration globale ───────────
Switch# configure terminal
! ── MEP la sécuristion ───────────
Switch(config)# ip dhcp snooping
Nous activons la sécurité du serveur DHCP.
Important : A présent plus aucune requête DHCP n’est autorisée sur le LAN. Si vous faites une demande d’adresse IP, vos PC obtiendront une adresse APIPA en 169.254.X.X/16
Nous activons la sécurité sur le VLAN 1
! ── Sécurisation du serveur ─────────────────────────
Switch(config)# ip dhcp snooping vlan 1
Nous sélectionnons l’interface 0/1, pour valider les requêtes DHCP uniquement sur ce port. Cela indique que toutes les requêtes DHCP venant de ce port sont fiables et donc autorisées à se diffuser sur les ports d’accès correspondant uniquement au VLAN 1
! ── accèder à l'interface fastEthernet 0/1 ─────────────────────────
Switch(config)# interface fastEthernet 0/1
! ── MEP des autorisations ─────────────────────────
Switch(config-if)# ip dhcp snooping trust
! ── MEP des autorisations-suite ─────────────────────────
Switch(config-if)# ip dhcp snooping limit rate 10
Pour sécuriser davantage notre serveur, nous limitons à 10 le nombre de requêtes DHCP à la seconde.
Notre Lan est à présent protégé contre les attaques DHCP mentionnées au début de ce tuto. Si nous le voulons nous pouvons nous arrêter là. Mais faire que si le Hackeur ce branche sur le switch CŒUR du réseau :
Voyons la configuration du switch CŒUR pour le protéger aussi des attaques :
! ── Passer en mode privilégié ─────────────────────────
Switch> enable
! ── Entrer en mode de configuration globale ───────────
Switch# configure terminal
! ── Configuration du DHCP Snooping ───────────
Switch(config)# ip dhcp snooping
! ── Configuration du vlan 1 pour le snooping ───────────
Switch(config)# ip dhcp snooping vlan 1
! ── Accès à l'interface fastethernet 0/3 ───────────
Switch(config)# interface ethernet 0/3
Jusque-là rien de bien surprenant, les commandes sont identiques à celles des switchs A et switch B.
Important : Notez que notre switch est bien configuré, mais que les PC0, PC1, PC2 et PC3 ne reçoivent plus les baux DHCP du serveur. De plus vous avez un beau message d’alerte :
00:11:47: %DHCP_SNOOPING-5-DHCP_SNOOPING_NONZERO_GIADDR: DHCP_SNOOPING drop message with non-zero giaddr or option82 value on untrusted port, message type: DHCP DISCOVER, MAC sa: 00D0.BC9A.E341
En terme simple, toutes les requêtes du type DHCP discover arrivant sur les ports 0/2 et 0/3 du switch CŒUR sont non-fiable (untrusted) pour être transmises sur le LAN. Elles ne sont donc pas transmises vers le serveur DHCP.
Il faut référencer les interfaces 0/1 et 0/2 comme des interfaces trust dans le réseau.
! ── Passer en mode privilégié ─────────────────────────
Switch> enable
! ── Entrer en mode de configuration globale ───────────
Switch# configure terminal
! ── configuration de l'interface ───────────
Switch(config)# interface range fastEthernet 0/1-3
! ── Sécurisation de l'interface ───────────
Switch(config-if)# ip dhcp snooping trust
Tout est bien qui finit bien, nos hôtes reçoivent les bonnes adresses IP et sont donc protégés des DHCP Rogue.
Conclusion
La mise en place du DHCP Snooping permet de sécuriser efficacement votre réseau contre deux menaces majeures : les attaques de type DHCP Starvation et la présence de serveurs DHCP frauduleux. En combinant cette fonctionnalité avec la sécurité de port, vous limitez à la fois les tentatives de saturation du serveur et l’injection de configurations réseau malveillantes.
Grâce à la notion de ports de confiance (trusted) et non fiables (untrusted), le switch devient un véritable point de contrôle, capable de filtrer intelligemment les échanges DHCP et de garantir que seul votre serveur légitime distribue des adresses IP sur le réseau.
Comme nous l’avons vu dans ce tutoriel, une mauvaise configuration peut rapidement bloquer le fonctionnement du réseau, ce qui souligne l’importance de bien comprendre le rôle de chaque commande et de tester ses configurations en environnement de maquette avant un déploiement en production.
Le DHCP Snooping constitue ainsi une première brique essentielle dans la sécurisation d’un réseau local. Pour aller plus loin, il peut être associé à d’autres mécanismes comme le Dynamic ARP Inspection (DAI) ou l’IP Source Guard, renforçant encore davantage la protection contre les attaques internes.
En appliquant ces bonnes pratiques, vous assurez non seulement la stabilité de votre réseau, mais également la sécurité des communications de vos utilisateurs.