Après avoir présenté les concepts de base associés aux listes d’accès (ACLs), cet article va présenter les aspects spécifiques aux ACLs dites standards. Ce sont les plus simples à configurer: elles sont donc idéales pour débuter votre apprentissage !
Note: avant de lire cet article, il est préférable d’avoir lu l’article précédent accessible ici: Cisco Accsss-Lists (ACL): Introduction.
Caractéristiques générales des ACLs Standards
Les deux principales caractéristiques des listes d’accès (ACL) standards sont listées ci-dessous:
- le filtrage est uniquement basé sur l’adresse IPv4 source des paquets IP (aucun contrôle des adresses IP destination, ni des numéros de port UDP ou TCP);
- chaque liste est identifiée par un nombre compris entre 1 et 99 ou entre 1300 en 1999. Pourquoi deux plages ? C’est historique. Au départ, seule la plage comprise entre 1 et 99 existait mais cela limitait à moins de 100 filtres sur un routeur! Parce qu’un opérateur ne pouvait se satisfaire de 100 filtres, Cisco a étendu le nombre de filtres en proposant une plage complémentaire.
ACL Standard: au plus proche de la destination
Au niveau de l’utilisation de ces ACLs, ces filtres sont généralement appliqués au plus près de la destination. En effet, cela permet de limiter l’impact du filtre à quelques destinations (de façon implicite). Nous allons illustrer ce dernier point avec un exemple. Regardons la topologie ci-dessous:
Prenons l’exemple où l’on souhaite interdire le trafic de la machine 1 (adresse IP: 1.1.1.1) vers la machine 4 (adresse IP: 4.4.4.4) à l’aide d’une ACL standard.
L’ACL qui permet d’interdire le trafic dont l’adresse IP source est 1.1.1.1 sera écrite comme ceci:
access-list 1 deny 1.1.1.1 0.0.0.0 access-list 1 permit any
La première ligne interdit toutes les adresses IP dont la source correspond à l’adresse IP 1.1.1.1 (on remarque qu’aucun joker n’est autorisé par le masque de joker 0.0.0.0).
La seconde ligne autorise tout le reste (pour contourner la règle implicite qui interdit tout…)
La première étape qui consiste à définir la liste est faite. Mais sur quel routeur et quelle interface l’appliquer ?
- Si ce filtre est appliqué sur les routeurs R1 et/ou R2: la machine 1 ne peut accéder à aucune ressource du réseau puisque la règle interdit tout le trafic dont la source est 1.1.1.1
- Si ce filtre est appliqué sur le routeur R3: le comportement est meilleur, puisque la machine 1 peut librement communiquer avec la machine 2.2.2.2. Mais elle ne peut alors pas communiquer avec 3.3.3.3 et 4.4.4.4. Si l’on veut interdire les communications avec 4.4.4.4, on veut conserver la communication avec 3.3.3.3 !
Cet exemple montre bien que le filtre doit être appliqué au plus proche de la destination. Puisqu’on ne peut pas définir sur quelles adresses IP destinations le filtre s’applique, cette règle d’ingénierie permet de limiter implicitement le champ d’application du filtre.
Ainsi, sur le routeur R4, on appliquerait le filtre comme suit:
R4(config)#int FastEthernet 0/1 R4(config-if)#ip access-group 1 out
Configuration d’une ACL standard
Étape 1: Définir la liste d’accès
La commande qui permet de définir une ACL s’utilise exclusivement dans le mode de configuration globale:
Router(config)#access-list <acl-number> [permit|deny] <IP-source-address> <wildcard-mask>
- le numéro d’ACL est compris entre 1 et 99 ou 1300 et 1999,
- la règle peut autoriser (permit) ou interdire (deny) une adresse IP (ou un groupe d’adresses)
- l’adresse IP d’une machine peut être définie comme dans l’exemple précédent mais on peut également utiliser ces notations:
R4(config)#access-list 1 deny host 1.1.1.1
ou encore:
R4(config)#access-list 1 deny 1.1.1.1 /32
Toutes ces notations sont équivalentes.
L’intérêt du masque de joker est de permettre de définir des listes d’adresses, par exemple toutes les machines d’un sous-réseaux. Par exemple:
access-list 1 deny 1.1.0.0 0.0.255.255 access-list 1 permit any
Ici, toutes les adresses IP qui commencent par 1.1 sont interdites. On aurait pu utiliser cette notation:
access-list 1 deny 1.1.0.0 /16 access-list 1 permit any
Étape 2: Appliquer la liste d’accès
La commande qui permet d’appliquer une ACL à une interface donnée (dans le mode de configuration de l’interface):
Router(config-if)#ip access-group <acl-number> [in|out]
- un filtre s’applique soit sur le trafic entrant (mot-clé in), soit sur le trafic sortant de l’interface (mot-clé out).
Vérifications
Pour vérifier la configuration d’une liste d’accès standard, plusieurs commandes show peuvent être utilisées:
show ip access-lists
-> Cette commande permet de voir les différentes ACLs ainsi que le nombre de fois où une entrée a été utilisée pour les paquets IP.
show ip interface <interface>
-> Cette commande permet de voir si une ACL est appliquée sur une interface donnée et, le cas échéant, laquelle et dans quel sens.
Voilà donc les informations nécessaires pour vous permettre de débuter dans le monde des ACLs. Cette mécanique relativement simple permet de faire des règles relativement complexes: il faut s’entraîner et ne pas oublier les concepts de base ! Si vous avez des questions sur les ACLs standards, laissez-moi un commentaire dans l’espace ci-dessous: la question (et sa réponse) profitera à tout le monde !
Laisser un commentaire