Version Filtre

Module-Kit de Maîtrise

Le contenu complet du module source est réintégré dans un habillage modernisé, avec scripts et styles utiles conservés.

Contenu sourceLe texte et les structures utiles du document d'origine sont conservés dans cette reconstruction.
RenduHabillage moderne inspire du modele principal, sans supprimer les blocs specifiques du document initial.
FocusModule-Kit de Maîtrise

Module-Kit de Maîtrise

Configuration de la Sécurité des Commutateurs

📍 Analogie Systémique : L'Immeuble de Bureau Sécurisé

Thème central : "Le Commutateur comme Immeuble de Bureau Sécurisé"

Métaphore : Chaque port du switch est une porte d'entrée dans un immeuble de bureaux (le réseau). La sécurité consiste à contrôler qui peut entrer, par quelle porte, ce qu'il peut faire, et à détecter les intrus qui tentent de forcer les serrures ou de se faire passer pour des résidents légitimes.

Éléments Clés :

🔵 Port inutilisé (shutdown)

Porte blindée scellée. Aucun accès possible.

Port Security

Serrure à badge. Seules les adresses MAC (badges) enregistrées ouvrent la porte. Trop de tentatives incorrectes verrouillent la porte (err-disabled).

🧠 DHCP Snooping

Concierge vérifié. Seul le serveur DHCP officiel (concierge de confiance) peut attribuer des bureaux (adresses IP). Les concierges imposteurs sont bloqués.

⚠️ DAI (Dynamic ARP Inspection)

Vérification d'identité croisée. Empêche un visiteur de se faire passer pour le propriétaire d'un bureau en falsifiant sa carte d'identité (paquet ARP).

🔴 BPDU Guard & PortFast

Porte de service. Ouverture rapide pour les employés (hôtes finaux), mais verrouillage immédiat si quelqu'un tente d'amener un autre immeuble (commutateur) par cette porte (BPDU).

Risque analogique : Un intrus qui réussit à duper la sécurité d'une porte (port) peut accéder à tous les bureaux (VLANs), voler des ressources (adresses IP) ou écouter les conversations (trafic).

Modèle Mental : Flowchart de Sécurité

