Dernièrement, un client m’a demandé d’augmenter la sécurité de son réseau sur recommandation de l’ANSSI (Agence National de la sécurité des systèmes d’information).
J’ai donc parcouru leur recommandations que vous pouvez retrouver ici : https://cyber.gouv.fr/publications/recommandations-pour-la-securisation-dun-commutateur-de-desserte
Avant de sécuriser le DHCP, petit rappel sur son fonctionnement.
Pour communiquer, un terminal (PC ou autres) a besoin d’une adresse IP. On peut l’attribuer statiquement, dynamiquement.
C’est le protocole DHCP, ou Dynamic Host Configuration Protocol qui effectue cette fonction.
Voici son fonctionnement :
- Le PC demande à tout le monde une adresse IP.
- Le serveur DHCP lui propose une adresse IP.
- Le PC lui répond qu’il accepte
- Le serveur DHCP valide la réservation
On connaît cette échange sous le nom de DORA

Non pas cette DORA !
DORA comme Discover, Offer, Request, Acknowledge
Ci-dessous, voici un échange classique d’une attribution d’adresse IP via DHCP.

C’est comme cela qu’un PC récupère son adresse IP.
Discover (Découverte) :
Le client envoie une requête DHCP Discover en diffusion (broadcast) pour trouver un serveur DHCP disponible.
Cette requête est envoyée à l’adresse IP de diffusion 255.255.255.255.
Offer (Offre) :
Un ou plusieurs serveurs DHCP répondent au client avec une offre contenant une adresse IP, les informations de configuration réseau (masque de sous-réseau, passerelle, DNS, etc.) et une durée de bail (lease time).
Request (Demande) :
Le client sélectionne une offre (généralement la première reçue) et envoie une requête DHCP Request pour confirmer son choix et demander l’attribution de l’adresse IP proposée.
Acknowledge (Accusé de réception) :
Le serveur DHCP approuve la demande du client avec un message DHCP Acknowledge. Le client reçoit ainsi la configuration réseau complète et peut commencer à utiliser l’adresse IP.
Ok, à quoi va servir le DHCP Snooping alors ?
Le DHCP Snooping est une sécurité qui bloque les faux serveurs DHCP.
Seuls les ports marqués comme « de confiance » (Trust) peuvent envoyer des réponses DHCP (comme DHCP Offer ou DHCP ACK). Les messages venant d’autres ports sont bloqués.
Caractéristique du DHCP Snooping :
- Se configure sur chaque switch d’extrémité (Là où il y a des utilisateurs)
- Notion de port de confiance (trust) et de méfiance (untrust)
- Possibilité de limiter le nombre de paquet DHCP par interface
- Fonctionne par VLAN
- Tous les ports sont untrust par défaut.
Pour comprendre, il vaut mieux un exemple !
Voici mon lab !

De bas en haut :
- PC1 : PC qui va chercher à obtenir une adresse IP en DHCP
- ROGUE_DHCP : Serveur DHCP « Attaquant ». (
- SW1 : Switch d’accès
- SW_CORE : Switch de coeur
- DHCP : « Vrai » serveur DHCP
Fonctionnement normal (Sans DHCP Snooping)
PC1 : Je demande une IP
> sudo udhcpc eth0


Rien de plus simple, j’ai récupéré une adresse IP.
DHCP Snooping – Rogue DHCP
Voici mon IP si je redemande une IP depuis mon PC.

Je récupère l’adresse IP depuis le serveur 10.10.0.100 qui est… mon serveur Rogue DHCP !

Maintenant je vais configurer du DHCP Snooping pour s’assurer que je ne recois pas d’IP d’un serveur Rogue.
!Activation du DHCP Snooping globalement ip dhcp snooping !Activation du DHCP Snooping sur le vlan 10 ip dhcp snooping vlan 10

A partir de ce moment, le switch va bloquer les serveurs DHCP malveillant.

C’est le cas pour notre serveur « ROGUE_DHCP »
Comme je l’avais dit précédent, le switch supprime les paquets DHCP type serveurs des interfaces qui ne sont pas de « confiance ».
Le port du serveur « ROGUE_DHCP » ne dispose pas de la commande ip dhcp snooping trust, ses paquets DHCP seront supprimés.
Simple comme fonctionnalité non ?
DHCP Snooping – Trust me !
Alors oui je l’avoue, j’ai déjà fait cette bêtise à mes débuts !
Dans la partie précédente, j’ai activé le DHCP Snooping. Mais j’ai oublié de dire d’où venait les paquets DHCP de mon vrai serveur !

Croyez-moi, l’impact est violent et la panne est sournoise. Toutes nouvelles tentatives de demande d’adresse DHCP sera donc supprimé. Mais, il se peut que vous ne voyez pas le problème de suite.
Dans les entreprises, les baux DHCP peuvent être d’une durée d’un heure, d’une journée, d’une semaine. Cela veut dire que vous ne verrez le vrai impact qu’à partir de la fin du bail DHCP. (Autant faire des tests directement avant de partir )
On va donc dire d’où j’autorise les paquets DHCP. Bien évidemment, ca sera de mon lien vers le SW_CORE (mon « uplink »).
Voici la fameuse commande (A ne pas oublier)
ip dhcp snooping trust
Voici la configuration de mon « trunk » sur SW1

Si j’effectue un autre demande d’IP, je recois bien un IP du bon serveur DHCP.

Conclusion
Résumé des commandes :
!Activation du DHCP Snooping globalement ip dhcp snooping !Activation du DHCP Snooping sur le vlan 10 ip dhcp snooping vlan 10 !Trust sur mon uplink interface ethernet0/1 ip dhcp snooping trust


