Une liste de contrôle d’accès est une collection d’instructions ayant comme objectif de permettre ou d'interdire la
commutation des paquets en fonction d’un certain nombre de conditions ou de critères, tels que :
- Les adresses source et destination,
- Les protocoles de couches supérieures tel que UDP; et le numéro de port tel que 67,
- Des paramètres dynamiques basés sur le temps : 2 heures sur une période de 24 heures.
Les ACL opèrent selon un ordre séquentiel et logique, en évaluant les paquets à partir du début de la liste. Dès qu’une règle est appliquée,
le reste de l’ACL est ignorée. Il faut faire attention lors de la conception des ACL : tout trafic ne correspondant à aucune règle est rejeté.
1-Les types d’ACL : Il existe 3 types de liste de contrôle d’accès. Elles sont :
- les ACLs standards,
- les ACLs étendues,
- les ACLs nommées.
1.1- Les ACL standards : Les ACLs standards utilisent des spécifications d’adresses simplifiées et autorisent ou refusent un ensemble de
protocoles. La syntaxe de ce type est :
access-list no de l’ACL (deny ou permit)
(adresse de la source) (son masque générique)
Exemple 1 : Soit la syntaxe suivante :
A(config)#access-list 10 deny 192.168.100 0.0.0.255
Le numéro de la liste est 10 et on demande au routeur A d'interdire les paquets provenants des clients du réseau 192.168.100.0 /24.
Les autres paquets des autres réseaux sont aussi interdites car une fois une règle est appliquée tout autre traficc est bloqué. A fin de
permettre la commutation des autres paquets il faut teminer la liste 10 par la syntaxe suivante :
A(config)#access-list 10 permit any
La deuxième étape est de placer la liste 10 à une interface du routeur A. Comme les ACL standards spécifient une adresse de source donc la
meilleure stratégie est de les placées au plus prés de leur destination. La syntaxe associée est donnée par le suivant :
A(config)#int IX
A(config-if)#ip access-group no de l’ACL (in ou out)
La liste no de l’ACL est placée à l'interface
IX de A. On peut peut l'appliquer dans la direction in c'est à dire la direction entrante à
l'interface ou out dans sa direction sortante.
Note : Si la direction de l'interdiction n'est pas définit, le routeur considérera la direction out par défaut.
EXEMPLE D'UNE ACL STANDARD
Soit la topologie ci-dessous :
On veut interdire le traffic ou les paquets du réseau Visiteur (192.168.10.0/24) au réseau Technicien (192.168.30.0/24). Les adresses des liens sont 192.168.40.0/24
entre les routeurs TECH et SERV et 192.168.50.0/24 entre les routeurs SERV et VST.
SERV(config)#access-list 10 deny 192.168.10.0 0.0.0.255
SERV(config)#access-list 10 permit any
Cette liste est appliquée à l'interface s0/0/0 de SERV, c'est l'accès le plus prés de destination des paquets du réseau Visiteur :
SERV(config)#interface Serial0/0/0
SERV(config-if)#ip access-group 10 out
On peut appliquer l'interdiction au routeur TECH. et à son interface s0/0/0. Je laisse le lecteur décider comment.
1.2- Les ACL étendues : La syntaxe de l'ACL étendue est :
access-list no de l’ACL (deny ou permit)
protocol
(adresse d’origine masque générique)
(adresse destination masque générique)
opérateur
opérande ou argument
Selon le ACL étendue on doit spécifier les deux adresses celle de la source des paquets et celle de leur destination. Le protocole qu'on veut
permettre ou bloquer ainsi qu'une opération d'ordre logique sur le protocole spécifié par la permission ou l'interdiction de la liste d'accès.
La liste des opérateurs est :
- Lt plus petit que,
- Gt plus grand que,
- Eq égal à,
- Neq différent de.
Soit la syntaxe suivante :
A(config)#access-list 150 deny udp host 192.168.10.10 host 192.168.20.11 eq tftp
A(config)#access-list 150 permit udp any any
On traduit cette configuration par le suivant : Cette liste concerne le protocole UDP, la source est un hôte ayant une adresse IP 192.168.10.10
et on lui interdit l'accès à l'adresse IP 192.168.20.11 qui est celle d'un serveur tftp. On sait que UDP est le protocole de couche
supérieure qui supporte le service TFTP. La nouveauté ici est la commande host, elle remplace le masque générique car l'interdiction
est appliquée à une seule adresse et non un ensemble d'adresses d'un réseau.
La deuxième ligne de la configuration doit permettre à tous les hôtes de tous les réseaux l'accès TFTP. On permet le protocole UDP
à toutes les adresses sources 'any' vers toutes les adresses destinations donc un deuxième 'any'.
EXEMPLE D'UNE ACL ÉTENDUE
Soit la topologie ci-dessous :
On suppose l'adresse IP du serveur HTTP est 192.168.20.11 et celle du hôte qu'on veut lui interdire l'accès web est 192.168.10.10. La configuration
de cette ACL est au routeur VST telle que :
VST(config)#access-list 110 deny tcp host 192.168.10.10 host 192.168.20.11 eq www
VST(config)#access-list 110 permit tcp any any
VST(config)#access-list 110 permit ip any any
La liste est appliquée à l'interface fa0/1 de VST, c'est l'accès le plus prés de la source des paquets HTTP. La syntaxe est :
SERV(config)#interface fa0/1
SERV(config-if)#ip access-group 110 in
On interdit les paquets rentrants à cette interface en provenance du hôte 192.168.10.10 en allant vers le serveur HTTP ayant l'adresse 192.168.20.11.
Les deux dernières lignes de VST(config)# permettent aux autres hôtes des 3 réseaux d'avoir l'accès HTTP et à tous les hôtes des réseaux de pouvoir
communiquer en utilisant les protocoles TCP / IP.
On peut appliquer la même liste mais à une interface différente, la fa0/0 de SERV, attention il faut varier légèrement la syntaxe.
Je laisse le lecteur décider de ce changement.
On peut vérifier le fonctionnement des ACL en utilisant les commandes suivantes :
VST#show access-list 110
Extended IP access list 110
deny tcp host 192.168.10.10 host 192.168.20.11 eq www (16 match(es))
permit tcp any any (5 match(es))
permit ip any any