Cours rédigé par : GADONNAUD Ewen
Formation : BTS SIO 1ère année - Option SISR
Établissement : Lycée Paul-Louis Courier, Tours
Date : Mars 2026
Une ACL (Access Control List) est un ensemble de règles appliquées sur une interface d'un routeur ou switch L3 pour filtrer le trafic réseau. Chaque règle (appelée ACE — Access Control Entry) autorise ou refuse des paquets selon des critères définis.
À quoi ça sert ?
Traitement séquentiel
Les règles d'une ACL sont lues dans l'ordre, de haut en bas. Dès qu'une règle correspond au paquet, elle est appliquée et les suivantes sont ignorées.
Paquet entrant
|
v
Règle 1 → correspond ? → OUI → Action (permit/deny) → FIN
|
NON
|
Règle 2 → correspond ? → OUI → Action (permit/deny) → FIN
|
NON
|
Règle 3 ...
|
NON
|
deny any implicite → Paquet bloqué
permit any explicite en fin d'ACL si on veut autoriser le reste du trafic.
Direction d'application
Une ACL s'applique sur une interface dans une direction :
| Direction | Signification |
|---|---|
| in | Filtre le trafic entrant sur l'interface (avant le routage) |
| out | Filtre le trafic sortant de l'interface (après le routage) |
| Type | Numéros | Critères de filtrage |
|---|---|---|
| Standard | 1-99 / 1300-1999 | IP source uniquement |
| Étendue | 100-199 / 2000-2699 | IP source, IP destination, protocole, port |
ACL Standard — simple mais peu précise. Elle filtre uniquement sur l'adresse IP source, sans tenir compte de la destination ni du protocole.
ACL Étendue — plus fine. Elle permet de filtrer sur la combinaison source + destination + protocole + port, ce qui la rend adaptée à la majorité des cas réels.
Le placement est critique : une ACL mal placée peut bloquer du trafic légitime ou laisser passer du trafic indésirable.
| Type | Règle de placement | Raison |
|---|---|---|
| Standard | Au plus près de la destination | Elle ne filtre que sur la source — placée trop près de la source, elle bloquerait l'accès à tous les réseaux |
| Étendue | Au plus près de la source | Elle est précise (src + dst + port) — l'y placer évite que le trafic indésirable traverse inutilement le réseau |
On réutilise la maquette de la page VLANs :
VLAN 10 — USERS → 192.168.10.0/24 (passerelle : 192.168.10.1) VLAN 20 — IT → 192.168.20.0/24 (passerelle : 192.168.20.1) VLAN 30 — SERVEURS → 192.168.30.0/24 (passerelle : 192.168.30.1) Serveur Web : 192.168.30.10 (HTTP/HTTPS) Serveur SSH : 192.168.30.20 (port 22)
Objectif : Interdire au VLAN 10 (USERS) d'accéder au VLAN 20 (IT).
Placement : proche de la destination → sur l'interface du routeur côté VLAN 20, en out.
ROUTEUR(config)# ip access-list standard BLOC-USERS-VERS-IT ROUTEUR(config-std-nacl)# deny 192.168.10.0 0.0.0.255 ROUTEUR(config-std-nacl)# permit any ROUTEUR(config)# interface GigabitEthernet0/0.20 ROUTEUR(config-subif)# ip access-group BLOC-USERS-VERS-IT out
Lecture de la règle :
deny 192.168.10.0 0.0.0.255 → bloque tout paquet venant du réseau 192.168.10.0/24permit any → autorise tout le resteLe wildcard mask indique quels bits de l'adresse IP doivent être vérifiés :
| Réseau | Masque | Wildcard |
|---|---|---|
| 192.168.10.0/24 | 255.255.255.0 | 0.0.0.255 |
| 192.168.0.0/16 | 255.255.0.0 | 0.0.255.255 |
| 10.0.0.0/8 | 255.0.0.0 | 0.255.255.255 |
| Hôte unique 192.168.10.5 | — | 0.0.0.0 |
| Tous (any) | — | 255.255.255.255 |
host 192.168.10.5 est équivalent à 192.168.10.5 0.0.0.0
any est équivalent à 0.0.0.0 255.255.255.255
Objectif : Autoriser le VLAN 10 à accéder uniquement au serveur web (HTTP/HTTPS) du VLAN 30, et bloquer tout autre accès au VLAN 30.
Placement : proche de la source → sur l'interface du routeur côté VLAN 10, en in.
ROUTEUR(config)# ip access-list extended ACCES-SERVEURS ROUTEUR(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 host 192.168.30.10 eq 80 ROUTEUR(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 host 192.168.30.10 eq 443 ROUTEUR(config-ext-nacl)# deny ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 ROUTEUR(config-ext-nacl)# permit ip any any ROUTEUR(config)# interface GigabitEthernet0/0.10 ROUTEUR(config-subif)# ip access-group ACCES-SERVEURS in
Lecture des règles :
Mots-clés pour les ports courants :
| Mot-clé | Port | Protocole |
|---|---|---|
eq 80 | 80 | HTTP |
eq 443 | 443 | HTTPS |
eq 22 | 22 | SSH |
eq 21 | 21 | FTP |
eq 53 | 53 | DNS |
eq 3389 | 3389 | RDP |
Objectif : Le VLAN 20 (IT / Admin) doit pouvoir accéder à tous les autres VLANs de l'entreprise, mais aucun autre VLAN ne doit pouvoir initier une connexion vers le VLAN IT.
Le piège du routeur “Stateless” : Contrairement à un pare-feu moderne, un routeur classique avec des ACL ne garde pas en mémoire l'état des connexions (il est “stateless”). Si l'administrateur lance un ping vers le VLAN USERS, le routeur laisse passer l'aller. Mais quand le PC USERS répond, le routeur voit cela comme un nouveau trafic. Si on bloque bêtement tout le trafic provenant de USERS vers IT, la réponse sera détruite et le ping échouera.
La solution :
Il faut utiliser une ACL Étendue avec les arguments established (pour les sessions TCP déjà ouvertes par l'Admin) et echo-reply (pour les réponses aux pings de l'Admin).
Placement : Sur l'interface du VLAN IT (VLAN 20), en direction out (le trafic qui redescend du routeur vers les PC IT).
ROUTEUR(config)# ip access-list extended PROTECT-IT ! 1. Autoriser les réponses de ping (retour) ROUTEUR(config-ext-nacl)# permit icmp any 192.168.20.0 0.0.0.255 echo-reply ! 2. Autoriser le trafic TCP de retour (navigation web, SSH, etc. initiés par l'IT) ROUTEUR(config-ext-nacl)# permit tcp any 192.168.20.0 0.0.0.255 established ! 3. Bloquer toute nouvelle requête provenant des autres VLANs (USERS et SERVEURS) ROUTEUR(config-ext-nacl)# deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 ROUTEUR(config-ext-nacl)# deny ip 192.168.30.0 0.0.0.255 192.168.20.0 0.0.0.255 ! 4. Autoriser le reste du trafic au besoin ROUTEUR(config-ext-nacl)# permit ip any any ROUTEUR(config)# interface GigabitEthernet0/0.20 ROUTEUR(config-subif)# ip access-group PROTECT-IT out
Avec les ACL nommées, on peut supprimer une règle précise sans tout recréer :
! Afficher les règles avec leurs numéros de séquence show access-lists ACCES-SERVEURS ! Supprimer une règle par son numéro de séquence ROUTEUR(config)# ip access-list extended ACCES-SERVEURS ROUTEUR(config-ext-nacl)# no 30 ! Supprime la règle numéro 30 ! Insérer une règle à une position précise ROUTEUR(config-ext-nacl)# 25 permit tcp 192.168.10.0 0.0.0.255 host 192.168.30.20 eq 22
show access-lists ! Toutes les ACL avec compteurs de hits show access-lists ACCES-SERVEURS ! Une ACL spécifique show ip interface GigabitEthernet0/0.10 ! ACL appliquées sur une interface clear ip access-list counters ! Remet les compteurs à zéro
show access-lists indiquent combien de fois chaque règle a été déclenchée. C'est très utile pour déboguer : si le compteur d'une règle permit ne bouge pas, c'est qu'une règle deny plus haute intercepte le trafic avant.
permit any si nécessaire