Systèmes et réseaux: sécurité
des réseaux
Chapitre 3: les listes
de contrôle d’accès
(ACL)
Les listes de contrôle d’accès (ACL)
Processus du routeur • Les ACL sont des listes de conditions, appliquées au trafic
qui transite via les interfaces du routeur que ce soit en
Informations dans entrée ou en sortie.
l’en-tête du paquet • Les ACL filtrent le trafic en indiquant au routeur d’accepter
ou de rejeter les paquets qui y transitent.
Pour ce faire, le routeur lit l’en-tête de chaque paquet afin de
Décisions de routage déterminer s'il doit être acheminé ou non, en fonction des
conditions définies dans l’ACL.
Seuls les utilisateurs autorisés peuvent donc accéder aux
ressources.
Table de routage
Meilleure route Les ACL permettent donc la gestion
du trafic et la sécurisation de
l’accès à un réseau en entrée
Envoie du paquet comme en sortie.
Filtrage de paquets
Exemple:
Conditions:
• Les paquets du réseau A
sont autorisés.
• Les paquets du réseau B
ne sont pas autorisés.
Les listes de contrôle d’accès (ACL)
Les ACL sont un ensemble de conditions qui
gèrent l’accès à chaque ressource.
• Si un utilisateur souhaite accéder à une
ressource, l’ACL vérifie si cet accès est
autorisé, si oui, elle lui autorise l’accès; sinon,
elle le refuse.
Les ACL opèrent selon un ordre séquentiel, en
évaluant les conditions à partir du début de la
liste. Quand une règle est appliquée, le reste de
l’ACL est ignorée.
tout trafic ne correspondant à aucune règle est
rejeté.
Exemple des droits d’accès les plus courants :
le droit de lire un fichier "read"
le droit d’écrire un fichier "write"
le droit d’exécuter un fichier "execute"
Les listes de contrôle d’accès (ACL)
Les ACL s'appliquent selon un ordre séquentiel en évaluant les paquets dès le début de la liste de
conditions. Si le paquet répond à la première condition appelée entrée de contrôle d’accès ACE (Access
Control Entry), il ignore le reste des conditions.
Lorsque le trafic traverse une interface configurée avec une ACL, le routeur compare les informations
du paquet à chaque ACE, dans l’ordre séquentiel, afin de déterminer si le paquet correspond à l’une
des entrées ACE, c’est ce qu’on appelle le filtrage des paquets.
Les ACL peuvent être associés à l’entrée ou à la sortie du flux:
• interface d’entrée = Les règles de filtrages peuvent être appliquées avant que le routeur prend sa
décision de routage, ce qui est un bon moyen d'économiser les ressources.
• interface de sortie = Les règles de filtrages peuvent être appliquées après que le routeur a pris sa
décision de routage, ce qui est un bon moyen d’acheminer les paquets.
Les listes de contrôle d’accès (ACL)
• Pour filtrer les paquets envoyés du PC2 au serveur S1, on active l’ACL sur R1 pour les paquets entrants
sur l’interface Gi1/0. L’ACL décide si les paquet vont être acheminer ou rejeter.
• Si on active l’ACL sur l’interface Gi0/2 de R2, elle ne pourra pas filtrer les paquets envoyés au serveur S1,
car ces paquets ne passent pas par l’interface Gi0/2.
Pour filtrer un paquet, on doit activer l’ACL sur l’interface qui traite le paquet.
Les listes de contrôle d’accès (ACL)
Les ACL utilisent la logique de première correspondance. Une
fois qu’un paquet correspond à une ligne dans l’ACL, le routeur
exécute cette règle.
Exemple:
Une ACL est appliquée sur l’interface Gi1/3 et contient trois
règles :
• Si la source = 10.1.1.1, on autorise le paquet (permit)
• Si la source = 10.1.1.X, on refuse le paquet (deny)
• Si la source = 10.X.X.X, on autorise le paquet (permit)
Si un paquet est envoyé par le PC1 (10.1.1.1) au serveur S1, R1 compare ce paquet à la première ligne de l'ACL, le
paquet sera autorisé.
Si un paquet est envoyé par le PC2 (10.1.1.2) au serveur S1, R1 compare le paquet à la première ligne de notre ACL. Il
ne fera pas une correspondance, car (10.1.1.2) n'est pas égal à l'adresse IP définie dans la première règle (10.1.1.1).
R1 passe ensuite à la deuxième ligne, R1 réalise que le paquet émis depuis PC2 a une adresse IP qui correspond à
(10.1.1.x). Donc, R1 refuse le paquet.
R1 arrête le traitement sur ce paquet, en ignorant la troisième règle de l’ACL.
Les listes de contrôle d’accès (ACL)
Si le PC3 veut envoyer un paquet au serveur S1. R1 va
examiner les deux premières conditions dans l’ACL, et
trouver qu’elles ne correspondent pas à l'adresse
(10.3.3.3), donc il poursuit l’exécution de l’ACL.
La troisième règle s'applique sur toutes les adresses IP
sous la forme (10.X.X.X), ce qui correspond à l'adresse IP
de PC3, donc le paquet est autorisé et poursuit son
chemin vers le serveur S1.
Si jamais un paquet ne correspond à aucune règles de l’ACL, le paquet sera rejeter (refus implicite).
Le traitement des ACL en mode séquentiel (dans l'ordre) s’applique sur tout type d’ACL.
Les listes de contrôle d’accès (ACL)
Une seule liste de contrôle d’accès est autorisée par Protocole, par Interface et par Direction.
• Par protocole (exemple: IP ou IPX)
• Par interface (exemple: FastEthernet0/0)
• Par direction (exemple: in/out)
Avantages des listes de contrôle d’accès
Limiter le trafic et/ou augmenter les • Exemple: interdire le trafic vidéo sur le réseau pour réduire la
performances charge.
• Exiger que le trafic du routage soit limité à certains liens.
Contrôler le flux • Limiter les mises à jour de routage vers celles des sources
connues.
• Accès juste pour les utilisateurs autorisés ou des réseaux
Sécurité de base pour l’accès réseau
spécifiques.
Filtrer le trafic en fonction du type • Exemple: la messagerie est autorisé dans un réseau, mais la
VoIP est refusé.
• Autoriser ou refuser l’accès des utilisateurs à certains services
Contrôler les hôtes
(ex: FTP ou HTTP).
• Exemple: créer une ACL pour identifier le trafic vocal et le
Priorité à certaines classes de trafic
traiter immédiatement afin d’éviter toute interruption.
Les listes de contrôle d’accès
Les ACL sont divisés en trois catégories, l'ACL standard, l'ACL étendue et l’ACL nommée.
• L'ACL standard contrôle l'adresse IP source et le masque générique.
• L'ACL étendue contrôle l'adresse IP source et l’adresse IP destination, le masque générique, le type
de protocole (TCP, UDP, ICMP, IGRP, IGMP, etc.), les ports sources et destinations, ainsi que les
priorités IP.
• L'ACL nommée est une ACL à laquelle on affecte un nom.
Les listes de contrôle d’accès standards
• Une ACL standard est liée à l’adresse IP source du
paquet.
• Ces ACL sont identifiables par des nombres
allant de 1 à 99 et de 1300 à 1999.
• Ce type d'ACL est utilisé pour autoriser ou
interdire une machine à communiquer avec une
autre machine ou un réseau à
communiquer avec un autre réseau.
Les listes de contrôle d’accès standards
EXEMPLE:
Les trois PCs communiquent entre eux, le but est d’interdire au
PC1 (10.1.1.10) de communiquer avec le PC2 (10.1.2.10) et de
permettre au le PC3 (10.1.3.10) de communiquer avec le PC2.
de Sur l’interface Gi0/2, on va interdire les paquets provenant
du PC1 et autoriser ceux du PC3.
Sur le routeur en mode de configuration globale, on utilise les
commandes enable et configuration terminal, et on crée l’ACL:
Router(config)#access-list 1 deny host 10.1.1.10
Router(config)#access-list 1 permit host 10.1.3.10
Router(config)#interface g0/2
Router(config-if)#ip access-group 1 out
Le "1" est le numéro de l’ACL créée à la première étape, et
"out" signifie que la règle s’applique sur les paquets sortants de
l’interface.
Les listes de contrôle d’accès étendues
Les ACL étendues suivent la même logique que les ACL
standards, elles sont identifiables par un numéro, allant
de 100 à 199 et de 2000 à 2699.
les ACL étendues permettent d'analyser plus de variété
pour un paquet. Ce qui rend ce type d’ACL plus puissant
et plus précis.
EXEMPLE:
On va crée une ACL qui va interdire le ping du PC3 vers le PC2 et autoriser le ping du PC1 vers le PC2.
Router(config)# access-list 100 deny icmp host 10.1.3.10 host 10.1.2.10
Router(config)# access-list 100 permit icmp host 10.1.1.10 host 10.1.2.10
Router(config)#interface gig 0/2
Router(config-if)#ip access-group100 out
Les listes de contrôle d’accès étendues
les ACL étendues peuvent aussi examiner les protocoles TCP, UDP ou ICMP et les champs qui contient les
numéros de port.
Les numéros de port identifient le service qui envoie ou reçoit les données.
EXEMPLE:
Router(config)# access-list
Router(config)# 100permi
access-list t tcp
100 host10.1.1.10
permit tcp hosthost 10.1.2.10 eq
10.1.1.10 21 10.1.2.10 eq 21
host
"eq" veut dire égal, "21" est le numéro de port utilisé par le FTP. On autorise le PC1 10.1.1.10 à communiquer
sur le port 21 (pour le FTP) avec le PC2 10.1.2.10.
EXEMPLE:
access-list 101101
access-list denydeny
tcp host
tcp172.16.3.10 172.16.1.0 0.0.0.255
host 172.16.3.10 172.16.1.0eqftp0.0.0.255 eq ftp
Interdire à un équipement d’accéder au réseau 172.16.1.0 des serveurs FTP.
access-list 101 permit ip any any
access-list tout
Autoriser 101permi tipduany
le reste anyde n’importe qui vers n’importe qui.
trafic
Les listes de contrôle d’accès nommées
Ce type d’ACL est plus pratique, car on peut spécifier un nom et l’associer à une ACL.
Les ACL nommées peuvent correspondre aux mêmes champs que les ACL standard et étendue,
cependant, elles présentent trois grandes différences:
• L’utilisation de noms au lieu de chiffres.
• L’utilisation de sous-commandes ACL, et non de commandes globales, pour définir l'action.
• L’utilisation des fonctionnalités d'édition de l'ACL qui permettent de supprimer des lignes
individuelles de l'ACL et d'insérer de nouvelles instructions à une liste d'accès nommée.
Les listes de contrôle d’accès nommées
EXEMPLE:
Le but est d’interdire au PC X d’accéder au serveur Web S1 via le protocole http.
R1(config)# ip access-list extended X-HTTP
R1(config-ext-nacl)#deny tcp host 172.16.3.10 host 172.16.1.100 eq 80
On pose une interdiction via "deny" depuis le PC X (172.16.3.10) vers le Serveur (172.16.1.100).
80 fait référence au service web
ANNEXE
Listes de contrôle d’accès complexes
ACL Description
Les utilisateurs non-authentifiés et qui
ACL Dynamiques (Lock and Key)
n’utilisent pas Telnet sont bloqués.
Autorisent le trafic sortant et limitent le trafic
ACL réflexives
entrant.
Contrôle d’accès en fonction du jour et de la
ACL basées sur le temps
semaine.
Masque sous réseau et masque générique :
Exemple:
Pour l’adresse 192.168.10.0/24
Le masque sous-réseau 255.255.255.0
Le masque générique dans ce cas est 0.0.0.255
Masque sous réseau
Masque générique
Listes des ports
Listes des ports
Ports Protocol Type Description
20 / 21 FTP TCP File Transfer Protocol
22 SSH TCP / UDP Secure Shell
23 Telnet TCP Unencrypted login
25 SMTP TCP Simple Mail Transfer Protocol
53 DNS TCP / UDP Domain Name Server
67 / 68 DHCP UDP Dynamic Host
80 HTTP TCP Hyper Text Transfer Protocol
443 HTTPS TCP / UDP HTTP with Secure Socket Layer
123 NTP UDP Network Time Protocol
161 / 162 SNMP TCP / UDP Simple Network Management Protocol
Indications pour le TP 1
• Serial connections (DCE): Physical >> model HWIC-2T
• Config loopback adresse Lo0:
Router(config)#interface loopback 1
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#exit
• Config RIP for R1, R2, R3
• Config ssh:
R1(config)#ip domain-name ccnasecurity.com
R1(config)#username SSHadmin privilege 15 secret cisconpa55
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#transport input ssh
R1(config-line)#exit
R1(config)#crypto key generate rsa
Bits: 1024
Exercice 1: les ACL Standards
I. Configurer une ACL 20 standard
pour contrôler l'accès vers le
réseau bleu.
1) Autoriser PC-A à accéder au
réseau bleu.
2) Empêcher le réseau jaune
d'atteindre le réseau bleu.
3) Autoriser tous les autres
réseaux à atteindre le réseau
bleu.
Exercice 1: les ACL Standards
II. Configurer une ACL nommée
ACL_S standard pour limiter l'accès
au réseau rose:
1. Autoriser le PC-C à atteindre le
réseau en rose.
2. Autoriser tous les hôtes du
réseau bleu à atteindre le
réseau rose.
3. Autoriser uniquement la
première moitié des hôtes
(255.255.255.128) du réseau
jaune à atteindre le réseau rose.
Exercice 1: les ACL Standards
III. Configurer une ACL standard 30.
1) Sur R1, créez une ACL standard.
2) Autoriser un seul hôte, le PC-C.
3) Appliquer l'ACL aux lignes VTY.
Exercice 1: les ACL Standards
I. ACL 20: II. ACL-S:
R2(config)#access-list 20 permit host 192.168.1.100 R2(config)#ip access-list standard ACL_S
R2(config)#access-list 20 deny 192.168.1.0 0.0.0.255 R2(config-std-nacl)#permit host 192.168.2.50
R2(config)#access-list 20 permit any R2(config-std-nacl)#permit 172.16.1.0 0.0.0.255
R2(config)#interface g0/0 R2(config-std-nacl)# permit 192.168.1.0 0.0.0.127
R2(config-if)#ip access-group 20 out R2(config-std-nacl)#exit
R2(config)#interface g0/1
R2(config-if)#access-class ACL_S out
III. ACL 30:
R1(config)#access-list 30 permit host 192.168.2.50
R1(config)#line vty 0 4
R1(config-line)#access-class 30 in
Exercice 2: ACL Etendue
Étape 1 : Configurez une ACL étendue avec les
informations suivantes:
1) Le numéro de la liste étendue est 199.
2) Le protocole est TCP.
3) Le réseau source est 10.101.117.32.
4) Le masque générique du réseau source peut être
déterminé en soustrayant 255.255.255.240 de
255.255.255.255.
5) Le réseau de destination est 10.101.117.0.
6) Le masque générique du réseau destination peut
être déterminé en soustrayant 255.255.255.224 de
255.255.255.255.
7) Le service est Telnet.
8) Utilisez la même ACL pour autoriser le trafic ICMP,
quelle que soit l'adresse source et l’adresse
destination.
9) Le reste du trafic vers la destination est interdis.
Exercice 2: ACL Etendue
RTA(config)#access-list 100 permit tcp 10.101.117.32 0.0.0.15 10.101.117.0 0.0.0.31 eq telnet
RTA(config)#access-list 100 permit ICMP any any
RTA(config)#interface g0/2
RTA(config-if)#ip access-group 100 out
Remarque:
Le reste du trafic est automatiquement interdis par l’ACL puisqu’il ne satisfait ni la première ni la deuxième
condition, donc il est inutile de créer une condition pour la question 9.
Exercice 3: ACL Etendue Nommée
Configurer une ACL étendue nommée NEW_ACL
1) Refusez à PC1 d'accéder aux services HTTP et HTTPS sur Server1 et Server2.
2) Refusez à PC2 d'accéder aux services FTP sur Server1 et Server2.
3) refusez à PC3 d'envoyer une requête ping à Server1 et Server2.
4) Autorisez tout autre trafic IP.
Exercice 3: ACL Etendue Nommée
RT1(config)#ip access-list extended NEW_ACL
RT1(config-ext-nacl)#deny tcp host 172.31.1.101 host 64.101.255.254 eq 80
RT1(config-ext-nacl)#deny tcp host 172.31.1.101 host 64.101.255.254 eq 443
RT1(config-ext-nacl)#deny tcp host 172.31.1.101 host 64.103.255.254 eq 80
RT1(config-ext-nacl)#deny tcp host 172.31.1.101 host 64.103.255.254 eq 443
RT1(config-ext-nacl)#deny tcp host 172.31.1.102 host 64.101.255.254 eq 20
RT1(config-ext-nacl)#deny tcp host 172.31.1.102 host 64.103.255.254 eq 20
RT1(config-ext-nacl)#deny ICMP host 172.31.1.103 host 64.101.255.254
RT1(config-ext-nacl)#deny ICMP host 172.31.1.103 host 64.103.255.254
RT1(config-ext-nacl)#permit ip any any
RT1(config-ext-nacl)#exit
RT1(config)#interface g0/0
RT1(config-if)#ip access-group NEW_ACL in
Exercice 4: ACL Etendue
Deux PC doivent accéder aux services fournis par le
serveur (172.22.34.62). PC1 a besoin d’accès FTP, tandis
que PC2 a besoin d’accès Web.
Les deux PC sont capables d’envoyer une requête ping au
serveur, mais pas l’un à l'autre. Configurez et appliquez
une ACL numérotée étendue.
1. Configurez une ACL pour autoriser FTP et ICMP pour
PC1.
2. Appliquez l’ACL sur la bonne interface pour filtrer le
trafic.
3. Configurez une ACL pour autoriser HTTP et ICMP pour
PC2.
4. Appliquez l’ACL sur la bonne interface pour filtrer le
trafic.
Exercice 4: ACL Etendue
R1(config)#access-list 100 permit tcp 172.22.34.64 0.0.0.31 host 172.22.34.62 eq ftp
R1(config)#access-list 100 permit ICMP 172.22.34.64 0.0.0.31 host 172.22.34.62
R1(config)#interface g0/0
R1(config-if)#ip access-group 100 in
R1(config)#access-list 100 permit tcp 172.22.34.96 0.0.0.15 host 172.22.34.62 eq 80
R1(config)#access-list 100 permit ICMP 172.22.34.96 0.0.0.15 host 172.22.34.62
R1(config)#interface g0/1
R1(config-if)#ip access-group 100 in
Traduction des adresses du réseau (NAT: Network Address Translation)
Le NAT est mis en place sur les
routeurs pour remplacer une adresse
IP privée d'une machine, par une
adresse IP publique du routeur, afin
de permettre au machine
de communiquer avec un serveur
Internet.
• NAT statique: un à un
• NAT dynamique: plusieurs à
plusieurs
• PAT: plusieurs à un
Le PAT (Port Address Translation) est un NAT dynamique, le PAT effectue une association dynamique et
temporaire entre une adresse IP privée et une adresse IP publique, il ajoute à cette association une autre
information qui est le numéro de port.
Donc une seule et même adresse IP publique peut-être utilisée par X machines connectées sur le réseau.
(ordinateur, smartphone, tablette, prises connectées… utilisent tous la même adresse IP publique pour
accéder à Internet).
Exercice 4: NAT et PAT
Configurer le NAT:
1. Définissez une ACL pour les adresses IP privées
du LAN.
2. Définissez le pool d’adresses IP publiques
utilisables.
3. Définissez le NAT de la liste des sources
internes vers le pool externe.
4. Spécifiez les interfaces.
5. Vérifiez la configuration NAT.
Configurer le PAT:
1. Effacez les NAT et les statistiques sur le routeur
Gateway.
2. Associez la liste source à l’interface externe.
3. Testez la configuration PAT.
Exercice 4: NAT et PAT
Configurer le NAT:
ISP(config)#ip route 209.165.200.224 255.255.255.248 209.165.201.18
Gateway(config)#ip route 0.0.0.0 0.0.0.0 209.165.201.17
Gateway(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Gateway(config)#ip nat pool PUBLIC_ACCESS 209.165.200.225 209.165.200.230 netmask 255.255.255.248
Gateway(config)#ip nat inside source list 1 pool PUBLIC_ACCESS overload
Gateway(config)#interface g0/1
Gateway(config-if)#ip nat inside
Gateway(config-if)#exit
Gateway(config)#interface se0/0/1
Gateway(config-if)#ip nat outside
Pour faire apparaitre les translations (Gateway#show ip nat translations)
Exercice 4: NAT et PAT
Configurer le PAT:
Gateway(config)#no access-list……
Gateway(config)#no ip nat pool…..
Gateway(config)#no ip nat inside source……
Gateway(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Gateway(config)#ip nat inside source list 1 interface serial 0/0/1 overload
Gateway(config)#interface g0/1
Gateway(config-if)#ip nat inside
Gateway(config-if)#exit
Gateway(config)#interface se0/0/1
Gateway(config)#ip nat outside