1. Qu'est-ce qu'une ACL ?
Lorsque vous gérez un réseau, l'une de vos principales responsabilités consiste à décider quel trafic doit être autorisé et lequel doit être bloqué. C'est exactement ce pour quoi les Access Control Lists (ACL) sont conçues.
Un ACL est un ensemble de règles qui filtrent le trafic en fonction de conditions spécifiques. Vous pouvez appliquer ces règles sur les routeurs Cisco ou les commutateurs de couche 3 pour autoriser ou refuser des paquets.
Il existe deux types principaux d'ACL :
Les Standard ACLs standard fonctionnent à la couche 3 (couche réseau) et filtrent le trafic en se basant uniquement sur l'adresse IP source.
Les Extended ACLs fonctionnent à la fois aux couches 3 et 4 (couches réseau et transport), permettant un filtrage basé sur l'IP source et destination, les protocoles et même les numéros de port.
Exemple concret
Supposons que vous souhaitiez autoriser le service juridique (192.168.1.0/24) à accéder à un serveur, mais bloquer le service des ressources humaines (192.168.2.0/24).
Voici à quoi ressemblerait un ACL standard de base :
R1(config)# ip access-list standard 10
R1(config-std-nacl)# permit 192.168.1.0 0.0.0.255
R1(config-std-nacl)# deny 192.168.2.0 0.0.0.255
Que se passe-t-il ici ?
10 est le numéro d'identification de l'ACL.
Le réseau Legal est autorisé à passer.
Le réseau RH est explicitement refusé.
C'est ainsi que vous commencez à contrôler qui peut accéder à quoi dans votre réseau.
2. Access Control Entry (ACE)
Chaque règle d'une ACL est appelée eAccess Control Entry (ACE). Considérez une ACL comme une liste et chaque règle de cette liste comme un ACE individuel.
Reprenons l'exemple précédent :
Dans cette liste d'accès, nous avons deux ACE :
ACE 10: Autorise le trafic en provenance du réseau 192.168.1.0/24.
ACE 20: refuse le trafic en provenance du réseau 192.168.2.0/24.
Et ce Masque de Sous-Réseau ?
Vous avez peut-être remarqué quelque chose d'étrange dans la syntaxe de l'ACE, le masque ne ressemble pas à un masque de sous-réseau typique...
En effet, les ACL n'utilisent pas de masques de sous-réseau. Elles utilisent wilcard masks.
Qu'est-ce qu'un Wildcard Mask?
Un wildcard mask fonctionne comme l'inverse d'un masque de sous-réseau.
Elle indique au routeur quelles parties de l'adresse IP doivent correspondre exactement et quelles parties peuvent varier.
Masque de Sous Réseau | Wildcard Mask | Correspondances |
---|---|---|
255.255.255.0 | 0.0.0.255 | Toutes les adresses IP dans 192.168.1.0/24 |
255.255.255.255 | 0.0.0.0 | Une adresse IP spécifique |
Si nous reprenons notre exemple :
permit 192.168.1.0 0.0.0.255
Cela signifie : autoriser le trafic en provenance de n'importe quel appareil du réseau 192.168.1.0/24.
Si vous voulez autoriser une seule adresse IP spécifique, comme 192.168.1.10, vous devez utiliser :
permit 192.168.1.10 0.0.0.0
Elle ne correspondrait qu'à cette adresse.
Ordre de lecture
Les ACL sont lues de haut en bas.
Dès qu'un paquet correspond à un ACE, le routeur cesse de vérifier le reste de la liste.
Dans cet exemple, le paquet avec l'IP source 192.168.1.1 correspond à l'ACE 10, le routeur l'autorise donc. L'ACE 20 n'est jamais évalué.
3. Implicit Deny
À la fin de chaque ACL, il y a une règle de refus implicite.
Cela signifie que si un paquet ne correspond à aucun des ACE de la liste, il est automatiquement refusé, même si cette règle n'apparaît pas dans la configuration.
Même si aucun refus explicite n'est écrit, le routeur applique le refus implicite à la fin, en abandonnant silencieusement le paquet.
Il s'agit d'une mesure de sécurité essentielle qui garantit que seul le trafic que vous autorisez explicitement est autorisé sur votre réseau.
Examinons maintenant le cas suivant :
Un paquet provient de la source 192.168.5.0 qui n'est listée dans aucune instruction de permission ou de refus.
Dans cet exemple :
ACE 10 autorise le trafic en provenance de 192.168.1.0/24
ACE 20 refuse le trafic en provenance de 192.168.2.0/24
Mais 192.168.5.0 ne correspond à aucune des deux règles.
Comme aucune correspondance n'est trouvée, le paquet est abandonné par le refus implicite.
4. Inbound vs Outbound ACLs
Lorsque vous configurez une ACL, vous devez toujours l'appliquer en entrée (Inbound) ou en sortie (outbound) sur une interface.
Vous vous demandez peut-être :
"D'accord, mais quelle est la différence ?"
La différence réside dans le moment où le routeur inspecte le trafic avec ACL.
Inbound ACLs
Si l'ACL est appliquée en entrée, le routeur inspecte le trafic à l'entrée de l'interface avant toute décision de routage.
Cela signifie que le paquet est vérifié dès son arrivée sur l'interface. S'il est refusé, il ne va pas plus loin.
Outbound ACLs
Si l'ACL est appliquée en sortie, le routeur prend d'abord sa décision de routage, puis vérifie le paquet lorsqu'il quitte l'interface.
Le trafic est donc déjà accepté par la route et l'ACL agit comme le dernier filtre avant qu'il ne quitte la route.
5. Conclusion
Récapitulons ce qu'est l'ACL et comment il fonctionne :
Un ACL est une liste de règles qui permet de contrôler le trafic autorisé ou refusé.
Chaque règle est appelée une Access Control Entry (ACE).
Les ACL sont traitées de haut en bas et le routeur s'arrête à la première correspondance.
Si aucune règle ne correspond, le trafic est refusé par le refus implicite à la fin.
Les ACL sont appliquées soit en Inbound (en entrée : lorsque le trafic entre dans une interface), soit en Outbound (en sortie : lorsqu'il quitte l'interface).
Nous avons également vu les deux types d'ACL :
Les Standard ACLs fonctionnent au niveau 3 et filtrent sur la base de l'adresse IP source.
Les Extended ACLs fonctionnent aux niveaux 3 et 4 et peuvent filtrer en fonction de l'IP, du protocole et du port de la source et de la destination.
Quelle est la prochaine étape ?
Maintenant que vous avez compris le fonctionnement des ACL, les prochaines leçons vous guideront :
Vous verrez exactement comment les appliquer dans des environnements Cisco réels.