TP 001
🔐 Durcissement élémentaire de couche 2 (Basic Layer 2 Hardening)
Domaine : Sécurité couche 2 (Layer 2 Security)
⏱ 60–90 min | 🎯 Débutant
Assurez-vous d’avoir configuré votre environnement avant de télécharger l’activité.
1. Contexte
La couche 2 du modèle OSI, dite couche de liaison, est responsable de la commutation des trames et de la topologie logique du réseau local.
Les commutateurs modernes opèrent à ce niveau pour assurer la connectivité entre hôtes.
Cependant, un commutateur (switch) non durci — c’est‑à‑dire configuré uniquement selon ses paramètres par défaut, présente plusieurs vulnérabilités :
- ouverture de ports non utilisés,
- absence de segmentation du trafic utilisateur et de gestion,
- négociation automatique de trunks (DTP actif),
- utilisation du VLAN 1 pour tous les services,
- diffusion potentielle de trames non filtrées.
Ces fragilités constituent des points d’entrée idéaux pour des attaques locales de couche 2 telles que : l’usurpation d’adresse MAC (MAC spoofing) et le saut de VLAN (VLAN hopping).
⚙️ Pré-requis
Avant de commencer ce TP, assurez-vous que :
– Packet Tracer est installé et fonctionnel
– Votre environnement de travail est prêt
2. Objectifs du laboratoire
Ce premier laboratoire a pour objectif de mettre en pratique les techniques de durcissement élémentaire de la couche 2, en se concentrant uniquement sur la configuration de base des ports de commutation (switchports) afin de :
- Comprendre le rôle des switchports et le comportement normal d’un switch Cisco non configuré ;
- Appliquer les premières mesures de durcissement :
- créer des vlan fonctionnels (ex. vlan 10) et leurs donner des noms descriptifs (ex. FINANCE pour isoler le traffic des utilisateurs du département des finances des autres trafics),
- déplacer les ports utilisateurs dans ces vlan fonctionnels,
- déplacer les ports inutilisés dans un VLAN isolé ou “black‑hole” (ex. vlan 999) et les mettre hors service,
- désactiver la négociation de trunk dynamique (DTP),
- utiliser un autre vlan (ex. vlan 999) comme vlan natif sur les trunks au lieu du vlan 1;
- Préparer le socle pour les prochaines étapes de sécurisation avancée (Port Security, DHCP Snooping, etc.), qui seront traitées dans les articles suivants de la série Layer 2 Security.
3. Topologie
4. Concept étudié
Le durcissement élémentaire de la couche 2 correspond à l’ensemble des mesures visant à limiter les comportements indésirables avant même d’activer les fonctions de sécurité avancées.
En d’autres termes : renforcer la discipline et la propreté de la configuration de base des interfaces avant d’activer les protections intelligentes.
Les points essentiels à maîtriser sont :
- État administratif du port
Un port activé inutilement représente une faille physique ; il doit être désactivé par la commande shutdown.SW1(config-if)#shutdown - Attribution VLAN
Les ports utilisateurs doivent être retirés du VLAN 1 et placés dans des VLANs fonctionnels. Les ports inactifs rejoignent un VLAN “quarantaine” isolé ou black hole ou encore dummy VLAN. - Négociation DTP (Dynamic Trunk Protocol)
Par défaut, Cisco IOS autorise la négociation dynamique des trunks (dynamic auto ou dynamic desirable), ce qui peut induire des ouvertures accidentelles. 3.1 Pour les ports connectés à des équipements terminaux,
fixer le mode sur “
static access” afin d’interdire toute négociation dynamique :SW1(config-if)#switchport mode access
3.2 Pour les liaisons entre commutateurs ou vers un routeur‑on‑a‑stick : forcer le mode « trunk » et désactiver DTP :SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport nonegotiate - Nomination et documentation
Une description claire sur chaque interface (description <usage>) facilite l’administration et aide à détecter les anomalies. - Isolement de la gestion (Management VLAN)
Le VLAN de management, souvent basé sur l’interface virtuelle VLAN 1 par défaut, doit être déplacé vers un VLAN unique et restreint (ex. VLAN 99). - Bonne hygiène de configuration
Sauvegarder, commenter, vérifier les états à l’aide de :SW1#show interfaces status
SW1#show interfaces switchport
SW1#show running-config | section interface
5. Scénario d’attaque
Avant le durcissement, le comportement par défaut du switch rend possibles plusieurs situations à risque :
- Connexion non autorisée sur un port libre → l’hôte rejoint automatiquement le VLAN 1 ; il peut accéder à l’ensemble du trafic de diffusion (broadcast traffic).
- Trunk natif sur VLAN 1 → un attaquant peut injecter des trames 802.1Q et atteindre d’autres VLANs (VLAN hopping).
- DTP actif → un poste configuré en mode trunk peut forcer un lien trunk avec le switch.
- Absence d’isolation management → le VLAN 1 transporte en clair des protocoles sensibles comme CDP, STP, VTP.
Ce TP pose donc la base de la prévention : bloquer toute ouverture inutile, supprimer les comportements automatiques, segementer le trafic.
6. Analyse avant configuration
Après inspection de la configuration de base :
SW1# show interfaces switchport
Constats :
- Tous les ports FastEthernet (Fa0/x) sont en mode “dynamic auto” ou “dynamic desirable”, ce qui laisse le DTP actif ;
- Tous appartiennent au VLAN 1 (default) ;
- Aucune description n’est renseignée ;
- Aucun port n’est administrativement désactivé ;
- L’interface virtuelle
VLAN 1est disponible pour l’accès distant (potentiellement pour telnet/SSH).
Cette configuration reflète un switch non durci “out‑of‑the‑box”, exposé à des risques internes dès la mise sous tension.
7. Travaux pratiques (Labs)
Préparer le switch SW1 pour la sécurité Layer 2, en durcissant tous les ports et VLANs afin que TP 002 (sécurité de port) puisse être appliqué directement sur les ports utilisateurs.
SW1:
1. Créer VLAN 10 et le nommer FINANCE 1pt
2. Créer VLAN 999 et le nommer BLACKHOLE 2pt
2. Configurer ports utilisateurs Fa0/1–3 en access VLAN 10 avec PortFast et BPDU Guard 27pt
3. Configurer ports inutilisés Fa0/4–23 : VLAN 999 + shutdown 40pt
4.1 Configurer trunk Fa0/24:
– VLAN natif = 999 5pt
– VLANs autorisés = 10, 999 10pt
4.2 – Configurer aussi le trunk Fa0/24 sur SW2 pour éviter l’incosistance de vlan natif (999 chez SW1 différent de 1 chez SW2).
– VLAN natif = 999 5pt
– VLANs autorisés = 10, 999 10pt
5. Vérifier état des VLANs et des ports
6. Sauvegarder votre configuration dans la mémoire non volatile (NVRAM)
Une fois votre environnement prêt, téléchargez l’activité suivante :
8. Solution type
SW1>enable
SW1#configure terminal
! vlans fonctionnels pour segmenter le réseau local
SW1(config)#vlan 10
SW1(config-vlan)#name FINANCE
SW1(config-vlan)#vlan 999
SW1(config-vlan)#name BLACKHOLE
SW1(config-vlan)#exit
SW1(config)#interface range Fa0/1-3
SW1(config-if-range)#description Lien d’acces vers terminal du departement des finances
! Mettre le port en mode administratif « accès statique », par conséquent désactiver le négotiation dynamique de trunk (DTP)
SW1(config-if-range)#switchport mode access
! Par mesure de sécurité, associer les ports utilisateurs à un vlan différent du vlan par défaut (vlan 1)
SW1(config-if-range)#switchport access vlan 10
! Réduire le temps de convergence des ports lors de la connexion ou du redémarrage d’un terminal.
! En sautant les états de port Blocking, Listening et Learning et passer directement à l’état Forwarding
SW1(config-if-range)#spanning-tree PortFast
! Prévenir le risque d’attaque STP à travers la tentatique de connexion d’un commutateur non autorisé à la place d’un équipement terminal
SW1(config-if-range)#spanning-tree bpduguard enable
SW1(config-if-range)#exit
SW1(config)#interface range Fa0/4-23
SW1(config-if-range)#description Lien d’acces mis en quarantaine et hors service car inutilise
SW1(config-if-range)#switchport mode access
! Par mesure de sécurité, associer les ports inutilisés au vlan quarantaine
SW1(config-if-range)#switchport access vlan 999
! Par mesure de sécurité, mettre les ports hors service (désactiver l’interface de couche 1 et, par conséquent, le protocole de ligne (couche 2))
SW1(config-if-range)#shutdown
SW1(config-if-range)#exit
SW1(config)#interface Fa0/24
SW1(config-if)#description Lien trunk vers SW2
! Mettre le port en mode administratif « trunk » statique
SW1(config-if)#switchport mode trunk
! Désactiver systématiquement toute négotiation automatique afin de:
! réduire la surface d’attaque, éliminrer les négotiations imprévues et rendre le comportement réseau prévisible.
SW1(config-if)#switchport nonegotiate
! Par mesure de sécurité, utiser plutôt vlan 999 vlan natif au lieu du vlan 1 (par défaut) afin de éviter les attaques à saut de vlan (vlan hopping)
SW1(config-if)#switchport trunk native vlan 999
! Par mesure de sécurité, filtrer la liste des vlans autorisés sur le trunk
SW1(config-if)#switchport trunk allowed vlan 10,999
SW1(config-if)#end
SW1#
SW2#configure terminal
SW2(config)#vlan 10
SW2(config-vlan)#name FINANCE
SW2(config-vlan)#vlan 999
SW2(config-vlan)#name BLACKHOLE
! Assurer la consistance avec SW1
SW2(config-if-range)#interface Fa0/24
SW2(config-if-range)#description Lien trunk vers SW1
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport nonegotiate
SW2(config-if)#switchport trunk native vlan 999
SW2(config-if)#switchport trunk allowed vlan 10,999
SW2(config-if)#end
SW2#
9. Vérification et tests
! Note: Presser la touche Space pour avancer page par page dans le fichier de configuration
SW2#show running-config
! VLAN 10 et 999 présent ET actif ?
SW2#show vlan
! Port Fa0/24 est en service (connected) et membres du vlan trunk (Fa0/24 → connected + trunk) ?
SW2#show interfaces status
! Port Fa0/24 est un trunk ayant pour natif vlan 999 et autorisant uniquement le traffic des vlans 10 et 999 ?
! (Fa0/24 → trunk + native 999 + allowed EXACT = {10,999})?
SW2#show interfaces trunk
! Sauvegarder les commandes exécutées dans la mémoire non volatile (NVRAM) afin qu’elles persistent au redemarrage du commutateur
SW2#copy running-config startup-config
! Note: Presser la touche Space pour avancer page par page dans le fichier de configuration
SW2#show running-config
! VLAN 10 et 999 présent ET actif ?
SW2#show vlan
! Port Fa0/24 est en service (connected) et membres du vlan trunk (Fa0/24 → connected + trunk) ?
SW2#show interfaces status
! Port Fa0/24 est un trunk ayant pour natif vlan 999 et autorisant uniquement le traffic des vlans 10 et 999 ?
! (Fa0/24 → trunk + native 999 + allowed EXACT = {10,999})?
SW2#show interfaces trunk
! Sauvegarder les commandes exécutées dans la mémoire non volatile (NVRAM) afin qu’elles persistent au redemarrage du commutateur
SW2#copy running-config startup-config
🧪 Questions de validation
1️⃣ Pourquoi est‑il recommandé de désactiver les ports inutilisés ?
Pour éviter qu’un utilisateur non autorisé ne puisse accéder physiquement au réseau via un port libre ; un port désactivé (“shutdown”) ne transporte aucun trafic.
2️⃣ Pourquoi faut‑il déplacer les ports inutilisés vers un VLAN isolé plutôt que de simplement les désactiver ?
Le VLAN isolé (souvent nommé DUMMY ou BLACKHOLE) permet de contenir tout trafic accidentel ou maintenance temporaire, sans polluer les VLANs de production.
3️⃣ Quel est le risque associé à la négociation DTP ?
Un hôte malveillant peut négocier un lien trunk avec le switch et capter du trafic multi‑VLAN (VLAN hopping).
4️⃣ Pourquoi le VLAN 1 doit‑il être évité pour la gestion ?
Parce que le VLAN 1 transporte déjà les protocoles de gestion Cisco (CDP, STP, VTP) ; l’utiliser pour le management expose ces services aux VLAN utilisateurs.
💡 Astuce
- Description claire sur chaque interface (
description <nom_du_poste>). - Sauvegarder périodiquement la configuration :SW1#copy running-config startup-config
- Afficher le status des interfaces pour audit rapide :SW1#show interfaces status
- Créer un VLAN de quarantaine :SW1(config)#vlan 999SW1(config-vlan)#name BLACKHOLE
⚠️ Attention
- La commande
shutdowndésactive complètement le port ; toujours la vérifier avant de tester un lien de production. switchport nonegotiaten’est applicable qu’en mode static access ou static trunk : éviter sur ports dynamiques.- Ne pas confondre désactivation DTP et suppression VLAN natif ; le VLAN natif reste utile pour le trafic 802.1Q non tagué.
- Toujours isoler la gestion (interface SVI) sur un VLAN distinct et restreindre l’accès avec ACLs ou VLAN ACLs.
10. Conclusion
Le durcissement élémentaire de la couche 2 marque la première étape de sécurisation d’un réseau commuté.
Avant d’introduire les mécanismes de protection automatique (Port Security, DHCP Snooping, DAI…), il est essentiel d’imposer une hygiène de configuration minimale :
- neutraliser les ports inactifs,
- documenter chaque lien,
- séparer la production de la gestion,
- supprimer les comportements dynamiques implicites.
Ces bonnes pratiques simples réduisent considérablement les risques internes et préparent l’infrastructure à la mise en œuvre d’un durcissement avancé dans les pages suivantes de cette série.
11. Extension (optionnel)
- Documenter automatiquement l’état des ports via un script Python/Netmiko ;
- Implémenter une supervision basique (SNMP + Syslog) pour détecter l’activation accidentelle d’un port désactivé ;
- Étudier dans le prochain article les mécanismes de sécurité de port (Port Security).
Références
- Siegfried Lazar – CCNAv7 Cours :
- Chapitre 6 : Configuration des interfaces
- Chapitre 8 : Network Access (Layer 2 concepts)
- Chapritre 34: principes généraux de durcissement et défense en profondeur
- Documentation Cisco IOS : Interface Configuration and Management VLAN Guide
