ACL: Access Control List
Une ACL est une liste de règles permettant de filtrer ou d’autoriser du trafic sur un réseau en fonction de certains critères (IP source, IP destination, port source, port destination, protocole, ...). Une ACL permet de soit autoriser du trafic (permit) ou de le bloquer (deny). Il est possible d’appliquer au maximum une ACL par interface et par sens (input/output).
Une ACL est analysée par l’IOS de manière séquentielle.
Dès qu’une règle correspond au trafic, l’action définie est appliquée, le reste de l’ACL n’est pas analysé.
Toute ACL par défaut bloque tout trafic. Donc tout trafic ne correspondant à aucune règle d’une ACL est rejeté.
Dès qu’une règle correspond au trafic, l’action définie est appliquée, le reste de l’ACL n’est pas analysé.
Toute ACL par défaut bloque tout trafic. Donc tout trafic ne correspondant à aucune règle d’une ACL est rejeté.
Remarque: Les ACLs servent également à identifier un trafic afin d’être traité par un processus, dans ce cas le trafic correspondant à un « permit » est traité, et celui correspondant à un « deny » est ignoré.
Il existe deux types d'ACL:
- ACL standard : Permet d’analyser du trafic en fonction de:
- Adresse IP source
- ACL étendue: permet d’analyser du trafic en fonction de:
- Adresse IP source;
- Adresse IP destination;
- Protocole (tcp, udp, icmp, ...);
- Port source;
- Port destination;
- Etc.
Remarques:
- Les ACLs standard sont à appliquer le plus proche possible de la destination en raison de leur faible
précision. - Les ACLs étendues sont à appliquer le plus proche possible de la source.
Les ACLs peuvent être identifiées soit par un numéro ou soit par un nom et on parle:
- ACL numérique
- ACL nommée
Configuration d'une ACL numérique standard ou d'une ACL nommée standard
Configuration d'une ACL numérique étendue ou d'une ACL nommée étendue
Comment modifier une ACL:
Comment supprimer une ACL:
Application, vérification et désactivation d'une ACL:
TP1: Autoriser l'accès au réseau pour un hôte sélectionné
Cette figure illustre un hôte sélectionné disposant d'une autorisation d'accès au réseau. Tout trafic originaire de l'hôte PC2 et destiné au réseau 172.16.1.0/24 est autorisé, alors que tout autre trafic originaire du réseau 172.16.0.0/24 et destiné à 172.16.1.0/24 est refusé.
Configuration du routeur R1 :
Routeur(config)#accesslist 1 permit host 172.16.0.1
Routeur(config)#interface fastEthernet f0/1
Routeur(config)#ip accessgroup 1 in
Tester en faisant un ping depuis PC2 et PC3 vers la machine PC1
2. Refuser l'accès au réseau pour un hôte sélectionné
Cette figure montre que le trafic originaire de l'hôte PC1 et destiné au réseau
172.16.1.0/24 est refusé, alors que tout autre trafic originaire du réseau 172.16.0.0/24 et destiné à accéder au réseau 172.16.1.0/24 est autorisé.
Cette configuration refuse tous les paquets de l'hôte 172.16.0.2/24 via fastEthernet 0/1 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.
- Tout d'abord donner les éléments TCP/IP à chaque machine, aux différentes interfaces du routeur et tester la communication entre ces dernières.
Routeur(config)#accesslist 1 permit host 172.16.0.1
Applicaition de l'acl à l'interface f0/1:
Routeur(config)#interface fastEthernet f0/1
Routeur(config)#ip accessgroup 1 in
Tester en faisant un ping depuis PC2 et PC3 vers la machine PC1
TP2: Refuser l'accès au réseau pour un hôte sélectionné
Cette figure montre que le trafic originaire de l'hôte PC1 et destiné au réseau 172.16.1.0/24 est refusé, alors que tout autre trafic originaire du réseau 172.16.0.0/24 et destiné à accéder au réseau 172.16.1.0/24 est autorisé.
Cette configuration refuse tous les paquets de l'hôte 172.16.0.2/24 via fastEthernet 0/1 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.
Commencer par affecté les éléments TCP/IP aux machines et aux interfaces du routeurCette configuration refuse tous les paquets de l'hôte 172.16.0.2/24 via fastEthernet 0/1 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.
Configuration de R1 :
Définition de l'acl :
R1(config)# access-list 1 deny host 172.16.0.2
R1(config)# access-list 1 permit any
Application de l'acl :
R1(config)# interface fastethernet 0/1
R1(config)# ip access-group 1 in
Tester en faisant un ping depuis PC2 et PC3 vers la machine PC1. On constate PC2 communique avec PC3 mais pas PC3.
TP3: ACL et connections Telnet et SSH
Autorisation de l’IP 172.16.1.2 uniquement à ouvrir des sessions à distance sur le Routeur R1 :
Donner une adresse IP à l’interface du routeur, activer la connexion à distance avec ssh et créer au moins un compte et un mot de passe:
- R1(config)# ip domain-name tirera.sn
- R1(config)# crypto key generate rsa (#donner la taille du module: 1024,2048,)
- R1(config)# line vty 0 15
- R1(config-line)# login local
- R1(config-line)# transport input ssh
- R1(config-line)# username aly password passer123
- R1(config)# ip ssh version2
- R1(config)# ip ssh authentication-retries 5
- R1(config)# ip ssh time-out 60
Création d’une acl autorisant uniquement la machine dont l’adresse est 172.16.1.2 à ouvrir des sessions à distance :
R1(config)#accesslist 2 permit host 172.16.1.2
R1(config)#accesslist 2 deny any
R1(config)#line vty 0 4
R1(configline)#accessclass 2 in
R1(config)#accesslist 2 deny any
R1(config)#line vty 0 4
R1(configline)#accessclass 2 in
Pour tester lancer un terminal et ouvrir une session ssh sur le routeur R1 comme le montre la figure :
Changer l’adresse IP de la machine à 172.16.1.3/24 comme le montre la figure cidessous :
Après avoir redémarré la machine relancer le terminal essayer de vous connecter par ssh sur l’interface du routeur.
On constate que la connexion a été refusé par le routeur comme le montre la figure ci-dessous :
TP4: Refuser le trafic Telnet (TCP, port 23)
Afin de résoudre les problèmes de sécurité graves, vous pouvez être amené à désactiver l'accès Telnet à votre réseau privé à partir du réseau public. Cette figure montre comment le trafic Telnet du réseau 172.16.1.0/24 (public) destiné au réseau 172.16.0.0/24 (privé) est refusé, ce qui permet de refuser une session Telnet au réseau 172.16.0.0/24 tandis que tout autre trafic IP est autorisé.
Telnet utilise TCP sur le port 23. Cette configuration montre que tout le trafic TCP réseau 172.16.0.0/24 sur le port 23 est bloqué, et que tout autre trafic IP est autorisé.
Configuration R1
R1(config)#accesslist 102 deny tcp any any eq 23
R1(config)#accesslist 102 permit ip any any
R1(config)#interface fastEthernet 0/0
R1(config-int)#ip accessgroup 102 in
Pour les tests activer la connextion à distance sur le routeur et on essaye de se connecter par telnet et faire aussi un ping sur la machine (172.16.0.1) comme le montre la figure:
R1(config)#accesslist 102 deny tcp any any eq 23
R1(config)#accesslist 102 permit ip any any
R1(config)#interface fastEthernet 0/0
R1(config-int)#ip accessgroup 102 in
Pour les tests activer la connextion à distance sur le routeur et on essaye de se connecter par telnet et faire aussi un ping sur la machine (172.16.0.1) comme le montre la figure:
Le prochain tutoriel portera sur la translation d'adresse NAT, PAT sous CISCO et sous Linux (iptables).
Commentaires
Enregistrer un commentaire