Cours – VLAN, trunk 802.1Q et utilisateurs Linux
BTS SIO SISR 1re année – Bloc 2 – S06 – à lire avant le TP
Ce que tu dois savoir déjà
- Prérequis : S05 (CLI Cisco, table MAC).
- Matériel : Simulateur réseau ou Packet Tracer, ou matériel réel (au choix de l'enseignant) ; VM Debian.
À la fin de ce cours, tu sauras
- Expliquer l'intérêt des VLAN pour la segmentation et la sécurité ;
- Distinguer port access et port trunk, expliquer le marquage 802.1Q et le VLAN natif ;
- Créer des VLAN, affecter des ports, configurer un trunk ;
- Vérifier avec
show vlanetshow interfaces trunk; - Gérer utilisateurs, groupes et permissions sous Linux.
I. VLANs : Segmentation Logique du Réseau
A. Définition et Problème Résolu
VLAN (Virtual Local Area Network) = Réseau local logique créé à l'intérieur d'un switch physique. Un VLAN regroupe des ports de switch qui forment un domaine de diffusion isolé, indépendamment du câblage physique.
Problème sans VLAN : - Tous les ports d'un switch = 1 domaine de diffusion unique - Tout le monde reçoit les broadcasts - Pas d'isolation entre services → risque de sécurité, performances dégradées
Solution avec VLANs :
B. Avantages des VLANs
| Avantage | Explication |
|---|---|
| Sécurité | Isolation logique : Commercial ne voit pas les trames de la Direction |
| Performance | Réduction des broadcasts (chaque VLAN = 1 domaine de diffusion distinct) |
| Flexibilité | Regrouper des utilisateurs par fonction, pas par emplacement physique |
| Économie | Un seul équipement physique pour plusieurs réseaux logiques |
| Administration | Changer de service = changer l'affectation du port, pas re-câbler |
C. Types de Ports Switch : Access vs Trunk
Port Access (Port d'Accès)
- Appartient à un seul VLAN
- Connecte les équipements terminaux (PC, imprimante, téléphone IP)
- La trame qui sort du port Access est sans tag VLAN (l'équipement terminal ne sait pas qu'il est dans un VLAN)
Port Trunk (Port de Liaison)
- Transporte plusieurs VLANs simultanément
- Connecte les switches entre eux ou un switch à un routeur
- Chaque trame est taguée avec le numéro de VLAN (sauf VLAN natif)
D. Le Protocole 802.1Q (Dot1Q) : Marquage des Trames
Principe : Quand une trame traverse un trunk, le switch y insère un tag de 4 octets (32 bits) entre l'en-tête Ethernet et les données.
Structure du tag 802.1Q :
VID (VLAN Identifier) : 12 bits → 4096 VLANs possibles (0 et 4095 réservés → 4094 utilisables).
E. Le VLAN Natif
Définition : Le VLAN natif est le seul VLAN dont les trames traversent le trunk sans tag.
- Valeur par défaut Cisco : VLAN 1
- Les deux extrémités du trunk doivent avoir le même VLAN natif
- Si mismatch : CDP (Cisco Discovery Protocol) affiche une erreur
Bonne pratique : Changer le VLAN natif (pas VLAN 1) et n'y mettre aucun utilisateur.
F. Fonctionnement Complet : Trame VLAN de A à Z
Topologie :
PC1 envoie une trame à PC3 :
- PC1 envoie une trame normale (sans tag) sur son port Access ; SW_A la reçoit sur un port Access du VLAN 10.
- SW_A consulte sa table MAC pour le VLAN 10 : si PC3 est connu, la sortie est le port Trunk, et SW_A ajoute le tag VLAN 10.
- La trame taguée traverse le trunk.
- SW_B lit le tag (VLAN 10), le retire, puis envoie la trame sans tag sur le port Access VLAN 10 de PC3.
- PC3 reçoit une trame normale : il ne sait pas qu'elle a été taguée.
PC2 (VLAN 20) essaie d'envoyer à PC3 (VLAN 10) : - Impossible au niveau L2 — ils sont dans des VLANs différents - SW_A ne transmettra jamais une trame VLAN 20 sur un port VLAN 10
II. Configuration VLANs sur Switch Cisco
A. Créer des VLANs
Mode : Global Configuration
Switch# configure terminal
! Créer VLAN 10 et le nommer
Switch(config)# vlan 10
Switch(config-vlan)# name DIRECTION
Switch(config-vlan)# exit
! Créer VLAN 20
Switch(config)# vlan 20
Switch(config-vlan)# name COMMERCIAL
Switch(config-vlan)# exit
! Créer VLAN 30
Switch(config)# vlan 30
Switch(config-vlan)# name INFORMATIQUE
Switch(config-vlan)# exit
Vérification :
Résultat :
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, ... (tous les ports non affectés)
10 DIRECTION active
20 COMMERCIAL active
30 INFORMATIQUE active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
À noter : Les VLANs 10, 20, 30 n'ont pas encore de ports affectés (colonne Ports vide).
B. Affecter des Ports en Mode Access
Mode : Interface Configuration
! Port 1 → VLAN 10 (Direction)
Switch(config)# interface FastEthernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
! Port 2 → VLAN 10 (Direction)
Switch(config)# interface FastEthernet0/2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
! Ports 3-4 → VLAN 20 (Commercial) - commande de plage
Switch(config)# interface range FastEthernet0/3 - 4
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 20
Switch(config-if-range)# exit
! Ports 5-6 → VLAN 30 (Informatique)
Switch(config)# interface range FastEthernet0/5 - 6
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 30
Switch(config-if-range)# exit
Vérification :
Résultat attendu :
VLAN Name Status Ports
---- --------------- --------- --------
1 default active Fa0/7, Fa0/8 ... (ports non affectés)
10 DIRECTION active Fa0/1, Fa0/2
20 COMMERCIAL active Fa0/3, Fa0/4
30 INFORMATIQUE active Fa0/5, Fa0/6
C. Configurer un Port Trunk
Mode : Interface Configuration (sur le port reliant 2 switches)
! Port 24 = liaison inter-switches → Trunk
Switch(config)# interface FastEthernet0/24
Switch(config-if)# switchport mode trunk
! (Optionnel - Bonne pratique) Restreindre les VLANs autorisés
Switch(config-if)# switchport trunk allowed vlan 10,20,30
! (Optionnel - Bonne pratique) Changer le VLAN natif
Switch(config-if)# switchport trunk native vlan 99
Switch(config-if)# exit
Switch(config)# end
Switch# copy run start
Vérification :
Résultat :
Port Mode Encapsulation Status Native vlan
Fa0/24 on 802.1q trunking 99
Port Vlans allowed on trunk
Fa0/24 10,20,30
Port Vlans allowed and active in management domain
Fa0/24 10,20,30
Port Vlans in spanning tree forwarding state and not pruned
Fa0/24 10,20,30
Commande utile pour inspecter un port :
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: dot1q
Access Mode VLAN: 10 (DIRECTION)
Trunking Native Mode VLAN: 1 (default)
...
III. Linux : Utilisateurs, Groupes et Permissions
A. Notion d'Utilisateurs sous Linux
Linux est un système multi-utilisateurs. Chaque fichier et processus appartient à un utilisateur.
Types de comptes :
| Type | UID | Exemples | Usage |
|---|---|---|---|
| root | 0 | root |
Super-administrateur, accès total |
| Utilisateur système | 1-999 | www-data, syslog |
Services/démons système, pas de connexion interactive |
| Utilisateur normal | ≥1000 | alice, etudiant |
Utilisateurs humains |
Fichiers clés :
cat /etc/passwd # Liste des comptes : login:x:UID:GID:info:home:shell
cat /etc/group # Liste des groupes : nom:x:GID:membres
sudo cat /etc/shadow # Mots de passe hashés (root uniquement)
Exemple de ligne /etc/passwd :
B. Créer et Gérer des Utilisateurs
# Créer un utilisateur avec home directory et shell bash
sudo useradd -m -s /bin/bash alice
# -m : créer /home/alice automatiquement
# -s : définir le shell (/bin/bash = shell interactif)
# Définir le mot de passe
sudo passwd alice
# → Demande le nouveau MDP (2 fois, ne s'affiche pas)
# Créer un utilisateur et l'affecter directement à un groupe
sudo useradd -m -s /bin/bash -G direction alice
# -G : groupe(s) supplémentaires (en plus du groupe principal)
# Modifier un utilisateur existant
sudo usermod -aG direction alice # Ajouter alice au groupe direction (-a = append, sinon remplace)
sudo usermod -aG sudo alice # Donner les droits sudo à alice
sudo usermod -s /bin/sh alice # Changer le shell
sudo usermod -l nouveau_nom alice # Renommer le compte
# Supprimer un utilisateur
sudo userdel alice # Supprime le compte (garde /home/alice)
sudo userdel -r alice # Supprime compte + /home/alice + mail spool
usermod -aG vs usermod -G :
- -G groupe seul → remplace tous les groupes supplémentaires par groupe
- -aG groupe → ajoute groupe aux groupes existants (append)
- Toujours utiliser -aG pour ne pas accidentellement retirer des accès !
C. Créer et Gérer des Groupes
# Créer un groupe
sudo groupadd direction
sudo groupadd commercial
sudo groupadd informatique
# Supprimer un groupe
sudo groupdel direction
# Afficher les groupes d'un utilisateur
groups alice # Sortie : alice direction sudo
id alice # Sortie : uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm),27(sudo),1002(direction)
# Lister tous les groupes
cat /etc/group
D. Comprendre les Permissions Linux
Chaque fichier/répertoire a 3 niveaux de permissions pour 3 catégories :
Décomposition des 9 caractères de permissions :
Signification de chaque permission :
| Permission | Symbole | Valeur | Sur un fichier | Sur un répertoire |
|---|---|---|---|---|
| Read | r |
4 | Lire le contenu | Lister le contenu (ls) |
| Write | w |
2 | Modifier/écrire | Créer/supprimer des fichiers dedans |
| Execute | x |
1 | Exécuter (script, programme) | Traverser (cd dans ce répertoire) |
| Aucune | - |
0 | Accès refusé | Accès refusé |
E. Modifier les Permissions : chmod
Deux syntaxes : numérique (rapide) et symbolique (lisible).
Syntaxe Numérique
Calculer la valeur pour chaque catégorie (u/g/o) : r=4, w=2, x=1.
Exemples courants :
| Notation | Permissions | Usage typique |
|---|---|---|
chmod 777 |
rwxrwxrwx |
Dangereux - tout le monde peut tout faire |
chmod 755 |
rwxr-xr-x |
Script/exécutable : proprio tout, groupe+autres exécutent |
chmod 644 |
rw-r--r-- |
Fichier normal : proprio modifie, groupe+autres lisent |
chmod 640 |
rw-r----- |
Fichier sensible : groupe lit, autres rien |
chmod 600 |
rw------- |
Fichier privé : proprio seul modifie |
chmod 700 |
rwx------ |
Répertoire privé : proprio seul accède |
Calcul rapide chmod 754 :
7 = r+w+x = 4+2+1 = rwx (propriétaire)
5 = r+x = 4+0+1 = r-x (groupe)
4 = r = 4+0+0 = r-- (autres)
→ rwxr-xr--
Syntaxe Symbolique
Format : chmod [qui][opération][permission] fichier
| Qui ? | Opération | Permission |
|---|---|---|
u = user (propriétaire) |
+ = ajouter |
r = lecture |
g = group |
- = retirer |
w = écriture |
o = others |
= = définir exactement |
x = exécution |
a = all (tous) |
chmod u+x script.sh # Ajouter l'exécution au propriétaire
chmod g-w fichier.txt # Retirer l'écriture au groupe
chmod o-rwx confidentiel.txt # Retirer tout aux autres
chmod a+r rapport.pdf # Ajouter lecture à tous
chmod u=rwx,g=rx,o= dossier/ # Définir précisément : proprio=rwx, groupe=r-x, autres=---
chmod -R 755 /var/www/html/ # Appliquer récursivement (-R)
F. Modifier le Propriétaire : chown
# Changer le propriétaire
chown alice fichier.txt # Fichier appartient maintenant à alice
sudo chown alice fichier.txt # Souvent besoin de sudo
# Changer propriétaire ET groupe simultanément
chown alice:direction fichier.txt # alice = proprio, direction = groupe
chown :direction fichier.txt # Changer seulement le groupe (équivalent chgrp)
# Récursif (tout un dossier)
sudo chown -R alice:direction /var/data/direction/
G. Scénario Complet : Créer des Utilisateurs par Service
Objectif : Préparer un système Linux pour 3 services (Direction, Commercial, Informatique) avec isolation des données.
# 1. Créer les groupes
sudo groupadd direction
sudo groupadd commercial
sudo groupadd informatique
# 2. Créer les utilisateurs
sudo useradd -m -s /bin/bash -G direction alice
sudo passwd alice # Définir MDP pour alice
sudo useradd -m -s /bin/bash -G direction bob
sudo passwd bob
sudo useradd -m -s /bin/bash -G commercial charlie
sudo passwd charlie
sudo useradd -m -s /bin/bash -G informatique diana
sudo passwd diana
# 3. Créer les répertoires partagés par service
sudo mkdir -p /data/direction
sudo mkdir -p /data/commercial
sudo mkdir -p /data/informatique
# 4. Affecter propriétaire et groupe
sudo chown root:direction /data/direction
sudo chown root:commercial /data/commercial
sudo chown root:informatique /data/informatique
# 5. Permissions : groupe peut lire/écrire/traverser, autres rien
sudo chmod 770 /data/direction
sudo chmod 770 /data/commercial
sudo chmod 770 /data/informatique
# → rwxrwx--- : proprio(root)=tout, groupe=tout, autres=rien
# 6. Vérification
ls -ld /data/direction
# drwxrwx--- 2 root direction 4096 nov 15 10:30 /data/direction
# Test : alice (direction) peut-elle accéder à /data/commercial ?
su - alice
ls /data/commercial # Doit afficher "Permission non accordée"
ls /data/direction # Doit fonctionner
IV. Vocabulaire Clé
| Terme | Définition |
|---|---|
| VLAN | Virtual Local Area Network - réseau logique sur un switch physique |
| Segmentation logique | Découpage d'un réseau en sous-réseaux isolés sans modifier le câblage |
| Port Access | Port switch appartenant à un seul VLAN (pour équipements terminaux) |
| Port Trunk | Port switch transportant plusieurs VLANs (liaisons inter-switches) |
| Tag 802.1Q | En-tête de 4 octets inséré dans la trame pour identifier le VLAN |
| VID | VLAN Identifier - 12 bits dans le tag 802.1Q (4094 VLANs max) |
| VLAN natif | VLAN dont les trames traversent le trunk sans tag (défaut = VLAN 1) |
| Domaine de diffusion VLAN | Un VLAN = un domaine de diffusion distinct |
| Routage inter-VLAN | Communication entre VLANs via un routeur ou switch L3 |
vlan <id> |
Mode de configuration d'un VLAN dans la CLI Cisco |
switchport mode access |
Configurer un port en mode Access |
switchport mode trunk |
Configurer un port en mode Trunk |
show vlan brief |
Afficher résumé des VLANs et leurs ports |
show interfaces trunk |
Afficher les ports trunk et les VLANs autorisés |
| UID | User ID - identifiant numérique d'un utilisateur Linux |
| GID | Group ID - identifiant numérique d'un groupe Linux |
useradd |
Commande de création d'utilisateur Linux |
passwd |
Définir ou changer un mot de passe utilisateur |
usermod -aG |
Ajouter un utilisateur à un groupe (sans retirer les autres) |
groupadd |
Créer un groupe Linux |
| Permissions rwx | Read (4), Write (2), eXecute (1) sur fichier ou répertoire |
chmod |
Modifier les permissions d'un fichier/répertoire |
chown |
Changer le propriétaire (et éventuellement le groupe) |
ls -l |
Afficher les permissions, propriétaire, taille d'un fichier |
V. Exercices d'Entraînement
Exercice 1 : Calcul de Permissions
Convertir en notation symbolique (rwx) :
| chmod | Propriétaire | Groupe | Autres | Notation symbolique |
|---|---|---|---|---|
chmod 755 |
||||
chmod 644 |
||||
chmod 700 |
||||
chmod 640 |
||||
chmod 777 |
Correction : valeur numérique vers symbolique
Chaque chiffre est la somme de r = 4, w = 2, x = 1.
| chmod | Propriétaire | Groupe | Autres | Notation symbolique |
|---|---|---|---|---|
chmod 755 |
7 = rwx | 5 = r-x | 5 = r-x | rwxr-xr-x |
chmod 644 |
6 = rw- | 4 = r-- | 4 = r-- | rw-r--r-- |
chmod 700 |
7 = rwx | 0 = --- | 0 = --- | rwx------ |
chmod 640 |
6 = rw- | 4 = r-- | 0 = --- | rw-r----- |
chmod 777 |
7 = rwx | 7 = rwx | 7 = rwx | rwxrwxrwx |
Et l'inverse, convertir en valeur numérique :
| Notation symbolique | Valeur numérique |
|---|---|
rwxr-xr-x |
|
rw-r--r-- |
|
rwx------ |
|
rw-rw-r-- |
Correction : symbolique vers valeur numérique
On additionne les droits de chaque groupe de trois caractères.
| Notation symbolique | Calcul | Valeur numérique |
|---|---|---|
rwxr-xr-x |
rwx = 4+2+1 = 7 ; r-x = 4+1 = 5 ; r-x = 5 | 755 |
rw-r--r-- |
rw- = 4+2 = 6 ; r-- = 4 ; r-- = 4 | 644 |
rwx------ |
rwx = 7 ; --- = 0 ; --- = 0 | 700 |
rw-rw-r-- |
rw- = 6 ; rw- = 6 ; r-- = 4 | 664 |
Exercice 2 : Analyse ls -l
-rw-r----- 1 alice direction 2048 nov 15 rapport.pdf
drwxrwx--- 2 root commercial 4096 nov 15 /data/commercial
-rwxr-xr-x 1 root root 512 nov 15 script.sh
1. Qui peut lire rapport.pdf ? Qui ne peut pas ?
Correction de la question 1
Le propriétaire alice (rw-) et les membres du groupe direction (r--) peuvent le lire. Les autres (---) ne peuvent pas, y compris les membres du groupe commercial. L'administrateur root passe outre les permissions.
2. Qui peut créer des fichiers dans /data/commercial ?
Correction de la question 2
Pour créer un fichier dans un dossier, il faut les droits w (écriture) et x (traversée) sur ce dossier. Le propriétaire root et le groupe commercial ont rwx : ils peuvent créer des fichiers. Les autres n'ont aucun droit (---).
3. L'utilisateur charlie (groupe commercial) peut-il exécuter script.sh ?
Correction de la question 3
Oui. charlie n'est ni root ni dans le groupe root : ce sont les droits des autres qui s'appliquent, soit r-x. Il a donc le droit de lire et d'exécuter le script.
4. Donner la commande pour que bob (groupe direction) puisse lire rapport.pdf.
Correction de la question 4
Aucune commande n'est nécessaire : le groupe direction a déjà le droit de lecture (r--), et bob en fait partie. Si bob n'était pas dans ce groupe : sudo usermod -aG direction bob (il doit se reconnecter), ou, pour ne donner l'accès qu'à lui, setfacl -m u:bob:r rapport.pdf.
Exercice 3 : VLANs
Un switch a la configuration suivante :
Questions :
1. PC branché en port 2 peut-il communiquer avec PC en port 5 ? Pourquoi ?
Correction de la question 1
Non. Le port 2 est dans le VLAN 10 et le port 5 dans le VLAN 20 : deux VLAN sont deux domaines de diffusion séparés, le switch ne fait jamais passer une trame de l'un à l'autre. Il faudrait un routeur.
2. PC en port 7 envoie un broadcast. Qui le reçoit ?
Correction de la question 2
Uniquement les équipements du VLAN 30 : le PC du port 8, et, par le trunk du port 24 (la trame y est étiquetée VLAN 30), les membres du VLAN 30 du second switch. Les VLAN 10 et 20 ne le reçoivent pas.
3. Quelle commande affiche les ports affectés à chaque VLAN ?
Correction de la question 3
show vlan brief.
4. Que faut-il pour que RH et IT puissent s'envoyer des fichiers ?
Correction de la question 4
Un équipement de couche 3 : un routeur (sous-interfaces 802.1Q, « router on a stick ») ou un switch L3. Chaque VLAN a son propre réseau IP avec une passerelle, et les PC sont configurés avec cette passerelle. Le partage de fichiers doit en plus être autorisé par les règles de filtrage éventuelles (ACL, pare-feu).
5. Si le port 24 est en trunk, quels VLANs traversent-ils la liaison vers le 2e switch ?
Correction de la question 5
Par défaut, tous les VLAN existants sur le switch (1, 10, 20, 30). On restreint en pratique avec switchport trunk allowed vlan 10,20,30 pour ne transporter que les VLAN utiles.
VI. Auto-évaluation : Suis-je Prêt ?
- Expliquer l'intérêt des VLANs (sécurité, performance, flexibilité)
- Distinguer port Access (1 VLAN) et port Trunk (N VLANs)
- Expliquer le rôle du tag 802.1Q et du VLAN natif
- Créer des VLANs sur un switch Cisco et les nommer
- Affecter des ports en mode Access à un VLAN
- Configurer un port Trunk entre deux switches
- Utiliser
show vlan briefetshow interfaces trunk - Créer des utilisateurs et groupes Linux (useradd, groupadd, passwd)
- Ajouter un utilisateur à un groupe (usermod -aG)
- Lire les permissions Linux (rwxr-xr-x → 755)
- Calculer la valeur chmod numérique (r=4, w=2, x=1)
- Modifier les permissions avec chmod (numérique et symbolique)
- Changer le propriétaire d'un fichier avec chown