| |||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Les listes d'accès | |||||||||||||||||||||||||||||||||||||||||||||||||||
Objectif : Savoir configurer les access list.1) Définition : Les listes d'accès (access list) sont des instructions qui expriment une liste de règle, imposées par l'opérateur, donnant un contrôle supplémentaire sur les paquets reçue et transmis par le routeur mais ne concernant pas ceux générés par le routeur. Les listes d'accès sont capables d'autoriser ou d'interdire des paquets, que ce soit en entrée ou en sortie vers une destination. Elles opèrent selon un ordre séquentiel et logique, en évaluant les paquets à partir du début de la liste d'instruction. Si le paquet répond au critère de la première instruction, il ignore alors des règles et il est autorisé ou refusé. Il ne peut pas avoir qu'un seul liste d'accès par protocole et par interface.2) Types de protocoles : Les types de protocoles que nous allons pouvoir configurer dans les instructions de filtrage sont ceux qui concernent :
3) Utilité Une liste d'accès va servir :
4) Principes : Une liste d'accès, comportant une suite d'instructions de filtrage, va être appliquée sur une interface du routeur, pour le trafic entrant ou pour le trafic sortant. Il va falloir appliquer une logique sur les interfaces en sortie ou en entrée :5) Caractéristiques : - Les paquets peuvent être filtrés en entrée (quand ils entrent sur une interface) avant la décision de routage.- Les paquets peuvent être filtrés en sortie (avant de quitter une interface) après la décision de routage. - Le mot clef IOS est "deny" pour signifier que les paquets doivent être filtrés ; précisément les paquets seront refusés selon les critères définis. - Le mot clef IOS est "permit" pour signifier que les paquets ne doivent pas être filtrés ; précisément les paquets seront permis selon les critères définis. - La logique de filtrage est configurée dans les listes d'accès. - Une instruction implicite rejette tout le trafic à la fin de chaque liste d'accès. 6) Traitement : Le traitement d'une liste d'accès se déroule en deux étapes :
7) Différence entre liste d'accès standard et liste d'accès étendue : Une liste d'accès standard examinera seulement l'adresse IP source.Une liste d'accès étendue pourra examiner les adresses IP et les ports aussi bien source que destination, ainsi que le type de protocole (IP, ICMP, TCP, UDP). Par ailleurs, il sera possible de vérifier une partie des adresses avec un masque générique (wildcard mask). 8) Désignation d'une liste d'accès : On donnera soit un numéro ou un nom à une liste d'accès à appliquer sur une interface en entrée ou en sortie.Si on utilise un numéro on aura le choix dans une plage de nombres en fonction du protocole de couche 3:
Si on utilise un nom, il faudra désigner le type de liste : standard ou étendue. 9) Le masque générique (Wildcard Mask ou Masque Générique) : Il ne faut pas confondre un masque générique (wilcard mask) avec un masque de réseau.Un masque générique est un masque de filtrage. Quand un bit aura une valeur de 0 dans le masque, il y aura vérification de ce bit sur l'adresse IP de référence. Lorsque le bit aura une valeur de 1, il n'en y aura pas. Un masque de réseau est un masque de division ou de regroupement. Une addition booléenne d'une adresse IP et d'un masque de réseau est utilisée pour distinguer la partie réseau de la partie hôte. En binaire, alors qu'un masque de réseau est nécessairement une suite homogène de 1 et puis de 0, un masque générique peut être une suite quelconque de 1 et de 0 en fonction du filtrage que l'on veut opérer sur des adresses IP. Considérons l'exemple suivant :
En se basant sur le masque en binaire, on peut remarquer que les trois premiers octets de l'adresse de référence doivent correspondre. La valeur du dernier octet n'a pas d'importance. Autrement dit, avec ce masque, toutes les adresses de 10.1.1.0 jusque 10.1.1.255 seront vérifiées. Voici quelques exemples classiques de masque générique sur n'importe quelle adresse IP :
Le mot "any" remplace le 0.0.0.0 255.255.255.255, autrement dit toute adresse IP Le mot "host" remplace le masque 0.0.0.0, par exemple, 10.1.1.1 0.0.0.0 peut être remplacé par "host 10.1.1.1" Concrètement, on pourra généraliser de la manière suivante. Le masque générique à utiliser est l'inverse du masque de réseau pour un réseau à filtrer. Par exemple, pour filtrer sur 192.168.1.0/24 (255.255.255.0), on prendra un masque générique 0.0.0.255. Autre exemple aussi, pour filtrer sur 192.168.1.0/27 (255.255.255.224), on prendra un masque générique 0.0.0.31. 10) Règles d'applications : Placez les listes d'accès aussi près de que possible de la source des paquets (au niveau de l'interface) s'il s'agit d'une ACL étendue. Par contre, s'il s'agit d'une ACL standard, il faut la placer au plus proche de la destination (puisque c'est ce qu'elle ne vérifie pas).Placer en tête de liste les règles (les instructions) qui font l'objet d'une correspondance la plus précise et les plus générales à la fin. Suivre ces deux recommandations tout en respectant les restrictions d'accès qui ont été identifiées. 11) Syntaxe des commandes : La mise en œuvre d'une ACL se déroule en deux étapes :- Création de la liste, en plaçant les instructions les unes après les autres suivies d'un retour chariot. - Application sur une interface en entrée ou en sortie a. Liste d'accès standard - Commandes Standard De Configuration Des Listes D'Accès :
ip access-group {number | name [in | out]}
- Commande qui permet d'applique l'ACL sur une interface donnée en paramètre :
access-class number | name [in | out]
-Ajouter une liste d'accès :
Router(config)#access-list numéro-liste-accès {deny|permit} adresse-source [masque-source] [log]
Router(config)#show access-lists
Standart IP access list 1 Deny 204.59.144.0, wildcard bits 0.0.0.255 Permit any Router # b. Liste d'accès étendu : Cette commande vous permet de créer une liste d'accès IP étendu :
Router(config)#access-list numéro-liste-accès {deny|permit} protocole adresse-source masque-source [opérateur port] adresse-destination masque-destination [opérateur port] [established]
Dans cette commande : Numéro_liste_accès : identifie la liste par un nombre compris entre 100 et 199. Permit | deny : indique si cette entrée autorise ou refuse le trafic pour cette adresse. Protocole : indique le type de protocole (IP, TCP, UDP, ICMP, GRP, ou IGRP). Source et destination : identifient l'adresse IP source et destination. Masque_source et masque_destination : placez la valeur 1 aux positions indiquant « ne pas considérer » et la valeur 0 pour celles devant être impérativement suivies. Des caractères génériques peuvent être utilisés. Opérateur et opérande prennent les valeurs suivantes :
c. Liste d'accès IP nommée : Vous pouvez employer des listes d'accès IP nommée pour retirer des entrées d'une liste d'accès spécifique, ce qui permet de modifier une liste d'accès sans le détruire et de pouvoir le reconfigurer. Les listes d'accés nommées sont utilisées lorsque : - Vous souhaitez identifier une liste d'accès en utilisant un nom alphanumérique. - Vous disposez de plus de 99 listes d'accès simples ou de plus de 100 listes d'accès étendues à configurer pour un protocole donné. Voici la commande :
Router(config)#ip access-list standard nom
Router(config-ext-nacl)#permit|deny … Exemple :
Router(config)# ip access-list extended filtrage
Router(config-ext-nacl)#permit tcp any 192.168.0.0 0.255.255.255 lt 1024 Router(config-ext-nacl)#deny udp any 192.168.0.0 0.255.255.255 eq 8080
Router(config)#ip access-list extended nom
Router(config-ext-nacl)#permit|deny … d. Activation d'une liste d'accès sur une interface : Voici la commande :
Router(config-if)#ip access-group {numéro-liste-accès|nom [in | out]}
Exemple :
Router(config)# interface serial0
Router(config-if)#ip access-group filtrage out On utilise la commande numéro-liste-accès pour lier une liste d'accès à une interface numéro-liste-accès: représente le numéro de la liste à lier. in | out : indique si la liste d'accès est applique à l'interface d'entrée ou en sortie e. Diagnostic : On emploie la commande show pour des raisons de diagnostic comme c'est illustré dans l'exemple suivant :
Router#show ip interface [type numéro]
Router#show access-lists [numéro-liste-accès|nom-liste-accès] Router#show ip access-list [numéro-liste-accès|nom-liste-accès]
Router#show access-lists
Standard IP access list 0 Extended IP access list filtrage permit tcp any 192.168.0.0 0.255.255.255 lt 1024(0 matches) deny udp any 192.168.0.0 0.255.255.255 eq 8080 (0 matches) Router#show ip access-list filtrage ... On pourra "loguer" le comportement d'une ACL en ajoutant le terme log à la fin d'une directive. Un show logging donnera le résultat. Le fichier log comprend tout détails concernant les paquets autorisé (permit) ainsi que pour les paquets refusés (deny). |
Révisé le :24-09-2010| © www.technologuepro.com