Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit des exemples de configurations pour les listes de contrôle d'accès IP (ACL) couramment utilisées, qui filtrent les paquets IP.
Assurez-vous que vous répondez aux exigences suivantes avant d'essayer cette configuration :
Compréhension de base de l'adressage IP.
Reportez-vous à Adressage IP et division en sous-réseaux pour les nouveaux utilisateurs pour plus d'informations.
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
La liste de contrôle d'accès IP filtre les paquets en fonction de :
Pour filtrer le trafic réseau, les listes de contrôle d'accès vérifient si les paquets sont acheminés ou bloqués au niveau de l'interface du routeur. Votre routeur examine chaque paquet afin de déterminer s’il doit être acheminé ou abandonné, selon les critères spécifiés dans l’ACL (Access Control List, liste de contrôle d’accès). Les critères de la liste ACL incluent :
Effectuez les étapes suivantes afin de construire une ACL correspondant aux exemples de ce document :
L’ ACL IP est un ensemble séquentiel de permissions ou de restrictions applicables à un paquet IP. Le routeur teste les paquets en fonction des conditions présentes dans l'ACL, les unes après les autres.
La première correspondance détermine si le logiciel Cisco IOS® doit accepter ou refuser le paquet. Comme le logiciel Cisco IOS arrête le test des conditions après la première correspondance, l'ordre des conditions est critique. Si aucune condition ne possède de correspondance, le routeur refuse le paquet en raison d'une clause implicite de refus de tous les paquets.
Voici des exemples d'ACL IP qui peuvent être configurées dans le logiciel Cisco IOS :
Ce document traite des normes et des listes de contrôle d'accès fréquemment utilisées (standard et étendues). Reportez-vous à Configurer des listes d'accès IP pour plus d'informations sur les différents types d'ACL pris en charge par le logiciel Cisco IOS et sur les méthodes de configuration et de modification des ACL.
Le format de syntaxe de commande d'une liste de contrôle d'accès standard est access-list access-list-number {permit|deny} {host|source source-wildcard|any}.
Les ACL standards comparent l’adresse de la source du paquet IP aux adresses configurées dans l’ACL afin de contrôler le trafic.
Les ACL étendus comparent l’adresse de la source du paquet IP et son adresse de destination aux adresses configurées dans l’ACL afin de contrôler le trafic. Vous pouvez également rendre les ACL étendues plus précises et les configurer pour le filtrage du trafic selon des critères tels que :
La syntaxe des commandes applicables aux ACL étendues est la suivante :
IP
access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny | permit} protocol source source-wildcard destination destination-wildcard [precedence precedence] [tos tos] [log | log-input]
[time-range time-range-name][fragments]
Internet Control Message Protocol (ICMP)
access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny | permit} icmp source source-wildcard destination destination-wildcard
[[icmp-type] [icmp-code] | [icmp-message]] [precedence precedence] [tos tos] [log | log-input]
[time-range time-range-name][fragments]
Protocole TCP (Transport Control Protocol)
access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny | permit} tcp source source-wildcard [operator [port]] destination destination-wildcard [operator [port]]
[established] [precedence precedence] [tos tos] [log | log-input]
[time-range time-range-name][fragments]
Protocole UDP (User Datagram Protocol)
access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny | permit} udp source source-wildcard [operator [port]] destination destination-wildcard [operator [port]]
[precedence precedence] [tos tos] [log | log-input] [time-range time-range-name][fragments]
Ces exemples de configuration utilisent les ACL IP les plus fréquents.
Cette image montre qu'un hôte sélectionné est autorisé à accéder au réseau. Tout trafic originaire de l'hôte B et destiné à NetA est autorisé, alors que tout autre trafic originaire de NetB et destiné à NetA est refusé.
La sortie indiquée dans le tableau R1 montre comment le réseau autorise l'accès à l'hôte. Cette sortie indique les éléments suivants :
La configuration autorise uniquement l'accès à l'hôte portant l'adresse IP 192.168.10.1 sur l'interface Ethernet 0 sur R1.
Cet hôte a accès aux services IP de NetA.
Aucun autre hôte de NetB ne dispose d'un accès à NetA.
Aucune déclaration de refus n'est configurée dans l'ACL.
Par défaut, une clause implicite de refus se trouve à la fin de chaque ACL. Tout ce qui n'est pas explicitement autorisé est refusé.
R1
hostname R1 ! interface ethernet0 ip access-group 1 in ! access-list 1 permit host 192.168.10.1
Remarque : la liste de contrôle d'accès filtre les paquets IP de NetB vers NetA, à l'exception des paquets provenant de l'hôte B. Les paquets provenant de l'hôte B vers NetA sont toujours autorisés.
Remarque : l'autorisation 192.168.10.1 0.0.0.0 de la liste de contrôle d'accès access-list 1 est une autre façon de configurer la même règle.
Cette image montre que le trafic provenant de l'hôte B et destiné à NetA est refusé, tandis que tout autre trafic provenant de NetB et destiné à accéder à NetA est autorisé.
Cette configuration refuse tous les paquets de l'hôte 192.168.10.1/32 via Ethernet 0 sur R1 et autorise tout le reste. Vous devez utiliser la commande access list 1 permit any pour autoriser explicitement tout le reste, parce qu'il existe une clause implicite de refus dans chaque ACL.
R1
hostname R1 ! interface ethernet0 ip access-group 1 in ! access-list 1 deny host 192.168.10.1 access-list 1 permit any
Remarque : l'ordre des instructions est essentiel au fonctionnement d'une liste de contrôle d'accès. Si l'ordre des entrées est inversé, comme l'illustre cette commande, la première ligne correspond à l'adresse source de chaque paquet. Par conséquent, l'ACL n'empêche pas l'hôte 192.168.10.1/32 d'accéder à NetA.
access-list 1 permit any access-list 1 deny host 192.168.10.1
Cette image montre que tous les hôtes de NetB dont l'adresse réseau est 192.168.10.0/24 peuvent accéder au réseau 192.168.200.0/24 dans NetA.
Cette configuration autorise l'accès à NetA des paquets IP portant une en-tête IP avec une adresse source comprise dans le réseau 192.168.10.0/24 et une adresse de destination comprise dans le réseau 192.168.200.0/24. Il y a une clause implicite de refus en fin d'ACL qui refuse l'accès à tout autre trafic via Ethernet 0 sur R1.
R1
hostname R1 ! interface ethernet0 ip access-group 101 in ! access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255
Remarque : dans la commande access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255, le 0.0.0.255 est le masque inverse du réseau 192.168.10.0 avec le masque 255.255.255.0. Les ACL utilisent le masque inversé pour savoir quel nombre de bits de l'adresse réseau doit correspondre. Dans ce tableau, l'ACL autorise l'accès de tous les hôtes portant des adresses source comprises dans le réseau 192.168.10.0/24 et des adresses de destination comprises dans le réseau 192.168.200.0/24.
Reportez-vous à la section Masques de la rubrique Configurer des listes d'accès IP pour plus d'informations sur le masque d'une adresse réseau et sur la méthode de calcul de masque inversé requis par les ACL.
Afin de répondre à des problèmes de sécurité plus importants, vous pouvez désactiver l'accès Telnet à votre réseau privé à partir du réseau public. Cette image montre comment le trafic Telnet de NetB (public) destiné à NetA (privé) est refusé, ce qui permet à NetA d'initier et d'établir une session Telnet avec NetB alors que tout autre trafic IP est autorisé.
Telnet utilise TCP, port 23. Cette configuration montre que tout le trafic TCP destiné à NetA pour le port 23 est bloqué, et que tout autre trafic IP est autorisé.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 deny tcp any any eq 23 access-list 102 permit ip any any
Cette figure montre que le trafic TCP originaire de NetA et destiné à NetB est autorisé, alors que le trafic TCP originaire de NetB et destiné à NetA est refusé.
Dans cet exemple, l'objectif de l'ACL est le suivant :
Autoriser les hôtes de NetA de lancer et d'établir une session TCP avec les hôtes de NetB.
Empêcher les hôtes de NetB de lancer et d'établir une session TCP destinée aux hôtes de NetA.
Cette configuration permet à un datagramme de passer par l'nterface Ethernet 0 sur R1 quand le datagramme possède les caractéristiques suivantes :
Bits acquittés (ACK) ou réinitialisés (RST) définis (indique une session TCP établie)
Une valeur de port de destination supérieure à 1023
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit tcp any any gt 1023 established
Puisque la plupart des ports connus au niveau des services IP utilisent des valeurs inférieures à 1023, tout datagramme dont le port de destination est inférieur à 1023 ou dont le bit ACK/RST n'est pas défini est refusé par l'ACL 102. Par conséquent, lorsqu’un hôte de NetB initie une connexion TCP et envoie le premier paquet TCP (sans bit SYN/RST (synchronize/start packet) défini) pour un numéro de port inférieur à 1023, il est refusé et la session TCP échoue. Les sessions TCP lancées à partir de NetA et destinées à NetB sont autorisées, car le bit ACK/RST a été défini en vue du retour de paquets et de l'utilisation de valeurs de port supérieures à 1023.
Reportez-vous à RFC 1700 pour obtenir la liste complète des ports.
Cette image montre que le trafic FTP (TCP, port 21) et de données FTP (port 20) provenant de NetB et destiné à NetA est refusé, alors que tout autre trafic IP est autorisé.
FTP utilise le port 21 et le port 20. Le trafic TCP destiné au port 21 et au port 20 est refusé, et tout le reste est explicitement autorisé.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 deny tcp any any eq ftp access-list 102 deny tcp any any eq ftp-data access-list 102 permit ip any any
FTP peut fonctionner dans deux modes différents, appelés mode actif et mode passif.
Lorsque FTP fonctionne en mode actif, le serveur FTP utilise le port 21 pour le contrôle et le port 20 pour les données. Le serveur FTP (192.168.1.100) est situé dans NetA. Cette image montre que le trafic FTP (TCP, port 21) et le trafic de données FTP (port 20) provenant de NetB et destinés au serveur FTP (192.168.1.100) sont autorisés, tandis que tout autre trafic IP est refusé.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit tcp any host 192.168.1.100 eq ftp access-list 102 permit tcp any host 192.168.1.100 eq ftp-data established ! interface ethernet1 ip access-group 110 in ! access-list 110 permit host 192.168.1.100 eq ftp any established access-list 110 permit host 192.168.1.100 eq ftp-data any
FTP peut fonctionner dans deux modes différents, appelés mode actif et mode passif.
Lorsque FTP fonctionne en mode passif, le serveur FTP utilise le port 21 pour le contrôle et les ports dynamiques supérieurs ou égaux à 1024 pour les données. Le serveur FTP (192.168.1.100) est situé dans NetA. Cette image montre que le trafic FTP (TCP, port 21) et les données FTP (ports supérieurs ou égaux à 1024) provenant de NetB et destinés au serveur FTP (192.168.1.100) sont autorisés, tandis que tout autre trafic IP est refusé.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit tcp any host 192.168.1.100 eq ftp access-list 102 permit tcp any host 192.168.1.100 gt 1023 ! interface ethernet1 ip access-group 110 in ! access-list 110 permit host 192.168.1.100 eq ftp any established access-list 110 permit host 192.168.1.100 gt 1023 any established
Cette image montre que le protocole ICMP provenant de NetA et destiné à NetB est autorisé, et que les requêtes ping provenant de NetB et destinées à NetA sont refusées.
Cette configuration autorise uniquement les paquets à réponse d'écho (réponse ping) à entrer dans l'interface Ethernet 0 de NetB vers NetA. En revanche, elle bloque tous les paquets ICMP à requête d'écho lorsque les commandes ping sont originaires de NetB et destinées à NetA. Par conséquent, les hôtes de NetA peuvent utiliser les commandes Ping sur les hôtes de NetB, alors que les hôtes de NetB ne peuvent pas faire de même avec les hôtes de NetA.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit icmp any any echo-reply
Cette image montre que seuls les trafics HTTP, Telnet, SMTP (Simple Mail Transfer Protocol), POP3 et FTP sont autorisés et que le reste du trafic provenant de NetB et destiné à NetA est refusé.
Cette configuration autorise le trafic TCP dont les valeurs de port de destination correspondent à WWW (port 80), Telnet (port 23), SMTP (port 25), POP3 (port 110), FTP (port 21) ou données FTP (port 20). Notez qu'une clause implicite de refus figure à la fin des ACL, qui a pour effet de refuser tout trafic ne correspondant pas aux clauses d'autorisation.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit tcp any any eq www access-list 102 permit tcp any any eq telnet access-list 102 permit tcp any any eq smtp access-list 102 permit tcp any any eq pop3 access-list 102 permit tcp any any eq 21 access-list 102 permit tcp any any eq 20
Cette image montre que seul le trafic DNS (Domain Name System) est autorisé et que le reste du trafic provenant de NetB et destiné à NetA est refusé.
Cette configuration autorise le trafic TCP dont la valeur de port de destination est 53. La clause implicite de refus figurant à la fin des ACL a pour effet de refuser tout autre trafic ne correspondant pas aux clauses d'autorisation.
R1
hostname R1 ! interface ethernet0 ip access-group 102 in ! access-list 102 permit udp any any eq domain access-list 102 permit udp any eq domain any access-list 102 permit tcp any any eq domain access-list 102 permit tcp any eq domain any
Lorsque vous vous appliquez une ACL entrante à une interface, assurez-vous que les mises à jour de routage ne sont pas filtrées. Utilisez l'ACL appropriée parmi celles de cette liste pour autoriser les paquets du protocole de routage :
Exécutez cette commande afin d’autoriser le protocole RIP (Routing Informations Protocol) :
access-list 102 permit udp any any eq rip
Exécutez cette commande afin d’autoriser le protocole de routage IGRP (Interior Gateway Routing Protocol) :
access-list 102 permit igrp any any
Exécutez cette commande afin d’autoriser le protocole Enhanced IGRP (EIGRP) :
access-list 102 permit eigrp any any
Exécutez cette commande afin d’autoriser le protocole OSPF :
access-list 102 permit ospf any any
Exécutez cette commande afin d’autoriser le protocole de passerelle frontière (BGP) :
access-list 102 permit tcp any any eq 179 access-list 102 permit tcp any eq 179 any
L'utilisation des commandes de débogage exige l'allocation de ressources système telles que mémoire et capacité de traitement ; dans des situations extrêmes, cela peut faire caler un système très chargé. Utilisez les commandes de débogageavec prudence. Utilisez une liste de contrôle d’accès afin de définir de manière sélective le trafic qui doit être examiné pour réduire l’impact de la commande debug. Ce type de configuration ne filtre aucun paquet.
Cette configuration active la commande debug ip packet uniquement pour les paquets entre les hôtes 10.1.1.1 et 172.16.1.1.
R1(config)#access-list 199 permit tcp host 10.1.1.1 host 172.16.1.1 R1(config)#access-list 199 permit tcp host 172.16.1.1 host 10.1.1.1 R1(config)#end
R1#debug ip packet 199 detail IP packet debugging is on (detailed) for access list 199
Reportez-vous à Informations importantes sur les commandes de débogage pour plus d'informations sur l'impact des commandes de débogage.
Reportez-vous à la section Utilisation de la commande de débogage de la rubrique Compréhension des commandes Ping et traceroute pour plus d'informations sur l'utilisation des ACL avec les commandes de débogage.
Vous pouvez filtrer des trames avec une adresse d'origine ou de destination Mac spécifique. Vous pouvez configurer dans le système le nombre souhaité d'adresses, sans baisse de performances. Afin de filtrer par adresse Mac, utilisez cette commande en mode de configuration globale :
Router#config terminal Router(config)#bridge irbRouter(config)#
bridge 1 protocol ieeeRouter(config)#
bridge 1 route ip
Appliquez le protocole de pont à une interface dont vous avez besoin pour filtrer le trafic avec la liste d'accès créée avec la commande bridge-group <numéro de groupe> {input-address-list <numéro de liste de contrôle d'accès> | output-address-list <numéro de liste de contrôle d’accès>} :
Router#config terminalRouter(config-if)#
interface fastEthernet0/0Router(config-if)#
no ip addressRouter(config-if)#
bridge-group 1 input-address-list 700Router(config-if)#
exit
Créez une interface virtuelle pontée et appliquez l'adresse IP qui a été attribuée à l'interface Ethernet physique :
Router#config terminalRouter(config-if)#
int bvi1Router(config-if)#
ip address 192.168.1.1 255.255.255.0Router(config-if)#
exitRouter(config)#
access-list 700 deny aaaa.bbbb.cccc 0000.0000.0000Router(config)#
access-list 700 permit 0000.0000.0000 ffff.ffff.ffff
Avec cette configuration, le routeur autorise uniquement les adresses MAC configurées sur l'access-list 700. Avec la commande access-list access-list <numéro ACL> deny <adresse MAC> 0000.0000.0000, refusez l'adresse MAC qui ne peut pas avoir accès, puis autorisez le reste (pour cet exemple, aaaa.bbb.cccc).
Remarque : créez chaque ligne de liste d'accès pour chaque adresse MAC.
Aucune procédure de vérification n'est disponible pour cette configuration.
Il n’y a actuellement aucune information spécifique disponible pour dépanner cette configuration.
Révision | Date de publication | Commentaires |
---|---|---|
3.0 |
21-Nov-2023 |
Terminologie et mise en forme mises à jour. |
2.0 |
04-Oct-2022 |
Formats de commande mis à jour
Mise à jour des fonds, SEO, Mentions légales, traduction automatique et mise en forme. |
1.0 |
20-Aug-2002 |
Première publication |