CCNA 200-301 · Sécurité

Le DHCP Snooping

Protéger l’architecture DHCP contre les serveurs pirates en classant les ports en TRUST et UNTRUST.

Introduction

Bonjour à tous !

Le but de cet article est de protéger notre architecture du point de vue DHCP. Et ce grâce au DHCP Snooping !

  • DHCP = Dynamic Host Configuration Protocol
  • Snooping = Traduction : Espionnage

Rappel DHCP

En théorie

Le protocole DHCP permet d’attribuer dynamiquement une adresse IP à un hôte.
Le DHCP permet à un client qui arrive sur un réseau de demander une configuration réseau dynamique.

Cette configuration va contenir :

  • Une adresse IP.
  • Un masque de sous-réseau.
  • Une passerelle par défaut.
  • Un ou plusieurs serveurs DNS.

Comment cela se passe ?

  • Le client = DHCP DISCOVER : Salut tout le monde ! J’ai besoin d’une adresse IP !
  • Le serveur = DHCP OFFER : Salut mec ! Voilà ton adresse IP 😉
  • Le client = DHCP REQUEST : Merci !!! Je la prends. 😉
  • Le serveur = DHCP ACK : C’est noté !
Échanges DHCP
Échanges DHCP

NB : il existe plusieurs cas de figure.

Quand un client demande pour la première fois une adresse IP :

  • DHCP Discover – Broadcast.
  • DHCP Offer – Broadcast.
  • DHCP Request – Broadcast.
  • DHCP ACK – Broadcast.

Quand notre client possède déjà un bail DHCP mais demande une mise à jour :

  • DHCP Discover – Broadcast.
  • DHCP Offer – Unicast.
  • DHCP Request – Broadcast.
  • DHCP ACK – Unicast.

Pour la suite du cours, nous allons considérer que notre client fait une demande de renouvellement de bail DHCP.

En pratique

Au sein de notre entreprise, nos clients sont en DHCP.
Pour obtenir une adresse IP, notre client va envoyer un broadcast DHCP DISCOVER.
Ce broadcast va se propager dans tout notre réseau.

DHCP Discover - Broadcast
DHCP Discover – Broadcast

Lorsque le serveur DHCP reçoit ce DHCP DISCOVER, il va envoyer une trame DHCP OFFER en Unicast afin de fournir une adresse IP au client.

DHCP Offer - Unicast
DHCP Offer – Unicast

Notre client va prendre en compte uniquement le premier serveur DHCP qui lui répond !

DHCP Spoofing vs DHCP Snooping

Le DHCP Spoofing

Le DHCP Spoofing consiste à donner de mauvaises informations DHCP à nos clients.

Traduction : Spoofing = Faire des blagues, parodier.

Ces informations peuvent provenir d’une personne mal intentionnée (pirate) ou d’un client qui a décidé de mettre un équipement sur le réseau sans savoir que ce dernier agissait comme serveur DHCP (box Internet).

Comment cela se passe :

DHCP DISCOVER intercepté par le pirate
Le PC01 lance un Broadcast DHCP DISCOVER afin de trouver un serveur DHCP sur le réseau. Le Pirate reçoit ce broadcast avant le serveur DHCP officiel.
Le pirate répond avec un DHCP OFFER
Le Pirate répond au DHCP DISCOVER avec un DHCP OFFER. Le serveur DHCP officiel vient tout juste de recevoir le broadcast émis par le client.
Le client prend les informations du pirate
Notre client reçoit le DHCP OFFER du pirate avant le DHCP OFFER du serveur DHCP officiel. Notre client va donc prendre ses informations du Pirate…

Comment se protéger du DHCP SPOOFING ? Grâce au DHCP SNOOPING.

Le DHCP Snooping

Afin de nous protéger du DHCP SPOOFING, nous allons mettre nos ports réseau dans deux types de catégories :

  • La catégorie TRUST (port de confiance)
  • La catégorie UNTRUST (port douteux)

