Objectifs de certification
CCNA 200-301
5.6 Configurer et vérifier les access control lists
ENCOR 350-401
5.2 Configure and verify infrastructure security features
- 5.2.a ACLs
- 5.2.b CoPP
Port ACLs (PACLs) et VLAN ACLs (VACLs)
Les routeurs Cisco supportent des ACLs (RACLs) standards, étendues et nommées pour filtrer du trafic IPv4 et des ACLs étendues nommées pour filtrer du trafic IPv6.
Les commutateurs Cisco de couche 2 (L2) supportent les listes d’accès appliquées aussi bien sur des ports L2 (PACLs) que sur les VLANs (VACLs).
1. PACLs
La syntaxe pour configurer des PACLs est la même que celle utilisée par les RACLs de n’importe quel routeur fonctionnant en Cisco IOS.
La seule différence est que les PACLs supportent aussi du filtrage L2 des adresses MAC qui connaissent une syntaxe différente.
Les PACLs sont conçues pour filtrer :
- IPv4 : standards, étendues, nommées
- MAC : nommées
Les PACLs peuvent connaître des limites :
- Les PACLs ne sont capables que de filtrer le trafic entrant (pas de support du filtrage du trafic sortant).
- Les PACLs ne peuvent pas filtrer des trames de protocoles de contrôle L2 comme CDP, VTP, DTP, PAgP, UDLD et STP.
- Les PACLs ne sont supportées que sur le matériel
- Les PACLs ne supportent pas le filtrage des protocoles IPv6, ARP, or Multiprotocol Label Switching (MPLS)
Une PACL IPv4 est appliquée à une interface avec la commande ip access-group access-list in
. L’exemple suivant montre une PACL appliquée à une interface Gi0/1 pour bloquer du trafic Telnet, ICMP ainsi que les hôtes 192.168.2.2 et 192.168.2.1.
SW0(config)# ip access-list extended PACL
SW0(config-ext-nacl)# deny tcp any any eq 23
SW0(config-ext-nacl)# deny icmp any any
SW0(config-ext-nacl)# deny ip host 192.168.2.2 host 192.168.2.1
SW0(config-ext-nacl)# permit ip any any
SW0(config-ext-nacl)# exit
SW0(config)# interface GigabitEthernet0/1
SW0(config-if)# switchport
SW0(config-if)# ip access-group PACL in
2. VACLs
Les VLANs ACLs (VACLs) peuvent filtrer du trafic qui est ponté au sein d’un VLAN ou qui est routé à l’intérieur ou à l’extérieur d’un VLAN.
Pour créer et appliquer un VACL, on peut suivre la procédure suivante :
- Définir une “VLAN access map” en utilisant la commande
vlan access-map <name> <sequence>
. Une “VLAN access map” est composée de une ou plusieurs séquences, chacune composée de un “match” et d’une “action” définie. - Configuer la directive “match” (correspondance) avec la commande
match { ip address{ acl-number | acl-name } | mac address acl-name }
. Cette directive supporte des ACLs IPv4 standards, étendues et nommées comme des ACLs MAC nommées comme critère de “correspondance”. - Configurer la directive “action” avec la commande
action forward|drop [log]
. Cette commande indique l’action à prendre en cas de correspondance trouvée. Seul le trafic éliminé (drop
) peut être journalisé (log
). - Appliquer la VACL en utilisant la commande
vlan filter vlan-access-map-name vlan-list
. “vlan-list” peut être un VLAN unique, une plage de VLANs (comme5-40
) ou une liste séparée par des virgules (comme3,8-12,18
).
L’exemple suivant montre un “VLAN access map” appliquée au VLAN 20 pour éliminer le trafic ICMP et le trafic Telnet, et autoriser tout autre trafic. Notons que les ACLs nommées ICMP et TELNET comprennent des entrées (ACE) avec l’action “permit” car elles ne servent que de critères de correspondance aux “access map” qui les filtre par l’action “drop”.
SW1(config)# ip access-list extended ICMP
SW1(config-ext-nacl)# permit icmp any any
SW1(config-ext-nacl)# exit
SW1(config)# ip access-list extended TELNET
SW1(config-ext-nacl)# permit tcp any any eq 23
SW1(config-ext-nacl)# exit
SW1(config)# ip access-list extended OTHER
SW1(config-ext-nacl)# permit ip any any
SW1(config-ext-nacl)# exit
SW1(config)# vlan access-map VACL_20 10
SW1(config-access-map)# match ip address ICMP
SW1(config-access-map)# action drop
SW1(config-access-map)# exit
SW1(config)# vlan access-map VACL_20 20
SW1(config-access-map)# match ip address TELNET
SW1(config-access-map)# action drop log
SW1(config-access-map)# exit
SW1(config)# vlan access-map VACL_20 30
SW1(config-access-map)# match ip address OTHER
SW1(config-access-map)# action forward
SW1(config)# vlan filter VACL_20 vlan-list 20
3. Interactions entre PACL, VACL et RACL
Quand une PACL, une VACL et une RACL sont toutes configurées dans un même VLAN, les ACLs sont appliquées dans un ordre spécifique selon que le trafic doivent être ponté (“bridged”) ou routé (“routed”).
L’ordre du filtrage du trafic “ponté” (au sein du même VLAN) est le suivant :
- PACL en entrée sur un switchport (par exemple, VLAN 99)
- VACL en entrée sur le VLAN (par exemple, VLAN 99)
- VACL en sortie sur le VLAN (par exemple, VLAN 99)
L’ordre du filtrage du trafic “routé” (à travers les VLANs) est le suivant :
- PACL en entrée sur le switchport (par exemple, VLAN 99)
- VACL en entrée sur le VLAN (par exemple, VLAN 99)
- ACL en entrée sur la SVI (par exemple, SVI 90)
- ACL en sortie sur la SVI (par exemple, SVI 100)
- VACL en sortie sur le VLAN (par exemple, VLAN 100)
Attention, comme déjà mentionné les PACLs sortantes ne sont pas supportées.
4. Downloadable ACLs (dACLs)
Les Downloadable ACLs (dACLs) sont une autre sorte de PACL qui peut être dynamiquement poussées par un serveur d’authentification RADIUS. A la suite d’une authentification d’accès au réseau réussie, si une PACL est configurée sur un switchport et qu’une dACL est attribuée par un serveur d’authentification au même port, la dACL écrase la PACL configurée.
5. MAC ACLs
Cet exemple montre une MAC ACL nommée mac_layer
qui refuse tout trafic venant d’une adresse source 0000.4700.0001
et à destination d’une adresse 0000.4700.0009
et qui permet tout autre trafic.
Router(config)# mac access-list extended mac_layer
Router(config-ext-macl)# deny 0000.4700.0001 0.0.0 0000.4700.0009 0.0.0
Router(config-ext-macl)# permit any any
Le document Configuring MAC ACLs indique d’autre critères de filtrage comme le format Ethertype, le VLAN ID ou encore la valeur COS.