Extended ACL

Diagramme montrant le placement d'une ACL Extended sur le routeur Cisco R1, filtrant le trafic HTTPS du PC juridique dans le réseau 192.168.1.0/24 vers le serveur juridique (192.168.2.1) et bloquant l'accès au serveur RH (192.168.3.1) via l'interface G0/0.

1. Qu’est-ce qu’une Extended ACL?

Lors de la gestion d’un réseau, il est parfois nécessaire d’aller plus loin que le simple blocage du trafic en fonction de l’adresse IP source.

C’est là qu’interviennent les Extended ACL.

Contrairement aux ACL standard, les Extended ACL permettent de filtrer le trafic sur la base des éléments suivants

  • Adresse IP source
  • Adresse IP de destination
  • Protocol (TCP, UDP, ICMP, etc.)
  • Numéros de port (comme le port 80 pour HTTP ou 443 pour HTTPS)

Supposons que vous ayez cette topologie :

Diagramme ACL Extended montrant le routeur Cisco R1 autorisant le trafic HTTPS du PC Legal (192.168.1.1) vers le serveur Legal (192.168.2.1) et bloquant tout le trafic vers le serveur HR (192.168.3.1) à l'aide de flèches visuelles et d'un panneau d'arrêt.

Dans cet exemple, nous voulons contrôler l’accès à l’aide d’une ACL Extended:

  • Autoriser le trafic HTTPS du PC Legal vers un serveur Legal sécurisé à 192.168.2.1
  • Interdire tout accès du PC Legal à un serveur RH à l’adresse 192.168.3.1

Il s’agit d’un cas d’utilisation typique où les ACL étendues sont nécessaires parce que les ACL standard ne peuvent pas filtrer par protocole ou par port.

2. Configurer l’ACL Extended

Maintenant que vous avez compris ce qu’est une ACL Extended, voyons comment en configurer une étape par étape sur un routeur Cisco.

Étape 1 – Entrer dans le mode de configuration globale

Commencez par entrer dans le mode de configuration :

R1# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#

Ensuite, vérifiez les types d’ACL disponibles avec la commande ip access-list ?

R1(config)# ip access-list ?
  extended    Extended Access List
  helper      Access List acts on helper-address
  log-update  Control access list log updates
  logging     Control access list logging
  resequence  Resequence Access List
  standard    Standard Access List

Comme vous pouvez le constater, nous avons la possibilité de créer une ACL standard ou étendue.
Nous allons choisir l’option étendue.

Étape 2 – Création de l’ACL Extended

Vérifions maintenant les formats disponibles pour les ACL Extended:

R1(config)# ip access-list extended ?
  <100-199>    Extended IP access-list number
  <2000-2699>  Extended IP access-list number (expanded range)
  WORD         Access-list name

Les ACL Extended peuvent être

  • Numérotés (fourchettes entre: 100-199 ou 2000-2699)
  • Nommé (nom personnalisé de votre choix)

Créons une ACL 101 numérotée :

Dans cet exemple, nous allons créer une Extended ACL numérotée avec le numéro 101.

R1(config)# ip access-list extended 101
R1(config-ext-nacl)#

Vous êtes maintenant en mode de configuration ACL Extended, prêt à définir des règles.

Étape 3 – Autoriser HTTPS vers le serveur Legal

Nous voulons autoriser le trafic HTTPS (port TCP 443) du PC Legal vers le serveur Legal.

🔹 Choisir le protocole

Commencez par autoriser, puis consultez les options de protocole :

R1(config-ext-nacl)# permit ?
  <0-255>       An IP protocol number
  ahp           Authentication Header Protocol
  eigrp         Cisco's EIGRP routing protocol
  esp           Encapsulation Security Payload
  gre           Cisco's GRE tunneling
  icmp          Internet Control Message Protocol
  igmp          Internet Gateway Message Protocol
  ip            Any Internet Protocol
  ipinip        IP in IP tunneling
  nos           KA9Q NOS compatible IP over IP tunneling
  object-group  Service object group
  ospf          OSPF routing protocol
  pcp           Payload Compression Protocol
  pim           Protocol Independent Multicast
  sctp          Stream Control Transmission Protocol
  tcp           Transmission Control Protocol
  udp           User Datagram Protocol