Lorsque nous activons le DHCP Snooping, tous nos ports sont considérés comme UNTRUST. Nous allons mettre nos ports d’interconnexion ainsi que nos ports vers nos serveurs en TRUST et laisser tous les ports clients en mode UNTRUST. Que se passe-t-il lorsque notre port se retrouve dans l’un de ces deux états ?

  • TRUST = Autorise la réception de trame DHCP OFFER sur ce port
  • UNTRUST = Refuse les trames DHCP OFFER sur ce port

Où mettre en place le DHCP Snooping ?

Il faut activer le DHCP Snooping :

  • Sur tous vos équipements réseau présents dans le domaine de broadcast de vos clients.

Dans cette architecture, nos interfaces Vlans sont sur les switchs de la partie CORE. Le domaine de broadcast de vos clients va jusqu’à la partie CORE.

Nous avons donc :

  • Le DHCP Snooping activé sur tous les switchs (L2 et L3) de notre architecture.
  • Tous nos ports trunk sont en mode TRUST
  • Tous nos ports vers un serveur DHCP sont en mode TRUST
  • Les autres ports sont par défaut en mode UNTRUST.

Dans le cas où vous avez configuré un serveur DHCP sur un switch, ce dernier émettra ses trames via ses ports Trunk. Tous les ports Trunk de notre architecture sont en mode TRUST donc parfait. 🙂

TRUST = Liens Trunk + Serveurs DHCP / UNTRUST = le reste
TRUST = Liens Trunk + Serveurs DHCP / UNTRUST = le reste de nos interfaces

Configuration du DHCP Snooping

Scénario

Architecture du scénario DHCP Snooping

Une fois activé, le DHCP Snooping considère que tous ses ports sont UNTRUST.
Nous allons passer des ports en TRUST afin de faire fonctionner notre topologie DHCP.

Nous allons donc :

  • Activer le DHCP Snooping
  • Passer en TRUST les ports d’interconnexion
  • Passer en TRUST les ports de nos serveurs DHCP

Configuration du SWITCH 1

SW01(config)# ip dhcp snooping SW01(config)# ip dhcp snooping vlan 10 SW01(config)# interface GigaBitEthernet 0/1 SW01(config-if)# description VERS_SW02 SW01(config-if)# switchport mode trunk SW01(config-if)# ip dhcp snooping trust SW01(config)# interface FastEthernet 0/1 SW01(config-if)# description SERVEUR_DHCP SW01(config-if)# switchport mode access SW01(config-if)# switchport access vlan 10 SW01(config-if)# ip dhcp snooping trust
  • ip dhcp snooping = Activation du DHCP Snooping sur l’équipement.
  • ip dhcp snooping trust = L’interface devient TRUST.
  • ip dhcp snooping limit rate = nombre max de trames DHCP par seconde.

Attention ! Une interface Vlan reste une interface ! Il faudra donc mettre nos interfaces Vlan également en TRUST, surtout si nous utilisons un ip helper-address !

Configuration du SWITCH 2

SW02(config)# ip dhcp snooping SW02(config)# ip dhcp snooping vlan 10 SW02(config)# interface GigaBitEthernet 0/1 SW02(config-if)# description VERS_SW01 SW02(config-if)# switchport mode trunk SW02(config-if)# ip dhcp snooping trust SW02(config)# interface range FastEthernet 0/1 - 2 SW02(config-if)# description CLIENTS SW02(config-if)# switchport mode access SW02(config-if)# switchport access vlan 10
  • ip dhcp snooping = Activation du DHCP Snooping sur l’équipement.
  • ip dhcp snooping trust = L’interface devient TRUST.
  • ip dhcp snooping limit rate = nombre max de trames DHCP par seconde.

Attention ! Une interface Vlan reste une interface ! Il faudra donc mettre nos interfaces Vlan également en TRUST, surtout si nous utilisons un ip helper-address !

Vérification de la configuration

Vérification de nos interfaces TRUST et UNTRUST

