La segmentation réseau
Un réseau plat est une pièce unique où chacun peut atteindre chacun et c’est la condition qui transforme un seul portable compromis en un parc compromis. L’intrusion n’atterrit presque jamais là où se trouve la chose précieuse; elle atterrit sur une machine d’utilisateur puis se déplace, vers le serveur de fichiers, la base, le contrôleur de domaine, parce que rien sur un réseau plat ne dit non. La segmentation est la pratique d’ajouter des murs pour qu’un pied dans la porte achète à l’attaquant une pièce plutôt que le bâtiment et sa version honnête est plus que tracer des VLAN: c’est les rendre réels par du filtrage entre eux et durcir les astuces de couche 2 qui les traversent autrement tout droit.
Des zones, pas un seul domaine de broadcast
Le premier geste est de cesser de faire tourner l’organisation comme un seul sous-réseau. Découpez-la en zones par confiance et par fonction, chacune son VLAN et son sous-réseau, avec un routage entre elles qui passe par un pare-feu plutôt que par un routeur permissif:
VLAN 10 utilisateurs 10.10.0.0/16
VLAN 20 serveurs 10.20.0.0/16
VLAN 30 bases 10.30.0.0/16 (atteinte seulement depuis l'étage applicatif)
VLAN 40 gestion 10.40.0.0/16 (accès admin seulement)
VLAN 50 DMZ 10.50.0.0/24 (public, ne fait confiance à rien vers l'intérieur)
Les zones ne veulent dire quelque chose que si le trafic entre elles est filtré en default-deny, ce pourquoi la passerelle inter-VLAN devrait être un pare-feu, pas un routeur qui transmet tout. Un VLAN utilisateur n’a aucune raison d’atteindre directement le VLAN des bases; l’étage applicatif l’a, sur un port. Écrivez ces autorisations explicitement et jetez le reste et un poste compromis ne peut plus ouvrir une socket vers la base au simple motif qu’ils partagent un bâtiment.
Le VLAN de gestion est celui à traiter le plus strictement, parce qu’il atteint les surfaces de contrôle de tout, les hyperviseurs, les switches, les iDRAC. Il est joignable depuis les postes admin ou un bastion et de nulle part ailleurs et il ne partage jamais un fil avec du trafic utilisateur ou invité.
Les VLAN ne sont pas une frontière tant qu’on n’a pas durci la couche 2
C’est ici que la segmentation naïve échoue: un tag de VLAN est un système d’honneur et les défauts du switch le sapent. Trois attaques de couche 2 retransforment des “VLAN séparés” en réseau plat et toutes trois étaient dans la boîte à outils yersinia il y a dix ans et marchent encore sur un switch intouché.
Le Dynamic Trunking Protocol laisse un port d’accès être négocié en trunk, après quoi l’attaquant voit chaque VLAN; désactivez-le. Le native VLAN, laissé à 1, permet le double-tagging, où une trame à deux tags voit son tag externe (native) retiré par le premier switch et le tag interne livré dans le VLAN cible; changez le native VLAN pour un VLAN inutilisé et vide et ne le transportez pas. Et les ports inutilisés laissés dans le VLAN par défaut sont une porte ouverte; coupez-les et garez-les dans un VLAN trou-noir. Sur Cisco, la base défensive est courte:
interface range Gi0/1-48
switchport mode access ! jamais 'dynamic', tue la négociation DTP
switchport access vlan 10
switchport nonegotiate
spanning-tree portfast
spanning-tree bpduguard enable
vlan 999
name blackhole
! mettre le native VLAN à un id inutilisé sur chaque trunk, et l'élaguer
Associez cela au DHCP snooping, à la Dynamic ARP Inspection et au port-security traités ailleurs et le VLAN devient une frontière plutôt qu’une suggestion. Sautez-le et le schéma de segmentation est une fiction.
Microsegmentation et le “zero trust” honnête
Le “zero trust” se vend comme un produit; ce qu’il veut dire en réalité pour un réseau, c’est qu’être à l’intérieur d’un segment ne devrait pas en soi accorder l’accès à la chose suivante, de sorte que les frontières s’affinent et que l’identité est vérifiée plutôt que supposée. En pratique, c’est de la microsegmentation, des pare-feux d’hôte ou de charge qui restreignent le trafic est-ouest entre machines d’une même zone, pour que deux serveurs du VLAN serveurs ne se parlent que sur les ports que leurs rôles exigent. C’est le même default-deny appliqué un cran plus bas et c’est ce qui arrête le déplacement latéral dans une zone une fois l’attaquant passé le mur de zone. Le point à retenir, c’est que c’est additif, pas magique: c’est de la segmentation plus de l’authentification plus du default-deny, portés plus près de la charge et cela tient ou tombe sur la même discipline que les zones au-dessus.
Séparer aussi le trafic de contrôle
Le plan de gestion n’est pas seulement un VLAN à restreindre, c’est du trafic à isoler. L’administration des switches, les interfaces hors-bande (iDRAC, iLO, IPMI), le battement de cluster et la réplication de stockage veulent chacun leur propre segment, à la fois parce qu’ils sont sensibles et parce que les mêler au trafic de charge crée des modes de défaillance, un lien congestionné qui fait fencer un cluster, une gestion hors-bande joignable depuis un VLAN utilisateur qui est un chemin direct vers le matériel sous l’OS. Les interfaces hors-bande en particulier ont une longue histoire de firmware faible et d’identifiants par défaut, donc elles vivent sur un réseau de gestion isolé atteint seulement par un bastion, jamais sur le réseau général et jamais, au grand jamais, sur internet.
Où atterrir
Découpez le réseau plat en zones par confiance et par fonction et filtrez entre elles avec un pare-feu qui refuse par défaut, pour qu’un pied dans une zone ne soit pas l’accès à la suivante. Durcissez la couche 2 pour que les VLAN soient réels: pas de DTP, un native VLAN changé et inutilisé, les ports inutilisés désactivés, plus DHCP snooping et DAI, parce qu’un VLAN sans cela est une étiquette, pas un mur. Portez le même default-deny jusqu’au trafic est-ouest avec des pare-feux d’hôte ou de charge là où le déplacement latéral est la préoccupation. Et isolez les réseaux de gestion et hors-bande plus fort que tout, joignables seulement par un bastion, parce qu’ils siègent sous tout le reste que vous essayez de protéger. Toute la discipline se ramène à une habitude: chaque frontière refuse par défaut et vous ajoutez les trous précis que le travail exige, plutôt que de partir ouvert en espérant en fermer assez.
[edit: 2026] L’implémentation Ansible de tout ceci: le rôle nftables .