🌐 Réseaux · VOIP + Sécurité Avancé 📅 Publié en 2022 🎬 19 min 53

ACL - Access Control Liste

Une ACL (Access Control List) est un ensemble de règles qui contrôlent le trafic réseau en autorisant ou en refusant l'accès à certaines ressources en fonction de critères comme les adresses IP, les ports ou les protocoles.

Introduction

C’est quoi les Accès List (ACL) ou en français les listes d’accès ?

Les listes d’accès ont plusieurs fonctions possibles sur un routeur ; on l’utilise dans la sécurité d’un réseau comme moyen de :

  • Filtrage
  • De contrôle des mises à jour du routage
  • De la gestion des priorités
  • La gestion de la numérisation sur RNIS
  • La sécurité d’accès aux informations
  • Etc…

Une ACL est une liste ordonnée d’ACE (Access Control Entry) décrivant des règles de filtrage à appliquer au trafic des datagrammes IP.

  1. Les ACL IP standards testent uniquement l’adresse IP source dans le datagramme IP.
  2. Les ACL IP étendues testent : l’adresse IP source, l’adresse IP destination, le champ protocole et les Ports TCP ou UDP, etc.

Les ACL IP nommées fonctionnent comme les ACL numérotées, mais présentent plusieurs avantages :

  1. Un nom ou label est davantage significatif pour nous humains.
  2. Le nombre d’ACL n’est pas limité de 1 à 99 ou 100 à 199.
  3. Une simplification dans l’écriture des ACL en cas de modification, une instruction de l’ACL nommée peut-être supprimée séparément contrairement aux ACL numérotées où il faudra supprimer la liste entière.
  4. Les commentaires sont possibles.

Les ACL Standards numérotées

La logique implémentée par une liste d’accès peut être résumée par la séquence suivante :

  • Le paquet est comparé aux paramètres de la première instruction de la liste.
  • Si une correspondance est trouvée, l’action définie dans l’instruction est exécutée (soit autoriser ou rejeter).
  • Si aucune correspondance n’est trouvée, les deux premières étapes sont répétées avec l’instruction suivante de la liste.
  • Si aucune correspondance n’est trouvée par l’ensemble des instructions de la liste, le paquet est rejeté par défaut.

Chaque nouvelle instruction est inscrite à la fin de la liste.

La logique de traitement décrite précédemment nous montre que l’ordre des instructions est très important, pour ajouter une instruction « à sa place » dans la liste, il convient de supprimer la liste puis de la recréer.

Pour cela l’on peut utiliser la technique du copier-coller, ou encore se servir du service TFTP. (Remonter la configuration sur le serveur, la modifier, la redescendre sur le routeur).

Les ACL étendues numérotées

Les Access-List IP étendues sont presque identiques aux listes d’accès standard, en ce qui concerne leur emploi et la logique de traitement des instructions. Cependant elles permettent de comparer un plus grand nombre de champs dans un paquet. La logique de filtrage est par conséquent beaucoup plus complexe.

Néanmoins, ces deux types de liste peuvent filtrer des paquets en entrées comme en sortie.

Rappel :

  • Les instructions de la liste sont traitées de façon séquentielle, c’est à dire que dès qu’une instruction fait l’objet d’une correspondance, la recherche prend fin et l’action définie par l’instruction est exécutée.
  • Une instruction est considérée comme correspondante seulement si une correspondance est trouvée pour chacun de ses paramètres ; sinon son exécution est interrompue et l’instruction suivante de la liste est examinée.
  • Si aucune correspondance n’est trouvée par l’ensemble des instructions de la liste, le paquet est rejeté par défaut.

Les ACL Standards nommées

Vous pouvez identifier votre Access-List par un nom ceci peut permettre d’utiliser plus de 99 Access-Lists simples.

Cette facilité est apparue avec la version 11.2 de l’IOS.

Ce type de liste n’est utilisable que pour le filtrage des paquets ou des routes au niveau d’une interface.

Une liste standard et une liste étendue ne peuvent pas avoir le même nom.

Pour utiliser une Access-List Nommée, la méthode et la syntaxe des commandes sont légèrement différentes.

Les ACL Etendues nommées

Vous pouvez identifier votre Access-List par un nom ceci peut permettre d’utiliser plus de 100 Access

Listes étendues.

Cette facilité est apparue avec la version 11.2 de l’IOS.

Ce type de liste n’est utilisable que pour le filtrage des paquets ou des routes au niveau d’une interface.

Une liste standard et une liste étendue ne peuvent pas avoir le même nom.

Pour utiliser une Access-List Nommée, la méthode et la syntaxe des commandes sont légèrement différentes.

Les ACL Dynamiques

Ce sont des listes d’accès dont certaines lignes peuvent être validées par une commande de type « EXEC » sur le routeur (access-enable).

L’option dynamique sera retenue pour les lignes activées par la commande EXEC : « access-Enable ».

Les ACL basées sur le temps

