Table of Contents

acl

ACL

Les ACLs pour Access Control List sont implémentées sur les switchs et routeurs CISCO ; c'est un mécanisme de filtrage de paquets. Il existe 3 types d'ACLs :

Par convention ou par abus de langage, on appelle souvent ACLs les RACLs (se sont de loin les plus utilisées). Dans la suite de cet article nous utiliserons cette contraction.

Il existe les ACLs standards (numérotées de 1-99 ou 1300-1999) et les ACLs étendues (numérotées 100-199 ou 2000-2699).

(config)#ip access-list <numéro entre 1-99> {permit | deny} <ip source> [<wildcard>]
(config)#access-list <numéro> {permit | deny} <procole> <adresse src> <wildcard src> [<port src]]
 <adresse dst> <wildcard dst> [<port dst>] [established] [log]
(config)#ip access-list <standard | extended> <nom_de_l'ACL>
(config-std-nacl)#permit ip host 10.0.0.1 host 10.0.1.1 log

Les ACLs standards doivent être placées au plus près de la destination, alors que les ACLs étendues doivent être placées au plus près de source.

On applique une access-list sur une interface en “in” ou en “out” (entrée ou sortie de l'interface) :

Router(config)#interface fa0/0
Router(config-if)#access-group 1 {in | out}

Une ACL est lue de manière séquentielle = ligne 1 puis ligne 2, etc. Si la ligne 1 matche, le routeur applique la règle pour le paquet et sort de l'ACL. Ainsi, si plusieurs lignes conviennent pour un même paquet, seule la première sera appliquée.

ip access-list resequence

Voici une manière habile de modifier une ACL “proprement”, c'est-à-dire de la façon la plus efficiente. Soit l'ACL étendue suivante :

#show access-lists
 Extended IP access list 101
   1 permit ip host 10.0.0.1 host 10.0.1.1
   2 permit ip host 10.0.0.1 host 10.1.1.1
   3 deny tcp host 10.2.1.1 host 10.3.1.1 eq www

On veut ajouter la ligne deny tcp ip host 10.0.0.1 host 10.1.1.1 eq www en #2. La façon “classique” est de supprimer l'ACL et de la réécrire en insérant la ligne supplémentaire.

La façon la plus rapide est de faire comme ceci :

(config)#ip access-list resequence 101 10 10
(config)#ip access-list extended 101
(config-ext-nacl)#11 deny tcp ip host 10.0.0.1 host 10.1.1.1 eq www
(config)#ip access-list resequence 101 10 10

Dans l'ordre, on renumérote les lignes de l'ACL en commençant à 10, et de 10 en 10 (10, 20, 30) ; puis on édite l'ACL pour insérer notre ligne entre les lignes 10 et 20 (exclues) ; enfin, pour avoir une numérotation “propre”, on renumérote l'ACL pour avoir un incrément de 10 entre chaque numéro de ligne.

NB : pour remplacer une ligne :

ACL de niveau 2

Exemple d'ACL de niveau 2, appliqué sur une interface physique :

Switch(config)# mac access-list ext Filter_mac
Switch(config-ext-macl)# deny host XXXX.XXXX.XXXX any
Switch(config-ext-macl)# permit any any
Switch(config-ext-macl)# exit
Switch(config)# int g1/0/40
Switch(config-if)# mac access-group Filter_mac in

VACL

Les VLAN Access-list ou VLAN access maps sont des ACLs de niveau 2 ou 3, qui s'appliquent sur un VLAN ; elles peuvent donc filtrer du trafic par adresse MAC, mais sont assez peu utilisées.

Pour les mettre en place, il faut spécifier une ou plusieurs map sequence qui associent une action à une ACL ; si un permit de l'ACL “matche”, l'action est appliquée ; si c'est un “deny”, les map sequence suivantes sont vérifiées jusqu'à ce que ça matche. Si un paquet ne match aucune ligne et qu'au moins une ACL de son type est configurée, par défaut le paquet sera droppé.

Ici donc, comme dans les route-map, les termes permit et deny ne sont pas à prendre au sens strict mais en fonction du contexte.

! déclaration de l'ACL niveau 2
mac access-list extended MAC-ACL
 permit host 0050.5611.05b1 any

! Déclaration de l'access map 1 ; le numéro de séquence (10 ici) est optionnel ;
!   il permet de déterminer un ordre d'application dans le cas de multiples access-map
! On filtre (match) sur les adresses MAC (|IP|IPX) en spécifiant "mac address", suivi du nom de l'ACL filtrante
! L'action effectuée en cas de match est de forwarder les paquets
vlan access-map 1 10
 match mac address MAC-ACL
 action forward
! Pour dropper le reste on doit créer un second statement (20)
vlan access-map 1 20
 action drop
! On associe l'access-map qu'on vient de mettre en place aux VLAN 11 et 12
vlan filter 1 vlan-list 11,12

Dans l'exemple précédent on filtre les flux des VLANs 11 et 12 pour ne forwarder que les paquets de la machine d'adresse MAC 0050.5611.05b1.

time-based

Cisco permet aussi, avec ses IOS récents, d'inclure la notion de temps sur les ACLs.

Voici un exemple :

! définiton de la période
time-range semaine_de_travail
 periodic weekdays 8:00 to 17:00
!
! utilisation dans l'ACL
ip access-list extended 101
 permit tcp 10.0.0.0 0.0.0.255 172.16.1.0 0.0.0.255 eq ssh time-range semaine_de_travail