ACL Wildcard Masking : Une Fonctionnalité Essentielle des ACL dans l’IOS Cisco
Une ACL, qui signifie Access Control List, est une fonctionnalité cruciale de l’IOS Cisco utilisée pour identifier et gérer le trafic réseau. L'ACL Wildcard permet à un administrateur de créer un ensemble de règles qui autorise ou interdit n'importe quel type de trafic basé sur les informations contenues dans le paquet IP.
Les ACLs peuvent être déployées sur des routeurs ou des switchs pour fournir un contrôle granulaire du trafic.
Opération des ACLs
Le fonctionnement d’une ACL est caractérisé par son analyse séquentielle des en-têtes de paquets IP. Chaque ACL est évaluée l’une après l'autre, permettant ainsi de décider si le paquet doit être autorisé ou non. Ce processus se poursuit jusqu'à ce qu'une règle applicable soit trouvée ou que le paquet atteigne l'ACL implicite de refus à la fin de la liste.
ACL Wildcard Masking : Définition et Utilisation
L'utilisation des "ACL Wildcard Masks", ou masques inverses, est fondamentale pour identifier spécifiquement un sous-réseau ou une plage d'adresses IP. Cette technique est essentielle pour des protocoles tels que OSPF et pour le NAT, où les "ACL Wildcard Masks" jouent un rôle clé.
Les "ACL Wildcard Masks" sont particulièrement utiles pour spécifier les adresses IP qui correspondent à des critères définis, grâce à leur logique de bits où un bit à 0 signifie vérifier la correspondance et un bit à 1 signifie ignorer la correspondance dans l'adresse.
Exemple Pratique d'Utilisation d'un ACL Wildcard Mask
Considérons un réseau 193.62.31.64 avec un ACL Wildcard mask de 0.0.0.63, illustrant un masque /26. Cela permet une flexibilité dans la sélection des adresses IP, rendant possible l'inclusion d'une gamme d'adresses dans le réseau spécifié.
Calcul Rapide des ACL Wildcard Masks
Pour faciliter le calcul des "ACL Wildcard Masks", la méthode de soustraction à partir des masques de sous-réseau standards est souvent utilisée. Cette approche simplifie la détermination des masques inversés nécessaires pour des configurations spécifiques d'ACL.
Types d'ACL et Configuration
Il existe deux principaux types d'ACL :
- Les ACL standards vérifient les adresses sources des paquets pouvant être acheminés. Le résultat autorise ou refuse la sortie d'une suite de protocoles entière, basée sur le réseau source, le sous-réseau ou l'adresse IP de l'hôte. Elles sont numérotées de 1 à 99 et de 1300 à 1999. En général, on les appliquera principalement le plus proche possible de la destination en raison de leurs faibles précisions.
- Les ACL étendues vérifient les adresses des paquets source et de destination. Ils peuvent également rechercher des protocoles spécifiques, des numéros de port et d'autres paramètres, ce qui permet aux administrateurs plus de flexibilité et de contrôle. Elles sont numérotées de 100 à 199 et 2000 à 2699. Les étendues sont plutôt à appliquer le plus proche possible de la source.
ACL Standard: Configuration
Les ACL standards se configurent sur un routeur Cisco en mode de configuration globale. La commande « access-list » permet de créer une entrée ACL.
- 172.16.0.0 avec un masque inversé de 0.0.2 fois 255 signifie n'importe quelle adresse source qui commence par 172.16.
- Une ACL standard est numérotée de 1 à 99, ou de 1300 à 1999, ici dans l’exemple nous avons choisi le 1.
La sortie de la commande show access-list affiche les ACL actuellement configurées.
Pour supprimer entièrement une ACL, il faut faire un : no access-list + son numéro d’ACL en mode de configuration globale.
Utilisez de nouveau la commande show access-list permet de confirmer que l’ACL « une » a bien été supprimée. Une ACL pouvant contenir plusieurs lignes, il n’est pas possible de supprimer une ligne individuellement… Le no access-list avec son numéro supprime tout le contenu de l’ACL. L'unique manière d'enlever ou de modifier une ACL serait de copier l'ACL totale dans un éditeur de texte, de faire les changements nécessaires, ensuite supprimer l'ACL du routeur avec la commande no access-list et de copier / coller l'ACL modifiée à partir de l'éditeur de texte. Les nouvelles versions de l’IOS permettent une édition plus simple en utilisant une numérotation séquentielle.
Filtrage du Trafic avec les ACLs
La nécessité d'implémenter un filtrage du trafic réseau pour limiter ou restreindre l'accès sur une ressource réseau est une tâche commune pour les administrateurs réseau. L’ACL permet de contrôler l’accès en fonction des informations d'en-têtes de paquets de la couche 3.
Ici, nous souhaitons restreindre l’accès internet au PC2.
Pour cela, il est possible d’implémenter le filtrage du trafic sur le routeur soit en entrée sur l’interface qui est connectée au réseau local, soit en sortie sur l’interface connectée à Internet. En utilisant une ACL standard, il est possible d’empêcher les paquets de PC2 d'entrer ou de sortir du routeur. Il ne faudra pas oublier d'autoriser explicitement le trafic des autres périphériques du réseau local, car nous voulons appliquer cette règle uniquement au PC1.
Pour ce faire, il y a 2 endroits où il est possible de placer l’ACL. Soit en entrée, soit en sortie du routeur.
- Pour une ACL sortante : les paquets entrants sur le routeur sont acheminés vers l'interface de sortie puis sont traités via l'ACL sortante. Si les paquets sont autorisés, ils sont transmis à l'interface. Si les paquets ne sont pas autorisés ou qu’il y a aucune correspondance, ils seront éliminés.
- Et pour une ACL entrante : les paquets entrants sont traités par l'ACL avant d'être acheminés vers l’interface de sortie. Dans ce cas, L’ACL entrante est efficace, car elle évite au routeur d’acheminer le paquet à la sortie pour qu’au final il soit supprimé… Si le paquet est autorisé alors il sera traité pour le routage.
Sur cette image, l’ACL est placée sur l’interface de sortie.
On voit le paquet arrivé sur l’interface entrante nommé E0, puis il est traité par le routeur.
Comme il reconnaît le réseau, il effectue le routage vers son interface de sortie. C’est là que l’ACL wildcard entre en jeu. Si c’est accordé, le paquet sortira par l’interface S0, et s’il n’est pas autorisé, il sera supprimé.
Afin d’éviter que le routeur applique le routage pour des paquets qui seront au final supprimés, il est plus judicieux de placer l’ACL wildcard en entrée, plutôt qu’en sortie.
Application des ACLs aux Interfaces
Après avoir configuré une ACL, il faut l’appliquer à une interface à l'aide de la commande IP access-group. Une seule ACL n’est autorisée par protocole, par direction et par interface
IP access-group 1 out, applique L’ACL 1 sur l'interface en sortie :
IP access-group 2 out applique L’ACL 2 sur l'interface en entrée :
Pour supprimer une ACL d'une interface, il faut utiliser la même commande avec le « no », directement sur l'interface, puis si on veut la supprimer complètement, il faut compléter la commande par un no access-list dans le mode de configuration globale.
Il y a seulement 3 étapes pour mettre en service une ACL :
- 1 : Tout d’abord, il faut crée une entrée ACL en mode de configuration globale
Par exemple cette ACL correspond à n’importe quelle adresse qui commence par 10.1.1
- 2 : Ensuite il faut choisir l’interface où l’on souhaite appliquer cette ACL
Branch(config)# interface GigabitEthernet 0/0
Pour cela il suffit de se connecter sur l’interface. Dans l’exemple on prend le gigabit ethernet 0/0
- 3 : et pour finir, il faut utiliser la commande IP access-group pour l’activer.
Branch(config-if)# IP access-group 1 in
Dans l’exemple, l’ACL est positionnée en entrée de l’interface.
Prenons un exemple, nous souhaitons refuser l’accès à internet pour l’hôte PC2 qui porte l’IP 10.1.1.101 tout en autorisant les autres PC de ce même LAN.
Comme la lecture d’une ACL se fait de haut en bas, nous allons créer la première entrée en refusant le PC2 et la seconde en autorisant tout le LAN 10.1.1.0/24
Ensuite nous appliquons cette ACL à l’interface GI0/1 en sortie.
Il est important de spécifier une ligne qui autorise tout le reste du réseau, car implicitement pour des raisons de sécurité, la dernière entrée refuse tout passage. En gros si aucune entrée n’est matchée, le paquet est supprimé.
Vous remarquerez que l’ACL a été placé en sortie du routeur. On aurait pu également la positionner directement sur l’entrée GI0/0. Cela empêcherait toujours la communication de PC2 avec Internet, mais également toute communication avec le routeur.
Utilisation des ACLs Nommées pour une Gestion Simplifiée
Au lieu de déclarer l’ACL standard par un numéro compris entre 1 à 99 et 1300 à 1999, il est possible de lui affecter un nom. Cela permet d’avoir une description sur la fonction de l’ACL. Très utile quand on en a plusieurs.
Dans le mode de configuration global, la commande IP access-list standard + le nom, permet de déclarer une ACL nommée.
Le nom qu’on attribue à l’ACL (ici Subnet_ONLY) doit être unique.
- Chaque ligne qu’on rentre dans une ACL est numérotée à partir de 10 et incrémentée de 10 pour les suivantes.
- La commande no 10 dans l’ACL supprime seulement la ligne numérotée en 10.
Ainsi, l’avantage des ACL nommées est qu’il est possible de supprimer ou modifier une ligne sans devoir supprimer l’ACL en entier.
Pour rattacher une ACL nommée sur une interface, il s’agit de la même commande sauf qu’à la place du numéro, on met le nom.
Nommer une ACL permet de mieux comprendre sa fonction. Par exemple, une ACL qui refuse un sous-réseau peut être appelée "NO_Subnet".
Sur cette image, le résultat de la commande « show access-lists » affiche directement les commandes qui ont été utilisées pour configurer L’ACL standard, qui est nommée Subnet_ONLY sur le routeur Branch. L'ACL permet le trafic des hôtes sur le sous-réseau 10.1.1.0/24.
Admettons que nous souhaitons maintenant refuser l’accès uniquement à l’hôte 10.1.1.25, comme les ACL nommées permettent cette fois-ci d’ajouter, de modifier ou de supprimer des entrées individuelles dans une ACL spécifique.
Il est alors possible d’utiliser des numéros de séquence pour insérer une instruction où l’on souhaite dans l’ACL.
Par défaut, la première entrée de l’ACL a été nommée 10. Dans l’exemple, on insère une entrée qu’on nomme 5 pour interdire le PC 10.1.1.25. On s’aperçoit bien que l’insertion de cette entrée s'est faite au-dessus de la première instruction qui a été rentrée.
Si un redémarrage de l’équipement a lieu, automatiquement les numéros de séquence se mettront à jour et suivront leurs incrémentations de base par 10.
Ce qui veut dire que le deny host portera le chiffre 10 et le permit aura le chiffre 20.
La commande access-list resequence permet la mise à jour de ces séquences sans faire de redémarrage.
Suivez le parcours CCNA sur le site Formip et retrouvez tous nos cours pour réussir votre CCNA sur la chaîne YouTube de Formip.