SW01# show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 10 Insertion of option 82 is enabled Option 82 on untrusted port is not allowed Verification of hwaddr field is enabled Interface Trusted Rate limit (pps) ----------------------- ------- ---------------- GigabitEthernet0/1 yes unlimited FastEthernet0/1 yes unlimited
SW02# show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 10 Insertion of option 82 is enabled Option 82 on untrusted port is not allowed Verification of hwaddr field is enabled Interface Trusted Rate limit (pps) ----------------------- ------- ---------------- GigabitEthernet0/1 yes unlimited FastEthernet0/1 no unlimited FastEthernet0/2 no unlimited

Vérification de la database DHCP Snooping

Le DHCP Snooping va maintenir une base de données contenant :

  • L’adresse MAC de nos clients.
  • L’adresse IP de nos clients.
  • La durée du bail DHCP.
  • Le Vlan.
  • L’interface physique correspondante.
  • Le mode d’apprentissage (via DHCP Snooping ou via une entrée statique)

Chaque équipement actif utilisant le DHCP Snooping mettra à jour cette base de données :

SW01# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ----------- --------------- ---------- ------------- ---- ---------- @MAC01 192.168.1.1 86400 dhcp-snooping 10 Gi0/1 @MAC02 192.168.1.2 86400 dhcp-snooping 10 Gi0/1 Total number of bindings: 2
SW02# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ----------- --------------- ---------- ------------- ---- ---------- @MAC01 192.168.1.1 86400 dhcp-snooping 10 Fa0/1 @MAC02 192.168.1.2 86400 dhcp-snooping 10 Fa0/2 Total number of bindings: 2

Imaginons que nous rajoutons le switch SW03 ainsi que les PC03 et 04 sur notre architecture existante :

Architecture avec SW03 ajouté
SW01# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ----------- --------------- ---------- ------------- ---- ---------- @MAC01 192.168.1.1 86400 dhcp-snooping 10 Gi0/1 @MAC02 192.168.1.2 86400 dhcp-snooping 10 Gi0/1 @MAC03 192.168.1.3 86400 dhcp-snooping 10 Gi0/2 @MAC04 192.168.1.4 86400 dhcp-snooping 10 Gi0/2 Total number of bindings: 4
SW02# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ----------- --------------- ---------- ------------- ---- ---------- @MAC01 192.168.1.1 86400 dhcp-snooping 10 Fa0/1 @MAC02 192.168.1.2 86400 dhcp-snooping 10 Fa0/2 @MAC03 192.168.1.3 86400 dhcp-snooping 10 Gi0/1 @MAC04 192.168.1.4 86400 dhcp-snooping 10 Gi0/1 Total number of bindings: 4
SW03# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ----------- --------------- ---------- ------------- ---- ---------- @MAC03 192.168.1.3 86400 dhcp-snooping 10 Fa0/3 @MAC04 192.168.1.4 86400 dhcp-snooping 10 Fa0/4 Total number of bindings: 2

Vous ne remarquez rien ?

SW03 ne connaît pas les postes PC01 et PC02 !!! Pourquoi ? Car il n’existait pas lorsque ces postes ont reçu leurs baux DHCP !!! Il va falloir qu’ils le renouvellent pour avoir cette information !

Agent DHCP Snooping

Lorsque notre switch redémarre (volontairement ou non), il va perdre sa table DHCP Snooping avec toutes ses entrées !!! Il faut donc trouver une solution afin de sauvegarder cette base de données et de pouvoir la recharger en cas de redémarrage.

Switch(config)# ip dhcp snooping database [ flash | ftp | http | rcp | ftp ]

Conclusion

Le DHCP Snooping :

  • Protège votre topologie DHCP.
  • Est à activer sur tous les équipements pour ne pas avoir de faille de sécurité.
  • Lors de l’activation, part du principe que toutes vos interfaces sont en mode UNTRUST.
  • Crée une base de données DHCP SNOOPING DATABASE.

Le DHCP Snooping sert de base pour l’IP Source Guard et le Dynamic ARP Inspection. Je vous donne donc rendez-vous sur l’article IP Source Guard !

Portrait d'Eric Jouffrion, contributeur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

Photo en noir et blanc de Noël Nicolas

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Formation CCNA 200-301Formation CCNA

Devenez certifié CCNA 200-301

La formation complète Cisco, à votre rythme et accès à vie.

Voir la formation →