Vlan privé - cisco
Les VLAN privés ou Private VLAN (PVLAN) permettent de cloisonner l'intérieur d'un VLAN afin de restreindre ses clients à communiquer avec certains ports seulement (généralement celui de la passerelle). L'objectif initial d'une telle solution était d’économiser des adresses IP en disposant des machines distincts (des clients dans une même baie de centre de données par exemple) dans plusieurs domaines de diffusion tout en conservant une unique adresse de passerelle (on économise alors 3 IP par sous-réseaux en mutualisant l'adresse de réseau, de diffusion et de passerelle). Un corollaire non négligeable et qui nous intéresse dans une logique sécuritaire est d'empêcher la communication des clients d'un même réseau entre eux et donc de limiter considérablement les failles (propagation de virus notamment). Cette technologie se basant sur l'implémentation standard des VLAN sur IOS, le cloisonnement peut être étendu à plusieurs commutateurs au travers de troncs 802.1Q. Les spécifications des VLAN privés sont détaillées dans la RFC 5517.
Ce type d'architecture fait particulièrement sens pour des clients bureautiques n'hébergeant aucun services pour les autres machines mais ayant accès à Internet et bien souvent à une messagerie représentant un formidable vecteur d'infection.
Architecture
Cette documentation utilisera deux commutateurs Cisco supportant cette fonction :
NOM | Modèle | Version IOS |
---|---|---|
COM-DOC-1 | WS-C2960CX-8PC-L | c2960cx-universalk9-mz.152-7.E2.bin |
COM-DOC-2 | WS-C3750G-24TS | c3750-ipbasek9-mz.122-55.SE12.bin |
COM-DOC-1 supportera un client et sera interconnecté à COM-DOC-2 qui servira un autre client du même réseau via un tronc 802.1Q. Ces derniers seront placés dans un VLAN isolé ou des VLAN de communautés différentes et pourront être déplacés sur d'autres ports pour tester les notions abordées plus bas. Ils ne pourront alors communiquer qu'avec une passerelle placée en mode promiscuité sur COM-DOC-1 (notions techniques décrites en section Principe).
Le schéma suivant retrace les flux entre un routeur branché sur un port en mode promiscuité et deux machines clientes dans des VLAN de communauté différentes ou isolés :
<img src="https://doc.ycharbi.fr/fichiers/réseaux/vlan_privé/images/Schéma_doc_PVLAN.svg" alt="Schéma architecture VLAN privé" style="display: block;width:70%; height:auto; margin-left:auto; margin-right:auto;"/>
En mode isolé ou dans des VLAN de communauté différentes, la communication ne peut s’effectuer qu'entre le routeur et les machines. Ces dernières ne peuvent se joindre directement.
Principe
Le VLAN privé est en fait la combinaison de plusieurs VLAN en un seul. Ces VLAN communiques entre eux par les ports physiques des commutateurs en fonction du mode dans lequel ils sont configurés. Un VLAN primaire contient plusieurs VLAN secondaires qui peuvent fonctionner selon deux modes :
- communauté (community) : les ports placés dans ce type de VLAN peuvent communiquer entre eux comme s’ils se trouvaient dans un même VLAN « classique » mais ne peuvent pas communiquer avec les ports affectés à d’autres VLAN secondaires
- isolé (isolated) : les ports placées dans ce type de VLAN ne peuvent pas communiquer entre eux, mais uniquement avec les ports en mode promiscuité (promiscuous), généralement la passerelle par défaut.
Le VLAN primaire ne fonctionne qu'en mode promiscuité et a un accès non restreint à l'ensemble des VLAN secondaires (pour lui, tout fait partie du même réseau). Un port physique est donc attribué à un VLAN primaire lorsque celui est en mode promiscuité.
INFORMATION
Il ne peut y avoir qu'un seul VLAN en mode isolé par VLAN primaire.Le schéma logique suivant symbolise la porté des communications au sein d'un VLAN primaire comportant plusieurs VLAN secondaires :
<img src="https://doc.ycharbi.fr/fichiers/réseaux/vlan_privé/images/Schéma_logique_PVLAN.svg" alt="Schéma architecture VLAN privé" style="display: block;width:70%; height:auto; margin-left:auto; margin-right:auto;"/>
L'ANSSI propose dans son tableau n°5 (chapitre 5.6 page 33 du guide de recommandation en première source) une matrice des flux autorisés retranscrite ci-dessous et résumant ce qu'il est permis de faire:
Mode | isolated | promiscuous | community 1 | community 2 |
---|---|---|---|---|
isolated | ✗ | ✔ | ✗ | ✗ |
promiscuous | ✔ | ✔ | ✔ | ✔ |
community 1 | ✗ | ✔ | ✔ | ✗ |
community 2 | ✗ | ✔ | ✗ | ✔ |
Configuration
Tout d'abord il est obligatoire de rendre le VTP inopérant sur vos équipements pour pouvoir utiliser cette fonction
vtp mode off
Nous utiliserons 4 VLAN pour la démonstration :
- 10 : primaire
- 11 : isolé
- 12 : communauté 1
- 13 : communauté 2
Enfin, vous pouvez voir l’association de vos VLAN privés avec les ports physiques via la commande
show vlan private-vlan
COM-DOC-1
Création des VLAN
! VLAN secondaires vlan 11 name Production-cloison private-vlan isolated vlan 12 name Communaute1 private-vlan community vlan 13 name Communaute2 private-vlan community
! VLAN primaire vlan 10 name Production private-vlan primary private-vlan association 11-13
Interfaces des clients
Mode isolé
Les 3 premières interfaces sont dédiées aux clients en mode isolé et ne leur permettront pas de se contacter entre eux. Seule la passerelle via le port en mode promiscuité sera joignable
default interface range g0/1 - 3 interface range g0/1 - 3 description --- Production isolee --- switchport mode access switchport nonegotiate switchport private-vlan host-association 10 11 switchport mode private-vlan host spanning-tree portfast
Mode communauté
Les interfaces dans la communauté 1 permettront aux machines de se contacter entres elles ainsi qu'avec le port de promiscuité. Les communications inter-machines sont toutefois limités à leur propre communauté
default interface range g0/4 - 6 interface range g0/4 - 6 description --- Production communaute 1 --- switchport mode access switchport nonegotiate switchport private-vlan host-association 10 12 switchport mode private-vlan host spanning-tree portfast
Une deuxième communauté permet de faire communiquer d'autres machines entre elles en vase clos et avec le port en mode promiscuité
default interface range g0/7 - 8 interface range g0/7 - 8 description --- Production communaute 2 --- switchport mode access switchport nonegotiate switchport private-vlan host-association 10 13 switchport mode private-vlan host spanning-tree portfast
Interface de passerelle
Mise en mode promiscuité, le neuvième port du commutateur permettra aux clients des 3 premières interfaces de joindre la machine officiant comme passerelle pour le réseau
default interface g0/9 interface g0/9 description --- Vers passerelle LAN production --- switchport mode access switchport nonegotiate switchport private-vlan association mapping 10 11-13 switchport private-vlan mapping 10 11 switchport mode private-vlan promiscuous
Lien d'interconnexion à COM-DOC-2
Le lien d’interconnexion n'a rien de spécifique à l'usage des VLAN privés. Il faut simplement prendre soin de permettre le transite de tous les VLAN concernés par votre configuration
default interface GigabitEthernet0/10 interface GigabitEthernet0/10 description --- Vers COM-DOC-2 --- switchport trunk allowed vlan 10-13 switchport mode trunk switchport nonegotiate
COM-DOC-2
COM-DOC-2 n'aura aucun port en mode promiscuité et fera profiter ses clients de celui de COM-DOC-1 via son interconnexion 802.1Q.
Voici le pavé complet pour ne pas avoir à paraphrasé les explications données supra :
vlan 11 name Production-cloison private-vlan isolated vlan 12 name Communaute1 private-vlan community vlan 13 name Communaute2 private-vlan community vlan 10 name Production private-vlan primary private-vlan association 11-13 default interface range GigabitEthernet1/0/1 - 2 interface range GigabitEthernet1/0/1 - 2 description --- Production isolee --- switchport private-vlan host-association 10 11 switchport mode private-vlan host switchport nonegotiate spanning-tree portfast default interface range GigabitEthernet1/0/3 - 4 interface range GigabitEthernet1/0/3 - 4 description --- Production communaute 1 --- switchport private-vlan host-association 10 12 switchport mode private-vlan host switchport nonegotiate spanning-tree portfast default interface range GigabitEthernet1/0/5 - 6 interface range GigabitEthernet1/0/5 - 6 description --- Production communaute 2 --- switchport private-vlan host-association 10 13 switchport mode private-vlan host switchport nonegotiate spanning-tree portfast default interface GigabitEthernet1/0/24 interface GigabitEthernet1/0/24 description --- Vers COM-DOC-1 --- switchport trunk encapsulation dot1q switchport trunk allowed vlan 10-13 switchport mode trunk
Tests
À ce stade, vous pouvez brancher vos équipements clients aux différents ports configurés afin de tester le comportement de chacun des cas présentés. Il vous appartient de choisir les agencements pouvant convenir à un cas d'usage concret.