Ce type d’ACL permet d’autoriser un trafic donné en fonction de créneau horaire :

Les ACL réflectives

Les ACL réflectives sont apparues après les listes d’accès dynamique, de par leur fonctionnement elles mériteraient de porter le nom de listes dynamiques.

Les ACL réflectives sont un moyen simple de filtrer le trafic IP. Elles permettent d’autoriser le trafic initialisé depuis une station de votre réseau et d’interdire le trafic initialisé par une station étrangère. Par exemple lorsqu’un premier paquet arrive sur le routeur et qu’il est autorisé par la liste, une nouvelle entrée temporaire est créée et ajouter à la « réflective liste ».

Il existe deux restrictions relatives à l’utilisation des listes d’accès réflectives :

  • Elles peuvent être définies uniquement avec des Access-Lists IP étendues nommées.
  • Elles ne fonctionnent pas avec certaines applications qui utilisent des numéros de ports changeant en cours de session, comme le protocole FTP.

Schéma — Types d'ACL

ACL Standard 1–99 · 1300–1999 ACL Étendue 100–199 · 2000–2699 ACL Nommée nom personnalisé Filtre : IP source uniquement Filtre : IP src/dst · proto · port Filtre : standard ou étendue PLACEMENT Près de la destination PLACEMENT Près de la source PLACEMENT Selon le type choisi APPLICATION SUR INTERFACE Direction IN (entrant) ip access-group X in Direction OUT (sortant) ip access-group X out

Cas pratique

Nous allons passer en pratique sur comment mettre en place des ACL en créant un réseau dans le logiciel Packet Tracer, dans un prmier temps sur l'ACL - standard, puis un autre réseau avec les mêmes matériaux (même structure), mais en utilisant les ACL - Etendues ; comme cela vous permettra de mieux comprendre la différence de chacun.

Nous aurons besoin d'un serveur, de quatre ordinateurs, de quatre Switch et de trois routeurs, donc voici la topologie ci-dessous :

Équipement Adresse IP Remarque
PC-1 192.168.1.254/24 Configuré manuellement
PC-2 192.168.1.253/24 Configuré manuellement
Switch-1 2960 Commutateur LAN --
Routeur-1 Fa0/0 192.168.1.1/24 Passerelle
Routeur-1 Fa1/0 192.168.4.1/24 Passerelle
Switch-2 2960 Commutateur LAN --
Routeur-2 Fa1/0 192.168.4.2/24 Passerelle
Routeur-2 Fa0/0 192.168.2.1/24 Passerelle
Switch-4 Commutateur LAN --
PC-3 192.168.2.254/24 Configuré manuellement
Routeur-3 Fa1/0 192.168.3.1/24 Passerelle
Routeur-3 Fa0/0 192.168.4.3/24 Passerelle
Switch-3 Commutateur LAN --
Serveur 192.168.3.254/24 Configuré manuellement
PC-4 192.168.3.253/24 Configuré manuellement
topologie du réseau

Je vous laisse mettre en place les composants et leurs fournir des adresse IP pour chaque appareil en ce basent sur le tableau, avant de ce mettre a mettre en place les ACL.

Nous utiliserons la même topologie, pour la mise en place des ACL - standard et ACL - Etentdue, sur deux fichiers différent.

Mise en place de l'ACL - standard

Nous allons mettre en place l'access control list - standard avec les commandes lister ci-dessous, puis fait les tests d'accès du PC-4 vers le PC-3 avec la commande ping sur le PC-4.

IOS — Commande Cisco · Routeur 3

          ! ── Passer en mode privilégié ─────────────────────────
          Router> enable

          ! ── Entrer en mode de configuration globale ───────────
          Router# configure terminal

				  ! ── Renommer le Routeur 3 ───────────
          Router(config)# hostname R3

          ! ── Création de ACL ───────────
          R3(config)# ip access-list standard 1

          ! ── Déclaration du blocage de l'adresse IP ───────────
          R3(config-std-nacl)# deny 192.168.2.0 0.0.0.255

          ! ── Permition sur d'autres accès ───────────
          R3(config-std-nacl)# permit any

          ! ── Quitter l'interface ───────────
          R3(config-std-nacl)# exit

          ! ── Accès à l'interface fstEthernet 0/0 ───────────
          R3(config)# interface fastEthernet 0/0

          ! ── Configuration de l'interface FastEthernet 0/0 ───────────
          R3(config-if)# ip access-group 1 out

          ! ── Quitter l'interface ───────────
          R3(config-if)# exit
        

Nous pouvons faire le test d'accès au PC-3, avec la commande ping 192.168.2.254, normalement, il ne devrais plus avoir accès.

Mise en place de l'ACL - étendues

Nous allons mettre en place l'access control list - étendues avec les commandes lister ci-dessous, puis fait les tests d'accès du PC-1 vers le PC-3 avec la commande ping sur le PC-1.

