Pour être plus précis lors de la correspondance d’un certain trafic réseau, on utilise des listes d’accès étendues. Les listes d’accès étendues sont plus difficiles à configurer et nécessitent plus de temps de processeur que les listes d’accès standard, mais elles permettent un niveau de contrôle beaucoup plus granulaire.
Avec les listes d’accès étendues, vous pouvez évaluer des informations supplémentaires sur les paquets, telles que :
- l’adresse IP source et destination
- le type de protocole TCP/IP (TCP, UDP, IP…)
- les numéros de port source et destination
Deux étapes sont nécessaires pour configurer une liste d’accès étendue :
1. configurer une liste d’accès étendue à l’aide de la commande suivante :
(config) access list NUMBER permit|deny IP_PROTOCOL SOURCE_ADDRESS WILDCARD_MASK DESTINATION_ADDRESS WILDCARD_MASK PROTOCOL_INFORMATION
2. appliquer une liste d’accès à une interface à l’aide de la commande suivante :
(config) ip access-group ACL_NUMBER in | out
Les numéros des listes d’accès étendues sont dans des plages de 100 à 199 et de 2000 à 2699. Vous devriez toujours placer les listes d’accès étendues aussi près que possible de la source des paquets qui sont évalués.
Pour mieux comprendre le concept des listes d’accès étendues, considérez l’exemple suivant:
Nous voulons permettre au poste de travail de l’administrateur (10.0.0.1/24) d’accéder sans restriction au serveur (192.168.0.1/24). Nous allons également refuser tout type d’accès au Serveur depuis la station de travail de l’utilisateur (10.0.0.2/24).
D’abord, nous allons créer une déclaration qui permettra au poste de travail de l’administrateur d’accéder à Server:
Puis, nous devons créer une déclaration qui refusera au poste de travail de l’utilisateur l’accès à Server :
Enfin, nous devons appliquer la liste d’accès à l’interface Fa0/0 sur R1:
Cela forcera le routeur à évaluer tous les paquets entrant dans Fa0/0. Si l’administrateur essaie d’accéder à Server, le trafic sera autorisé, en raison de la première instruction. Cependant, si l’utilisateur essaie d’accéder au serveur, le trafic sera interdit en raison de la deuxième déclaration ACL.
À la fin de chaque liste d’accès, il y a une déclaration explicite deny all, donc la deuxième déclaration ACL n’était pas vraiment nécessaire. Après avoir appliqué une liste d’accès, tout trafic qui n’est pas explicitement autorisé sera refusé.
Dans la partie droite, nous avons un Serveur qui sert de serveur web, écoutant sur le port 80. Nous devons permettre à l’Utilisateur d’accéder aux sites web sur S1 (port 80), mais nous devons également refuser tout autre type d’accès.
D’abord, nous devons autoriser le trafic de l’Utilisateur vers le port 80 du Serveur. Nous pouvons le faire en utilisant la commande suivante :
En utilisant le mot clé tcp, nous pouvons filtrer les paquets par les ports source et destination. Dans l’exemple ci-dessus, nous avons autorisé le trafic de 10.0.0.2 (station de travail de l’utilisateur) à 192.168.0.1 (serveur) sur le port 80. La dernière partie de la déclaration, eq 80, spécifie le port de destination de 80.
Puisqu’à la fin de chaque liste d’accès il y a une déclaration implicite deny all, nous n’avons pas besoin de définir d’autres déclarations. Après avoir appliqué une liste d’accès, tout trafic ne provenant pas de 10.0.0.2 et allant vers 192.168.0.1, port 80 sera refusé.
Nous devons appliquer la liste d’accès à l’interface:
Nous pouvons vérifier si notre configuration a réussi en essayant d’accéder au serveur depuis le poste de travail de l’utilisateur en utilisant différentes méthodes. Par exemple, le ping échouera:
La mise en place d’un réseau téléphonique vers le port 21 échouera:
Par contre, nous pourrons accéder au Serveur sur le port 80 en utilisant notre navigateur:
.