flowchart TD A[Sécuriser un Port de Commutateur] --> B{Type de Port?} B -->|Accès| C[1. Mode Access
2. Port Security] B -->|Trunk| D[1. Mode Trunk
2. Désactiver DTP
3. VLAN Natif ≠ 1] B -->|Inutilisé| E[1. Shutdown
2. VLAN "Parking"] C --> F{Menace à Mitiger?} F -->|Usurpation MAC/Table SAT| G["Limiter & Fixer MAC
Violation: restrict/shutdown"] F -->|Attaque STP| H["Activer PortFast + BPDU Guard"] D --> I{Menace à Mitiger?} I -->|Saut de VLAN| J["DTP off, VLAN Natif sécurisé"] A --> K[Protections Globales] K --> L[DHCP Snooping
Ports de confiance, limite de taux] L --> M[DAI (Dynamic ARP Inspection)
Nécessite DHCP Snooping] G & H & J & M --> N[État Final Vérifiable] N --> O["show port-security
show dhcp snooping
show arp inspection"]
Quiz : Selon l'analogie, que représente l'activation de "PortFast + BPDU Guard" sur un port d'accès ?
  • Une porte de service qui s'ouvre vite pour les employés mais se verrouille si on y amène un autre bâtiment
  • Un concierge qui vérifie toutes les identités à l'entrée
  • Une porte blindée complètement scellée
  • Un système de caméra qui surveille en permanence

Explication : PortFast permet une connexion rapide (comme une porte de service pour employés), et BPDU Guard verrouille immédiatement si quelqu'un tente de connecter un commutateur (un autre "bâtiment" réseau).

⚡ Noyau Dur : Les 5 Lois Immuables

! Loi #1 : Un port non sécurisé est un port compromis. Tout port, utilisé ou non, doit avoir une configuration de sécurité explicite. Le mode par défaut (`dynamic auto`) est une faille.

! Loi #2 : La sécurité de la couche 2 est la base de toute sécurité réseau. Si un attaquant contrôle la couche 2 (MAC, VLAN, ARP), il contourne la plupart des défenses de couche supérieure (pare-feu, ACL).

! Loi #3 : DHCP Snooping est le prérequis obligatoire pour DAI. Sans la table de liaison (`binding table`) créée par DHCP Snooping, DAI ne peut pas valider les associations IP-MAC.

! Loi #4 : PortFast et BPDU Guard sont indissociables. Activer PortFast sans BPDU Guard sur un port d'accès expose le réseau à des boucles de spanning-tree introduites par un commutateur pirate.

! Loi #5 : Le VLAN 1 est un territoire hostile. Ne jamais l'utiliser pour le trafic utilisateur. Changer le VLAN natif des trunks et placer les ports inutilisés dans un VLAN "parking" dédié et isolé.

Interdépendance des Lois

flowchart LR A[Loi 1
Pas de port par défaut] --> B[Loi 2
Sécurité couche 2 d'abord] B --> C[Loi 3
DHCP Snooping → DAI] B --> D[Loi 4
PortFast + BPDU Guard] B --> E[Loi 5
Bannir VLAN 1] C --> F[Socle Sécurité
Complet] D --> F E --> F

Vérification des Principes

S1# show running-config | include interface|switchport mode interface FastEthernet0/1 switchport mode access interface FastEthernet0/2 switchport mode dynamic auto interface FastEthernet0/3 ! Aucune configuration de mode
S1#

🔐 Profondeur Sécurité & Métier

Contexte Métier : En production, ces configurations ne se font pas manuellement sur chaque switch. Elles sont déployées via des templates dans des outils comme Ansible ou Terraform, et leur conformité est vérifiée en continu par des solutions comme Cisco Prime ou des scripts Python maison. Les violations (`security-violation`) sont remontées vers un SIEM (ex: Splunk, QRadar) pour corrélation d'événements de sécurité.

🚨 RISQUE PRINCIPAL

Risque Principal : Compromission de la couche 2 permettant une exfiltration de données ou un déni de service (DoS) étendu.

Attaque Type : VLAN Hopping via double étiquetage 802.1Q ou usurpation DTP.

Détection : show interfaces trunk (vérifier ports trunk non désirés) et logs : %DTP-5-NONTRUNKPORTON ou %SPANTREE-2-RECV_PVID_ERR.

Mitigation Immédiate :

! Sur TOUS les ports d'accès
interface range gi0/1 - 24
 switchport mode access
 switchport nonegotiate
 spanning-tree portfast
 spanning-tree bpduguard enable
!
! Sur les ports trunk désirés
interface gi0/48
 switchport mode trunk
 switchport nonegotiate
 switchport trunk native vlan 999

Intégration Entreprise : Ces commandes font partie d'un baseline de sécurité documenté (ex: CIS Benchmark). Un playbook Ansible assure leur application uniforme. Les alertes de violation de port (`psecure-violation`) sont envoyées au SIEM et déclenchent un ticket d'incident.

Exemple de Playbook Ansible pour la Sécurité des Ports

---
- name: Configurer la sécurité de base sur les commutateurs
  hosts: access_switches
  gather_facts: no
  tasks:
    - name: Désactiver les ports inutilisés
      cisco.ios.ios_config:
        lines:
          - shutdown
        parents: "interface range {{ item }}"
      loop:
        - "FastEthernet0/17-24"
        - "GigabitEthernet0/3-4"
        
    - name: Configurer Port Security sur les ports d'accès
      cisco.ios.ios_config:
        lines:
          - switchport mode access
          - switchport port-security
          - switchport port-security maximum 3
          - switchport port-security mac-address sticky
          - switchport port-security violation restrict
          - spanning-tree portfast
          - spanning-tree bpduguard enable
        parents: "interface range {{ item }}"
      loop:
        - "FastEthernet0/1-16"
        - "GigabitEthernet0/1-2"

+ Best Practice : Toujours documenter les exceptions. Si un port doit avoir switchport port-security maximum 10 pour une salle de réunion, cette exception doit être documentée dans le système de gestion de configuration (ex: Git) avec une justification business.

📚 Profondeur Examen CCNA

? Détail Oublié #1 : Le maximum d'adresses MAC avec Port Security est 8192 par système (plateforme dépendante), mais souvent limité à 1024 sur les anciens modèles. Le maximum par port est configurable, mais la valeur par défaut est 1.

? Piège Fréquent #2 : switchport port-security mac-address sticky apprend et sauvegarde la MAC dans la config. Sans sticky, la MAC est apprise dynamiquement mais est perdue au reboot.

? Question Type : "Un port en mode dynamic desirable peut-il activer Port Security ?" Réponse : Non. Il faut d'abord le mettre en switchport mode access ou switchport mode trunk.

? Piège Fréquent #3 : La commande ip dhcp snooping limit rate s'applique aux ports non approuvés. Sur un port de confiance (trust), cette commande est ignorée.

Simulateur de Question CCNA

Un administrateur configure les commandes suivantes sur l'interface FastEthernet 0/1 :
switchport mode access
switchport port-security
switchport port-security maximum 2
switchport port-security mac-address sticky

Un PC avec l'adresse MAC 0050.7966.6800 est connecté. L'administrateur ajoute ensuite manuellement la MAC aaaa.bbbb.1234. Combien d'adresses MAC supplémentaires le port peut-il encore apprendre dynamiquement ?
  • 2
  • 1
  • 0
  • Le maximum est illimité avec sticky

Réponse correcte : 0

Explication : Le maximum est fixé à 2. Une adresse MAC est déjà apprise dynamiquement via sticky (0050.7966.6800), et une autre est configurée statiquement (aaaa.bbbb.1234). Le quota de 2 adresses est donc atteint. Pour en apprendre une nouvelle dynamiquement, il faudrait soit augmenter le maximum, soit supprimer une des adresses existantes.

Piège CCNA : Beaucoup oublient que les adresses MAC sticky comptent dans le total, tout comme les adresses configurées manuellement.

Valeurs par Défaut Critiques (à mémoriser)

Fonctionnalité Valeur par Défaut Impact
switchport mode dynamic auto Port Security impossible sans changer ce mode
port-security maximum 1 Seulement 1 MAC autorisée par défaut
port-security violation shutdown Le port passe en err-disable, pas juste drop des paquets
ip dhcp snooping Désactivé Tous les ports sont non approuvés par défaut
VLAN natif sur trunk VLAN 1 Risque de sécurité majeur - toujours le changer

⚙️ Lab Complet : De la Configuration à l'Automatisation

Niveau 1 (CCNA) : Configuration Fondamentale

- Sécurisation des Ports Inutilisés

S1(config)# interface range fa0/17 - 24
S1(config-if-range)# shutdown
S1(config-if-range)# switchport mode access
S1(config-if-range)# switchport access vlan 999
S1(config-if-range)# exit

Objectif : Éliminer les vecteurs d'attaque physiques.
Vérification : show interfaces status | include disabled

- Port Security Sticky (Scénario Bureau)

S1(config)# interface fa0/1
S1(config-if)# switchport mode access
S1(config-if)# switchport port-security
S1(config-if)# switchport port-security maximum 3
S1(config-if)# switchport port-security mac-address sticky
S1(config-if)# switchport port-security violation restrict
S1(config-if)# exit

Vérification : show port-security interface fa0/1
Sortie attendue : Port Status: Secure-up, Sticky MAC Addresses: 1 (apprise après connexion PC).

- DHCP Snooping & DAI pour un VLAN Client

S1(config)# ip dhcp snooping
S1(config)# ip dhcp snooping vlan 10
S1(config)# interface gi0/1
S1(config-if)# description Lien vers Serveur DHCP/Routeur
S1(config-if)# ip dhcp snooping trust
S1(config-if)# ip arp inspection trust
S1(config-if)# exit
S1(config)# interface range fa0/1-10
S1(config-if-range)# ip dhcp snooping limit rate 10
S1(config-if-range)# exit
S1(config)# ip arp inspection vlan 10
S1(config)# ip arp inspection validate src-mac dst-mac ip

Objectif : Éliminer les serveurs DHCP pirates et l'usurpation ARP.
Vérification : show ip dhcp snooping binding et show ip arp inspection vlan 10

Niveau 2 (Production Sécurisée) : Hardening

⚠️ Désactiver CDP/LLDP sur les ports utilisateurs (optionnel mais recommandé)

S1(config)# interface range fa0/1-16
S1(config-if-range)# no cdp enable

Risque si omis : Fuite d'informations (nom du switch, version IOS, IP).

+ Configurer la récupération automatique (auto-recovery) sur err-disable

S1(config)# errdisable recovery cause psecure-violation
S1(config)# errdisable recovery interval 300

Justification best-practice : Permet un redémarrage automatique du port après 5 minutes en cas de violation, évitant une intervention manuaire pour un faux positif.

Niveau 3 (Expert/Automatisation) : Script & Scale

+ Script Python (Netmiko) pour auditer la Port Security

# Script Python (Netmiko) pour auditer la Port Security sur tous les switches
from netmiko import ConnectHandler
import json

device = {
    'device_type': 'cisco_ios',
    'ip': '192.168.1.1',
    'username': 'admin',
    'password': 'secret',
}
with ConnectHandler(**device) as net_connect:
    output = net_connect.send_command('show port-security', use_textfsm=True)
    # Analyse avec TextFSM -> JSON
    for interface in output:
        if interface['max_secure_addr'] == '1' and interface['current_addr'] == '0':
            print(f"ALERTE: {interface['port']} est configuré mais n'a appris aucune MAC.")
    # Génération de rapport JSON pour SIEM
    with open('port_security_audit.json', 'w') as f:
        json.dump(output, f)

Avantage : Audit centralisé en quelques secondes sur des centaines de switches, détection des configurations incohérentes.

Simulateur de Configuration

Switch> enable Switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#
Switch(config)#

Commandes disponibles dans le simulateur : interface fa0/1, switchport mode access, switchport port-security, switchport port-security maximum 3, switchport port-security mac-address sticky, exit, show port-security

🚨 Scénario de Dépannage Avancé

Symptôme Complexe : Les utilisateurs du VLAN 10 ne peuvent plus obtenir d'adresse IP (DHCP) et ont une adresse APIPA (169.254.x.x). Certains peuvent ping leur passerelle, d'autres non. Le port F0/5 du commutateur d'accès clignote en orange (err-disable).

Processus de Diagnostic (Arbre Décisionnel)

flowchart TD A[Symptôme: Pas de DHCP + APIPA] --> B[Étape 1: Vérifier état des ports] B --> C{Ports en err-disabled?} C -->|Oui| D[Étape 2: Identifier cause
show interfaces status err-disabled] C -->|Non| E[Étape 4: Vérifier DHCP Snooping] D --> F{Cause?} F -->|psecure-violation| G[Hypothèse: Périphérique non autorisé
branché sur F0/5] F -->|dhcp-rate-limit| H[Hypothèse: Flood DHCP
depuis un port utilisateur] G --> I[Vérifier MAC loggée:
show port-security int f0/5] H --> J[Vérifier statistiques:
show ip dhcp snooping stats] I --> K[Root Cause: Conflit entre
port-security maximum 1 et
périphérique multi-MAC] J --> L[Root Cause: Attaque starvation DHCP
ou logiciel malveillant] K --> M[Correction: Nettoyer violation,
réactiver port après débranchement] L --> N[Correction: Augmenter limite rate
ou investiguer source]

Fix et Rollback

- Fix : Identifier, isoler, reconfigurer

! 1. Identifier l'appareil fautif via la MAC loggée.
S1# show port-security interface f0/5 | include Last Source
Last Source Address:Vlan   : 0050.7966.6800:10

! 2. Nettoyer la violation, réactiver le port APRÈS avoir débranché l'appareil non autorisé.
S1(config)# interface f0/5
S1(config-if)# shutdown
S1(config-if)# no switchport port-security
S1(config-if)# switchport port-security
S1(config-if)# switchport port-security mac-address sticky
S1(config-if)# no shutdown
! *Vérification du fix*
S1# show port-security interface f0/5
! Le port doit être en "Secure-up" après reconnexion du PC légitime.

! 3. Si le problème était un flood DHCP, augmenter légèrement la limite sur le port.
S1(config)# interface f0/5
S1(config-if)# ip dhcp snooping limit rate 15

⚠️ Rollback au cas où

! Si la configuration cause plus de problèmes, revenir aux paramètres de base.
S1(config)# interface f0/5
S1(config-if)# no ip dhcp snooping limit rate
S1(config-if)# no switchport port-security
S1(config-if)# switchport mode access
S1(config-if)# description Port-User-Reset
Question de Crise : "Il est 3h du matin, le monitoring remonte que 50% des ports d'accès sur le commutateur principal du bâtiment A sont en `err-disabled`. Les utilisateurs du shift de nuit rapportent une panne réseau. Quelle est votre première commande ?"
  • show running-config
  • show interfaces status err-disabled
  • reload
  • show vlan

Bonne réponse : show interfaces status err-disabled

Raison : Cette commande donne immédiatement la liste de tous les ports en err-disable et la cause (psecure-violation, bpduguard, etc.). C'est le point de départ le plus rapide pour un diagnostic initial à 3h du matin.

Plan d'action en 3 étapes :

  1. Diagnostic : show mac address-table pour détecter une boucle (même MAC sur plusieurs ports).
  2. Containment : Laisser les ports en err-disable (ils contiennent la menace). Activer la récupération auto si configurée.
  3. Éradication : Localiser physiquement l'équipement fautif, le débrancher, puis réactiver les ports.

🧩 Micro-Kit Essentiel - Synthèse 1 Page A4

🔴 5 Lois Immuables (version courte)

  1. Pas de port "par défaut".
  2. Sécurité couche 2 d'abord.
  3. DHCP Snooping → DAI.
  4. PortFast + BPDU Guard = Paire.
  5. Bannir le VLAN 1.

🔵 6 Commandes CLI Incontournables

show port-security interface gi0/1
show ip dhcp snooping binding
show ip arp inspection vlan 10
show errdisable recovery
show interfaces status err-disabled
show run interface gi0/1 | sec port-security

⚠️ 3 Pièges CCNA Fréquents

  • Port Security refuse dynamic auto
  • mac-address sticky sauvegarde dans running-config
  • Mode violation par défaut = shutdown (err-disable)

Dépannage en 3 Étapes

  1. Identifier : show interfaces status err-disabled
  2. Diagnostiquer : show logging | sec ERR_DISABLE
  3. Corriger : shutdown / no shutdown

🧠 Mini-Modèle Mental Simplifié

flowchart LR A[Port] --> B{Accès ?}; B -->|Oui| C[PortSec + PortFast/BPDU Guard]; B -->|Non| D{Trunk ?}; D -->|Oui| E[DTP off + VLAN Natif safe]; D -->|Non| F[Shutdown + VLAN Parking]; C & E & F --> G[Protections Globales
DHCP Snooping + DAI];

🔐 1 Risque Sécurité + Mitigation Cruciale

Risque : Usurpation ARP -> Interception du trafic (Man-in-the-Middle).

Mitigation : ip arp inspection vlan [id] ET ip dhcp snooping préalable. Sans DHCP Snooping, DAI est inefficace.

🧮 Équation Mentale

Sécurité Port = (Mode Accès) + (MAC Max + Sticky) + (Violation Shutdown)

Module-Kit de Maîtrise - Configuration de la Sécurité des Commutateurs

© 2024