Nous voulons HTTPS, c’est un protocol qui fonctionne sur TCP, donc :

R1(config-ext-nacl)# permit tcp ?
  A.B.C.D       Source address
  any           Any source host
  host          A single source host
  object-group  Source network object group

🔹 Définir l’adresse IP source

Spécifions le PC légal comme source :

R1(config-ext-nacl)# permit tcp host 192.168.1.1 ?
  A.B.C.D       Destination address
  any           Any destination host
  eq            Match only packets on a given port number
  gt            Match only packets with a greater port number
  host          A single destination host
  lt            Match only packets with a lower port number
  neq           Match only packets not on a given port number
  object-group  Destination network object group
  range         Match only packets in the range of port numbers

🔹 Définir l’adresse IP de destination

Nous voulons atteindre le serveur web Legal :

R1(config-ext-nacl)# permit tcp host 192.168.1.1 host 192.168.2.1 ?
  ack          Match on the ACK bit
  dscp         Match packets with given dscp value
  eq           Match only packets on a given port number
  established  Match established connections
  fin          Match on the FIN bit
  fragments    Check non-initial fragments
// OUTPUT OMITTED FOR BREVITY

Afin de choisir le numéro de port à filtrer, nous utilisons eq comme vous pouvez le voir dans le cli.

🔹 Correspondre au port HTTPS (443)

Nous filtrons que le trafic HTTPS (port 443)

R1(config-ext-nacl)# permit tcp host 192.168.1.1 host 192.168.2.1 eq ?
  <0-65535>    Port number
  bgp          Border Gateway Protocol (179)
  chargen      Character generator (19)
  cmd          Remote commands (rcmd, 514)
  daytime      Daytime (13)
  discard      Discard (9)
  domain       Domain Name Service (53)
  drip         Dynamic Routing Information Protocol (3949)
  echo         Echo (7)
  exec         Exec (rsh, 512)
  finger       Finger (79)
  ftp          File Transfer Protocol (21)
// OUTPUT OMITTED FOR BREVITY

Et nous complétons la commande avec le port :

R1(config-ext-nacl)# permit tcp host 192.168.1.1 host 192.168.2.1 eq 443

Cette commande n’autorise que le trafic HTTPS entre le PC Legal et le serveur Legal.

Étape 4 – Refuser tout trafic vers le serveur HR

Chaque ACL se termine par un « deny all » implicite.
Ainsi, tout trafic qui n’est pas explicitement autorisé sera automatiquement bloqué.

Dans notre cas :

  • Nous avons autorisé le trafic HTTPS vers le serveur Legal (192.168.2.1).
  • Nous n’avons rien autorisé au serveur RH (192.168.3.1).

→ Ce trafic est déjà refusé par défaut.

Mais juste pour la démonstration, voici comment créer une règle de refus manuellement, pour vous montrer comment faire :

R1(config-ext-nacl)# deny ip host 192.168.1.1 host 192.168.3.1
ÉlémentDescription
denyBloquer le trafic
ipTous les protocoles (TCP, UDP, ICMP, etc.)
host 192.168.1.1Source : Legal PC
host 192.168.3.1Destination : Serveur HR

Cette règle n’est pas nécessaire dans ce cas, elle est là pour vous montrer comment écrire une règle de refus explicite.

3. Où appliquer l’ACL Extended

Une ACL Extended ne filtre pas le trafic tant qu’elle n’est pas appliquée à une interface.
Cette étape indique au routeur où inspecter le trafic et dans quelle direction.

Stratégie de placement

Les ACL Extended filtrent le trafic sur la base des éléments suivants

  • Source IP
  • IP de destination
  • Protocol
  • Numéro de port

Pour réduire le trafic inutile sur le réseau, les ACL Extended doivent être appliquées le plus près possible de la source.