IOS — Commande Cisco · Routeur 1

          ! ── Passer en mode privilégié ─────────────────────────
          Router> enable

          ! ── Entrer en mode de configuration globale ───────────
          Router# configure terminal

          ! ── Renommer le Routeur 1 ───────────
          Router(config)# hostname R1

          ! ── Création de ACL ───────────
          R1(onfig)# access-list extended 101

          ! ── Déclaration du blocage de l'adresse IP ───────────
          R1(config-ext-nacl)# deny tcp host 192.168.1.253 host 192.168.3.253

          ! ── Permition sur d'autres accès ───────────
          R1(config-ext-nacl)# permit ip any any

          ! ── Quitter l'interface ───────────
          R1(config-ext-nacl)# exit

          ! ── Accès à l'interface fstEthernet 0/0 ───────────
          R1(config)# interface fastEthernet 0/0

          ! ── Configuration de l'interface FastEthernet 0/0 ───────────
          R1(config-if)# ip access-group 101 in

          ! ── Quitter l'interface ───────────
          R1(config-if)# exit

          ! ── Accès au groupe ACL 101 créé ───────────
          R1(config)# ip access-list extended 101

          ! ── Déclaration du blocage sur le router R2 ───────────
          R1(configext-nacl)# deny icmp host 192.168.2.254 host 192.168.3.253
        

Nous pouvons faire le test d'accès au PC-3, avec la commande ping 192.168.2.254, normalement, il ne devrais plus avoir accès.

Vérification de la configuration ACL

Commandes cisco pour vérifier les ACL d’un routeur

IOS — Commande Cisco · Routeur

         ! ── Montre toutes les ACL du routeur ───────────
          Router(config)# Show access-lists

          ! ── Montre une ACL en particulier ───────────
          Router(config)# Show acces-lists « nom ou numéro »

          ! ── Montre les ACL qui sont appliquées à cette interface, et dans quel sens ───────────
          Router(config)# Show ip interface « nom de l’interface »

          ! ── Voir la configuration courante (chercher access-list) ───────────
          Router(config)# show running-config | include access-list

          ! ── Supprimer une ACL numérotée ───────────
          Router(config)# Sno access-list « numéro ACL à supprimé »

          ! ── Supprimer une ACL nommée ───────────
          Router(config)# no ip access-list standard BLOCK_SALES
          Router(config)# nno ip access-list extended ALLOW_WEB

          ! ── Retirer une ACL d'une interface ───────────
          Router(config)# interface fastEthernet 0/0
          Router(config)# no ip access-group "Numéro de ACL à retirer" in
        
📌 Rappel important - le wildcard mask
Masque réseau Wildcard mask
255.255.255.0 0.0.0.255
255.255.0.0 0.0.255.255
255.0.0.0 0.255.255.255
Hôte unique host 192.168.1.1
Tout le trafic any
Rappel : toute ACL se termine par un deny any implicite. Si aucune règle permit ne correspond, le paquet est bloqué.

Conclusion

Les ACL sont un outil fondamental de la sécurité réseau sur les équipements Cisco. Qu'elles soient standard, étendues ou nommées, elles permettent de contrôler finement le trafic qui traverse les interfaces d'un routeur. Leur efficacité repose sur trois règles essentielles : bien choisir le type selon le niveau de granularité requis, respecter les règles de placement (standard près de la destination, étendue près de la source), et ne jamais oublier le deny any implicite en fin de liste. Maîtriser les ACL, c'est poser les bases de toute politique de sécurité réseau sérieuse.

Les Access Control Lists constituent l'un des mécanismes de sécurité les plus fondamentaux de l'IOS Cisco. Elles permettent de définir avec précision quels flux sont autorisés ou refusés à traverser un routeur ou un switch de couche 3, agissant comme un pare-feu stateless au niveau des interfaces.

ACL Standard — idéale pour les restrictions simples basées sur l'adresse source. Légère, mais peu granulaire. À utiliser quand la précision n'est pas requise.

ACL Étendue — indispensable en production. Elle permet de contrôler le trafic par protocole, port et adresses source/destination simultanément.

ACL Nommée — recommandée pour toute infrastructure réelle. Les noms parlants améliorent la lisibilité et la maintenance à long terme des configurations.

Règle d'or du placement : les ACL standard près de la destination, les ACL étendues près de la source — pour minimiser le trafic inutile sur le réseau.

Bien maîtrisées, les ACL permettent de segmenter les accès, de protéger les services critiques (SSH, RDP, bases de données) et d'implémenter des politiques de sécurité cohérentes sur l'ensemble de l'infrastructure. Elles restent un prérequis incontournable pour toute certification CCNA et au-delà.

⚠️ RAPPEL : Toute ACL se termine par un deny any implicite. Si aucune règle permit ne correspond au paquet, celui-ci est automatiquement bloqué — même sans écrire explicitement la ligne "deny any". Toujours tester avec show access-lists et vérifier les compteurs de hits.