Académique Documents
Professionnel Documents
Culture Documents
0)
Les listes d'accès sont une matière importante et basique du CCNA. Ici, il s'agit seulement
d'appliquer des filtres sur les interfaces afin de bloquer du trafic qui les traverse. Toutefois,
leur principe s'applique à d'autres circonstances qui dépassent notre étude ...
1. Définition
Une liste d'accès est un ensemble d'instructions basées sur des protocoles de couche 3
et de couches supérieures pour filtrer le trafic. L'étude exige seulement que nous les
appliquions à partir des interfaces.
Les ACLs font partie des fonctionnalités de type "firewall" des IOS Cisco. On se
contentera d'étudier les ACLs standard et étendue désignées par un numéro ou
nom. Notons que l'on trouvera aussi des ACLs réflexives, basées sur le temps et
Context-based access control (CBAC). Ces dernières ne sont pas abordées par le
CCNA. Elles font parties du cours sécurité.
2. Types de protocoles
Les types de protocoles que nous allons pouvoir configurer dans les instructions de
filtrage sont :
le port source
l'adresse IP source
le port de destination
l'adresse IP de destination
3. Utilité
Une liste d'accès va servir :
A supprimer des paquets pour des raisons de sécurité (pour du trafic de données ou
des accès VTY)
A définir du trafic intéressant pour des configurations spécifiques (NAT, ISDN, etc.)
4. Logique
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.
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 :
1. Recherche de correspondance (examen de chaque paquet)
2. Action (deny ou permit)
Ensuite ,
3. Si pas de correspondance, instruction suivante
4. Si aucune correspondance, l'instruction implicite est appliquée
Une liste d'accès étendue pourra examiner les adresses IP et les ports aussi bien
source que destination, ainsi que 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).
Protocole Plage
IP 1 - 99 et 1300 - 1999
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 :
Masque
Version binaire Description
générique
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"
Placer 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.
1. Création de la liste, en plaçant les instructions les unes après les autres suivies d'un
retour chariot.
2. Application sur une interface en entrée ou en sortie
11.1. Liste d'accès standard
Où :
"opérateur" peut prendre les valeurs suivantes :
lt (less than)
gt (greater than)
eq (equal)
neq (not equal)
range (inclusive range).
11.5. Diagnostic
192.168.32.0/24
192.168.33.0/24
192.168.34.0/24
192.168.35.0/24
192.168.36.0/24
192.168.37.0/24
192.168.38.0/24
192.168.39.0/24
Les deux premiers octets sont identiques. Ils devront être vérifiés. Le masque
générique commencera par 0.0.
Le troisième octet varie. Il peut être écrit comme dans le tableau suivant
conformément à la position de chaque bit par rapport à sa valeur :
Décimale 128 64 32 16 8 4 2 1
32 0 0 1 0 0 000
33 0 0 1 0 0 001
34 0 0 1 0 0 010
35 0 0 1 0 0 011
36 0 0 1 0 0 100
37 0 0 1 0 0 101
38 0 0 1 0 0 110
39 0 0 1 0 0 111
M M M M MDDD
On remarque aisément que les cinq premiers bits correspondent exactement (M) alors
que les trois derniers changent. Le masque générique sur cet octet sera donc : 7
(00000111)
Dans le cas présenté, le dernier octet ne doit pas être vérifié. Le masque générique
sera : 0.0.7.255
Notons que cet ensemble d'adresses peut être résumé avec le masque de super-réseau :
"192.168.32.0/21" ou "192.168.32.0 255.255.248.0". Dans ce cas commun dans
lequel il faudra vérifier ce groupe d'adresse IP, le masque générique sera l'inverse du
masque réseau : en soustrayant 255.255.248.0 de 255.255.255.255, on obtient
0.0.7.255
Quelle méthode a été employée pour découvrir les bits qui doivent être filtrés sur une
adresse IP ? On a désigné les bits qui ne varient pas d'une adresse à une autre et nous
les avons marqué avec un masque générique à la valeur 0 en binaire. Par exemple,
pour filtrer sur un octet uniquement les adresses paires :
Décimale 128 64 32 16 8 4 2 1
0 0 0 0 0 0000
2 0 0 0 0 0010
4 0 0 0 0 0100
6 0 0 0 0 0110
8 0 0 0 0 1000
10 0 0 0 0 1010
x pairs ? ? ? ? ? ? ? 0
D D D D DDDM
On constate que le point commun entre toutes ces adresses ne concerne que le dernier
bit de l'octet. C'est donc ce dernier qu'il faudra vérifier par rapport à une adresse de
référence. Concrètement, en binaire, on aura un masque sur l'octet de "11111110",
"254" en décimale avec comme octet de référence binaire "00000000", "0" en
décimale. Avec la directive "192.168.1.0/0.0.0.254", on filtrera toutes les adresses
paires du réseau 192.168.1.0/24. C'est comme si on disait, vérifie :
que le premier octet soit toujours égal à 192 en décimale,
que le second octet soit toujours égal à 168 en décimale,
que le troisième octet soit toujours égal à 1 en décimale,
que le dernier bit du quatrième octet soit toujours égal à zéro en binaire, soit que sa
valeur décimale soit paire.