Ainsi, les paquets non désirés sont abandonnés avant de consommer la bande passante.

Exemple Scenario

Dans notre exemple :

  • Le PC légal (192.168.1.1) est la source.
  • Nous voulons :
    • Autoriser le trafic HTTPS vers le serveur Legal (192.168.2.1)
    • Bloquer tout accès au serveur HR (192.168.3.1)
Diagramme montrant une ACL Extended appliquée sur le routeur Cisco R1 à l'interface G0/0, autorisant le trafic HTTPS du PC juridique (192.168.1.1) vers le serveur juridique (192.168.2.1) et bloquant l'accès au serveur RH (192.168.3.1).

Le trafic entre dans le routeur R1 par l’interface G0/0 qui est connectée au PC Legal.

Il s’agit de l’interface G0/0 sur le routeur R1.

Application de l’ACL à l’interface

🔹 Étape 1 – Entrer dans le mode de configuration de l’interface

R1(config)# int g0/0

🔹 Étape 2 – Vérifier les formats disponibles

Utilisez la commande ip access-group :

R1(config-if)# ip access-group ?
  <1-199>      IP access list (standard or extended)
  <1300-2699>  IP expanded access list (standard or extended)
  WORD         Access-list name

Nous utiliserons l’ACL 101 que nous avons créé précédemment.

🔹 Étape 3 – Appliquer l’ACL en entrée (Inbound)

Nous appliquons l’ACL 101 pour inspecter les paquets provenant de la source :

R1(config-if)# ip access-group 101 ?
  in   inbound packets
  out  outbound packets
R1(config-if)# ip access-group 101 in

Cette commande active l’ACL 101 sur l’interface G0/0.
Désormais, tous les paquets entrants seront filtrés selon vos règles.

4. Vérification des ACL Extended

Une fois que votre ACL est appliqué, il est essentiel de le confirmer :

  • L’ACL contient les règles correctes
  • Il est appliqué correctement sur la bonne interface et dans la bonne direction.

Étape 1 – Visualiser la configuration de l’ACL

R1# show access-lists 101
Extended IP access list 101
    10 permit tcp host 192.168.1.1 host 192.168.2.1 eq 443
    20 deny   ip host 192.168.1.1 host 192.168.3.1

Cela confirme :

  • Ligne 10 : autorise le trafic HTTPS de 192.168.1.1 à 192.168.2.1
  • Ligne 20 : refuse tout le trafic de 192.168.1.1 à 192.168.3.1

Étape 2 – Confirmation de l’association d’interfaces

Pour vérifier que l’ACL est correctement appliqué à une interface (dans ce cas, G0/0) :

R1# show ip interface g0/0
GigabitEthernet0/0 is up, line protocol is up
  Internet address is 192.168.1.254/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Multicast reserved groups joined: 224.0.0.10
  Outgoing access list is not set
  Inbound  access list is 101
  Proxy ARP is enabled
// OUTPUT OMITTED FOR BREVITY

Cela le confirme :

  • L’ACL 101 est appliquée à GigabitEthernet0/0
  • Il est utilisé dans le sens entrant (Inbound), comme prévu

5. Conclusion

Voici ce qu’il faut retenir sur les ACL Standard et les ACL Extended avant d’aller plus loin :

FonctionnalitéStandard ACLExtended ACL Cisco
Filtrage de l’IP source✅ Oui✅ Oui
Filtrage de l’IP de destination❌ Non✅ Oui
Filtrage des protocoles❌ Non✅ Oui (TCP, UDP, ICMP…)
Filtrage des ports❌ Non✅ Oui (exemple 80, 443, etc.)
Meilleur EmplacementProche de la destinationProche de la source
Plage de numéros1-99 / 1300-1999100-199 / 2000-2699

💡 Voulez-vous utiliser des noms plutôt que des chiffres pour vos ACL ?

Consultez la prochaine leçon sur les Named ACL pour faciliter la gestion de vos configurations.