Vous êtes sur la page 1sur 26

Jour 9 - Listes de contrôle d'accès - Access Control Lists

Tâches du jour 9
 Lisez les notes de cours d'aujourd'hui (ci-dessous)
 Terminez le TP d'aujourd'hui
 Read the ICND1 cram guide
 Spend 15 minutes on the subnetting.org website
Avec le sous-réseau et le VLSM, les listes de contrôle d'accès (ACL) sont l'un des sujets de bogue
pour les nouveaux étudiants Cisco. Parmi les problèmes se trouvent l'apprentissage des
commandes de configuration IOS, la compréhension des règles ACL (y compris la règle implicite
«refuser tout») et l'apprentissage des numéros de port et des types de protocoles.
Comme pour tout sujet, vous devez suivre le processus d'apprentissage une étape à la fois,
appliquer chaque commande que vous voyez ici à un routeur et faire beaucoup de travaux
pratiques.
Aujourd'hui, vous apprendrez ce qui suit:
◻ Principes de base de l'ACL
◻ ACL standard, étendues et nommées
◻ Règles ACL
◻ Masques génériques
◻ Configuration ACL
◻ Dépannage des ACL
Ce module correspond aux exigences du programme CCNA suivantes:
 Décrivez les types, les fonctionnalités et les applications des listes de contrôle d'accès
o Standard
o Numéros de séquence
o Édition
o Étendu
o Nommé
o numéroté
o Option de journal
o Configurer et vérifier les ACL dans un environnement réseau
Principes de base de l'ACL
Le but des ACL est de filtrer le trafic qui passe par votre routeur. Je ne connais aucun réseau qui
devrait autoriser tout type de trafic à y entrer ou à en sortir. En plus de filtrer le trafic, les ACL
peuvent être utilisées pour référencer des pools NAT, pour filtrer vos commandes de débogage et
avec des cartes de route (ceci est en dehors des exigences du programme CCNA).
Selon le type d'ACL que vous configurez, vous pouvez filtrer le trafic en fonction du réseau source
ou des adresses IP, du réseau de destination ou des adresses IP, des protocoles ou des numéros de
port. Vous pouvez appliquer des ACL à n'importe quelle interface de routeur, y compris vos ports
Telnet.
Les trois principaux types d'ACL sont les suivants:
 Standard numbered - Standard numéroté
 Extended numbered - Étendu numéroté
 Standard or extended named - Standard ou étendu nommé
Les ACL numérotées standard sont la forme la plus basique d'ACL que vous pouvez appliquer au
routeur. Bien qu'ils soient les plus faciles à configurer, ils ont la gamme de filtres la plus limitée
disponible. Ils ne peuvent filtrer qu'en fonction de l'adresse IP ou du réseau source. La manière
de reconnaître une ACL standard est par le numéro qui précède les lignes de configuration; ces
nombres seront de 1 à 99.
Les listes de contrôle d'accès numérotées étendues permettent une plus grande granularité, mais
peuvent être plus délicates à configurer et à dépanner. Ils peuvent filtrer une adresse IP ou un
réseau de destination ou source, un type de protocole et un numéro de port. Les nombres que
vous pouvez utiliser pour configurer les ACL étendues sont de 100 à 199 inclus.
Les ACL nommées vous permettent d'associer une liste de filtres à un nom plutôt qu'à un nombre.
Cela les rend plus faciles à identifier dans les configurations de routeur. Les listes de contrôle
d'accès nommées peuvent en fait être étendues ou standard; vous choisissez lequel à la ligne de
configuration initiale de l'ACL.
Pour réussir l'examen CCNA et devenir un nouvel ingénieur Cisco, vous devez comprendre les
éléments suivants:
 Numéros de port
 Règles ACL
 Syntaxe de commande pour les ACL
Numéros de port
Vous devez simplement connaître les numéros de port communs par cœur si vous souhaitez
réussir l'examen CCNA et travailler sur des réseaux en direct. La recherche de numéros de port
communs n'est pas une option lorsque des clients regardent ce que vous faites. Voici les
numéros de port les plus courants que vous rencontrerez et devrez connaître:
TABLE 9.1 – Numéros de port CCNA communs
Port Service Port Service
20 FTP Data 80 HTTP
21 FTP Control 110 POP3
22 SSH 119 NNTP
23 Telnet 123 NTP
25 SMTP 161/162 SNMP
53 DNS 443 HTTPS (HTTP with SSL)
69 TFTP

Règles de liste de contrôle d'accès


C'est l'une des parties les plus difficiles à comprendre. Je n’ai jamais vu une liste complète de
règles écrites dans un seul manuel Cisco. Certains se réfèrent à eux en général ou expliquent
certains d'entre eux, mais en oublient complètement d'autres. La difficulté est que les règles
s'appliquent toujours mais (jusqu'à présent) vous ne les avez trouvées que par essais et
erreurs. Voici les règles que vous devez connaître:
ACL Rule 1 - Utilisez une seule ACL par interface par direction.
Cela a du bon sens. Vous ne voudriez pas que plusieurs ACL effectuent des tâches différentes sur
la même interface. Configurez simplement une ACL qui fait tout ce dont vous avez besoin, plutôt
que de répartir les filtres sur deux ou plusieurs listes. J'aurais pu ajouter «par protocole» à la règle
ci-dessus car vous pourriez avoir une liste de contrôle d'accès IPX, mais IP est vraiment le seul
protocole utilisé dans les réseaux modernes.

Figure 9.1 – Une liste de contrôle d'accès par interface par direction
ACL Rule 2 - Les lignes sont traitées de haut en bas.
Certains ingénieurs deviennent confus lorsque leur ACL ne fonctionne pas comme prévu. Le
routeur regardera la ligne supérieure de l'ACL, et s'il voit une correspondance, il s'arrêtera là et
n'examinera pas les autres lignes. Pour cette raison, vous devez placer les entrées les plus
spécifiques en haut de l'ACL. Par exemple, prenez l'hôte de blocage d'ACL 172.16.1.1:
Permit 10.0.0.0 Pas de
correspondance
Permit 192.168.1.1 Pas de
correspondance
Permit 172.16.0.0 Match - Permis
Permit 172.16.1.0 Non traité
Deny 172.16.1.1 Non traité

Dans l'exemple ci-dessus, vous devriez avoir mis la ligne Deny 172.16.1.1 en haut, ou au moins
au-dessus de l'instruction Permit 172.16.0.0.
ACL Rule 3 - Il y a un “deny all” implicite au bas de chaque ACL
Cela surprend de nombreux ingénieurs. Il y a une commande invisible au bas de chaque ACL.
Cette commande est configurée pour refuser tout le trafic qui n'a pas encore été mis en
correspondance. La seule façon d'empêcher cette commande d'entrer en vigueur est de
configurer manuellement un «autoriser tout» en bas. Par exemple, prenez un paquet
entrant de l'adresse IP 172.20.1.1:
Permit 10.0.0.0 Pas de correspondance

Permit 192.168.1.1 Pas de correspondance

Permit 172.16.0.0 Pas de correspondance

Permit 172.16.1.0 Pas de correspondance

[Deny all] Correspondance –


DROP PACKET

Vous vouliez en fait que le paquet soit autorisé par le routeur, mais à la place, il le refuse. La raison
est le «deny all» implicite, qui est une mesure de sécurité.
ACL Rule 4 - Le routeur ne peut pas filtrer le trafic auto-généré.
Cela peut prêter à confusion lors des tests avant d'implémenter votre ACL sur un réseau en direct.
Un routeur ne filtre pas le trafic qu’il a lui-même généré. Ceci est démontré dans la figure 9.2 ci-
dessous:

Figure 9.2 – Test ACL avec trafic auto-généré


ACL Rule 5 - Vous ne pouvez pas modifier une ACL en direct.
En fait, jusqu'à IOS 12.4, vous ne pouviez éditer qu'une ACL nommée, pas des ACL standard ou
étendues. C'était une limitation de l'architecture ACL. Avant IOS 12.4, si vous vouliez éditer une
ACL standard ou étendue, vous deviez suivre ces étapes (j'ai utilisé la liste 99 comme exemple):
1. Arrêtez le trafic ACL sur l'interface avec la commande no ip access-group 99 in.

2. Copiez et collez l'ACL dans le Bloc-notes et modifiez-le à cet endroit.


3. Passez en mode ACL et collez la nouvelle ACL.
4. Appliquez à nouveau l'ACL à l'interface
Voici les étapes sur un routeur en direct:
ACL créé et appliqué à l'interface:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list 1 permit 172.16.1.1
Router(config)#access-list 1 permit 172.16.2.1
Router(config)#interface FastEthernet0/0
Router(config-if)#ip access-group 1 in

Retirez l'interface active:


Router(config)#int FastEthernet0/0
Router(config-if)#no ip access-group 1 in
Router(config-if)#^Z

Afficher les ACL. Copiez et collez dans le Bloc-notes et apportez les modifications:
Router#show run ← or show ip access lists
access-list 1 permit host 172.16.1.1
access-list 1 permit host 172.16.2.1

Vous devez en fait ajouter un point d'exclamation entre chaque ligne de configuration (si vous la
collez) pour dire au routeur de faire un retour chariot:
access-list 1 permit host 172.16.1.1
!
access-list 1 permit host 172.16.2.2

Les lignes collées dans la configuration du routeur sont indiquées ci-dessous. Supprimez l'ACL
précédente, puis collez-la dans la nouvelle version:
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no access-list 1
Router(config)#access-list 1 permit host 172.16.1.1
Router(config)#!
Router(config)#access-list 1 permit host 172.16.2.2
Router(config)#exit
Router#
%SYS-5-CONFIG_I: Configured from console by console
show ip access
Router#show ip access-lists
Standard IP access list 1
permit host 172.16.1.1
permit host 172.16.2.2
Router#
Router(config)#int FastEthernet0/0

Router(config-if)#ip access-group 1 in ← réappliquer à l'interface


Les commandes ci-dessus peuvent ne pas fonctionner si vous utilisez Packet Tracer. Essayez
également ces commandes sur un routeur car ce sont des sujets d'examen. N'oubliez pas que
vous devez désactiver l'ACL sur l'interface (pour qu'elle ne soit plus active) avant de la modifier
afin d'éviter tout comportement étrange ou imprévisible. Je vais vous montrer comment
modifier les ACL en direct sur IOS 12.4 et versions ultérieures sous peu...
ACL Rule 6 - Désactiver l'ACL sur l'interface.
De nombreux ingénieurs, lorsqu'ils veulent tester ou désactiver l'ACL pendant un certain
temps, la supprimeront complètement. Ce n’est pas nécessaire. Si vous souhaitez empêcher
l'ACL de fonctionner, supprimez-la simplement de l'interface active à laquelle elle est
appliquée:
Router(config)#int FastEthernet0/0
Router(config-if)#no ip access-group 1 in
Router(config-if)#^Z

ACL Rule 7 - Vous pouvez réutiliser la même ACL..


J'ai souvent vu cela sur les réseaux en direct. Vous aurez généralement la même politique ACL sur
tout votre réseau. Plutôt que de configurer plusieurs ACL, faites simplement référence à la même
ACL et appliquez-la à autant d'interfaces que vous le souhaitez. La figure 9.3 ci-dessous illustre ce
concept:
Figure 9.3 - Vous pouvez réutiliser une ACL
ACL Rule 8 - Soyez bref!
La règle de base avec les ACL est de les garder courtes et ciblées. De nombreux ingénieurs
novices de Cisco étendent leur liste de contrôle d'accès sur de nombreuses lignes alors que, avec
un peu de réflexion, elle pourrait être limitée à quelques lignes de configuration. J'ai mentionné
précédemment que vous voulez que vos lignes de configuration les plus spécifiques soient en
haut. Il s'agit d'une bonne pratique et permet d'économiser des cycles CPU sur le routeur.
De bonnes compétences en configuration ACL s’accompagne de connaissances et de pratique.
ACL Rule 9 – Put your ACL as close to the source as possible.
La documentation Cisco nous conseille de placer une ACL ÉTENDUE aussi près que possible de
la SOURCE et une ACL STANDARD aussi près que possible de la DESTINATION, car cela évitera
les frais généraux inutiles mais permettra toujours tout trafic «légitime».

Figure 9.4 - Mettez votre ACL près de la source

«Les conseils officiels de Cisco sont ÉTENDUS aussi près que possible de la SOURCE et STANDARD aussi près que possible
de la DESTINATION.»

Wildcard Masks – Masques inversés


Les masques inversés sont essentiels à apprendre car ils sont utilisés dans le cadre de la
configuration de ligne de commande dans les ACL et certains protocoles de routage. Ils existent
parce qu'il doit y avoir un moyen de dire au routeur quelles parties d'une adresse IP ou d'une
adresse réseau vous voulez faire correspondre.
La correspondance est effectuée au niveau binaire, mais vous pouvez facilement configurer des
masques génériques en utilisant la même notation que vous utilisez pour les masques de sous-
réseau. Un binaire 1 indique au routeur d'ignorer le chiffre et un 0 signifie qu'il correspond au
chiffre.
Le moyen le plus simple d'effectuer un masquage inversé pour l'examen CCNA est simplement
de vous assurer que vous ajoutez un numéro au masque de sous-réseau pour vous donner un
total de 255. Ainsi, si votre masque de sous-réseau dans un octet était de 192, vous lui ajouteriez
63 pour faire 255. Si c'était 255, vous ajouteriez 0. Jetez un œil aux exemples ci-dessous:
Subnet 255 255 255 192
Wildcard 0 0 0 63
Equals 255 255 255 255

Subnet 255 255 224 0


Wildcard 0 0 31 255
Equals 255 255 255 255

Subnet 255 128 0 0


Wildcard 0 127 255 255
Equals 255 255 255 255

Vous devez entrer un masque générique si vous souhaitez que votre ACL corresponde à un
sous-réseau ou à un réseau entier. Par exemple, si vous souhaitez faire correspondre
172.20.1.0 255.255.224.0, vous devez entrer ce qui suit:
Router(config)#access-list 1 permit 172.20.1.0 0.0.31.255

Le sous-réseau correspondant 192.200.1.0 255.255.255.192 nécessiterait les éléments suivants:


Router(config)#access-list 1 permit 192.200.1.0 0.0.0.63

Soyez prudent lorsque vous appliquez des instructions réseau avec OSPF, qui nécessite
également un masque générique.
Le même principe s'applique lorsque vous avez un réseau avec deux bits d'hôte, car vous devrez
entrer une ACL pour les faire correspondre. Par exemple, correspondant au sous-réseau
192.168.1.0 255.255.255.252 ou /30, vous devrez entrer ce qui suit:
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.3

J'ai laissé de côté une configuration, car je veux juste montrer la partie pertinente. Cela
correspondra aux hôtes 1 et 2 sur le réseau 192.168.1.0. Si vous souhaitez faire correspondre les
hôtes 5 et 6 sur le réseau 192.168.1.4/30, vous devez entrer ce qui suit:
Router(config)#access-list 1 permit 192.168.1.4 0.0.0.3

Lisez le sous-réseau et les notes VLSM pour mieux comprendre ce concept. C'est important!

Configuration des listes de contrôle d'accès - ACL


Comme pour toute compétence, la répétition fait la maîtrise. Comme je l'ai déjà dit, vous
devez taper sur un routeur chaque exemple que je donne, faire autant de laboratoires que
possible, puis créer vos propres exemples. Vous devez être rapide et précis, à la fois à
l'examen et dans le monde réel.
Les ACL standard et étendues présentées dans les sections suivantes sont des ACL
numérotées. Celles-ci représentent la manière classique de configurer les ACL. Les ACL
nommées sont l'autre façon de configurer les ACL et elles sont présentées dans une section
suivante.
ACL standard
Les ACL numérotées standard sont les plus faciles à configurer, c'est donc le meilleur
point de départ. Les ACL standard ne peuvent filtrer qu'en fonction d'un réseau source
ou d'une adresse IP.

Figure 9.5 - Paquet entrant avec source et destination


Dans la figure 9.5 ci-dessus, le paquet entrant a une adresse source et une adresse de
destination, mais votre ACL standard ne regardera que l'adresse source. Votre ACL autoriserait
ou refuserait cette adresse source (voir Figure 9.6):
Router(config)#access-list 1 permit host 172.16.1.1

Figure 9.6 - Réseau avec plusieurs hôtes / reseaux


Router(config)#access-list 1 permit host 172.16.1.1
Router(config)#access-list 1 permit host 192.168.1.1
Router(config)#access-list 1 permit 10.1.0.0 0.0.255.255

Cela serait appliqué au routeur côté serveur. N'oubliez pas qu'il y aura un «tout refuser»
implicite à la fin de cette liste, donc tout autre trafic sera bloqué.
ACL étendus
Beaucoup plus de granularité est intégrée dans les listes de contrôle d'accès numérotées étendues;
cependant, cela les rend plus difficiles à configurer. Vous pouvez filtrer les réseaux, les ports, les
protocoles et les services source ou de destination.
En règle générale, vous pouvez consulter la syntaxe de configuration des listes de contrôle d'accès
étendues, comme suit:
access list# permit/deny [service/protocol] [source network/IP] [destination network/IP]
[port#]

Par exemple:
access-list 101 deny tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq telnet
access-list 100 permit tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq ftp
access-list 100 permit icmp any any

Figure 9.7 - Exemple de blocage de l'accès au serveur


Une ACL que vous pourriez configurer pour le réseau ci-dessus, avec des serveurs de
messagerie, Web et de fichiers, serait la suivante (appliquée côté serveur):
access-list 100 permit tcp host 172.16.1.1 host 172.20.1.1 eq smtp
access-list 100 permit tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq ftp
access-list 100 permit tcp host 192.168.1.1 host 172.40.1.1 eq www

Ou, cela pourrait être la prochaine ACL, si vous aviez des exigences différentes:
access-list 101 deny icmp any 172.20.0.0 0.0.255.255
access-list 101 deny tcp 10.1.0.0 0.0.255.255 host 172.30.1.1 eq telnet

Ou, cela pourrait être comme suit:


access-list 102 permit tcp any host 172.30.1.1 eq ftp established

Le mot-clé [established] indique au routeur d'autoriser le trafic uniquement s'il a été généré
par des hôtes à l'intérieur. Les drapeaux de prise de contact à trois (bit ACK ou RST)
indiqueront ceci.
Named ACLs - ACL nommées
Contrairement aux ACL numérotées, les ACL nommées peuvent être facilement identifiées en
fonction de leur nom descriptif, ce qui est particulièrement utile dans les grandes configurations.
Ils ont été introduits pour ajouter de la flexibilité et faciliter la gestion des ACL. Les ACL
nommées peuvent être considérées comme une amélioration de la configuration, car elles ne
modifient pas la structure principale des ACL (elles modifient simplement la façon dont nous
nous référons à une ACL).
La syntaxe est similaire aux ACL numérotées, avec la différence majeure d'utiliser des noms au
lieu de nombres pour identifier les ACL. Tout comme dans le cas des ACL numérotées, vous
pouvez configurer des ACL nommées standard ou étendues.
Une autre différence lors de la configuration des ACL nommées est que vous devez toujours utiliser
la commande ip access- list , contrairement aux ACL numérotées, où vous pouvez également
utiliser la commande simple access-list.
Router(config)#access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1100-1199> Extended 48-bit MAC address access list
<1300-1999> IP standard access list (expanded range)
<200-299> Protocol type-code access list
<2000-2699> IP extended access list (expanded range)
<700-799> 48-bit MAC address access list
dynamic-extended Extend the dynamic ACL absolute timer
rate-limit Simple rate-limit specific access list
Router(config)#ip access-list ?
extended Extended access list
log-update Control access list log updates
logging Control access list logging
resequence Resequence access list
standard Standard access list
R1(config)#ip access-list standard ?
<1-99> Standard IP access-list number
<1300-1999> Standard IP access-list number (expanded range)
WORD Access-list name
R1(config)#ip access-list extended ?
<100-199> Extended IP access-list number
<2000-2699> Extended IP access-list number (expanded range)
WORD Access-list name

Les ACL nommées ont une syntaxe légèrement différente de celle des autres types d'ACL
(numérotées standard et numérotées étendues). Vous pouvez également modifier des ACL
nommées en direct, ce qui est une fonctionnalité utile. Vous devez simplement indiquer au
routeur que vous souhaitez configurer une ACL nommée et si vous souhaitez qu'elle soit
standard ou étendue. Vous pouvez également modifier les listes de contrôle d'accès numérotées
avec les versions ultérieures d'IOS, veuillez donc consulter la documentation de votre plate-
forme.
Lors de la création d'une ACL nommée à l'aide de la commande ip access-list, Cisco IOS vous
place dans le mode de configuration ACL où vous pouvez entrer ou supprimer des entrées ACL
(conditions d'accès refusées ou autorisées). La figure 9.8 ci-dessous montre un exemple d'ACL
nommé, suivi de la sortie correspondante
Figure 9.8 –ACL Nommée
Router(config)#ip access-list extended BlockWEB
Router(config-ext-nacl)#?
Ext Access List configuration commands:
<1-2147483647> Sequence Number
default Set a command to its defaults
deny Specify packets to reject
dynamic Specify a DYNAMIC list of PERMITs or DENYs
evaluate Evaluate an access list
exit Exit from access-list configuration mode
no Negate a command or set its defaults
permit Specify packets to forward
remark Access list entry comment
Router(config-ext-nacl)#deny tcp any any eq 80
Router(config-ext-nacl)#permit ip any any

La vérification de l'ACL nommée peut être effectuée à l'aide des commandes suivantes:
 show ip access-lists: affiche toutes les ACL créées sur l'appareil.
 show ip access-lists <acl_name>: montre une ACL nommée particulière
Router(config)#do show ip access-lists
Standard IP access list test
30 permit 10.1.1.1
20 permit 192.168.1.1
15 permit 172.20.1.1
10 permit 172.16.1.1

Pour savoir comment ajouter ou supprimer des entrées ACL dans une ACL nommée,
reportez-vous à la section «Numéros de séquence ACL» ci-dessous.
Application des ACL
Pour entrer en vigueur, vous devez appliquer votre ACL à une interface ou à un port de routeur.
Je dis cela parce que j'ai vu de nombreux ingénieurs novices de Cisco taper l'ACL et se demander
ensuite pourquoi cela ne fonctionne pas! Ou ils le configurent mais appliquent le mauvais
numéro ou nom ACL à l'interface.
Si vous appliquez une ACL à une ligne, vous devez la spécifier avec la commande access-class et à
une interface, c'est la commande ip access-group.
Voici trois exemples d'ACL appliquées à un port ou une interface.
Interface:
Router(config)#int FastEthernet0/0
Router(config-if)#ip access-group 101 in

Ligne Virtuelle:
Router(config)#line vty 0 15
Router(config-line)#access-class 101 in

Interface:
Router(config)#int FastEthernet0/0
Router(config-if)#ip access-group BlockWEB in

Numéros de séquence ACL


À partir de la version 12.4, vous pouvez voir que Cisco IOS ajoute des numéros de séquence à
chaque entrée d'ACL. Alors maintenant, je peux créer une liste de contrôle d'accès, puis en
supprimer une ligne.
Router(config)#ip access-list standard test
Router(config-std-nacl)#permit 172.16.1.1
Router(config-std-nacl)#permit 192.168.1.1
Router(config-std-nacl)#permit 10.1.1.1
Router(config-std-nacl)#
Router(config-std-nacl)#exit
Router(config)#exit
Router#
*Jun 6 07:38:14.155: %SYS-5-CONFIG_I: Configured from console by console access
Router#show ip access-lists
Standard IP access list test
30 permit 10.1.1.1
20 permit 192.168.1.1
10 permit 172.16.1.1

Notez que les numéros de séquence ne sont pas affichés dans la configuration en cours
d'exécution du routeur. Pour les voir, vous devez lancer une commande show [ip] access-
list.

Ajouter une ligne ACL


Pour ajouter une nouvelle ligne ACL, vous pouvez simplement entrer le nouveau numéro de
séquence puis l'instruction ACL. L'exemple ci-dessous montre comment vous pouvez ajouter la
ligne 15 à votre ACL existante:
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip access
Router(config)#ip access-list standard test
Router(config-std-nacl)#15 permit 172.20.1.1
Router(config-std-nacl)#
Router(config-std-nacl)#do show ip access
Router(config-std-nacl)#do show ip access-lists
Standard IP access list test
30 permit 10.1.1.1
20 permit 192.168.1.1
15 permit 172.20.1.1
10 permit 172.16.1.1
Router(config-std-nacl)#

Supprimer une ligne ACL


Pour supprimer une ligne ACL, vous pouvez simplement entrer la commande no <seq_number>,
comme dans l'exemple ci-dessous où la ligne 20 est supprimée:
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip access
Router(config)#ip access-list standard test
Router(config-std-nacl)#no 20
Router(config-std-nacl)#
Router(config-std-nacl)#do show ip access
Router(config-std-nacl)#do show ip access-lists
Standard IP access list test

30 permit 10.1.1.1
15 permit 172.20.1.1
10 permit 172.16.1.1
$***********************
***********

$$$$$$$$$$$$Router(config-std-nacl)#
Remettre en séquence une ACL
Pour reséquencer une ACL, vous pouvez utiliser la commande ip access-list resequence
<acl_name> <starting_seq_number> <step_to_increment>. Le comportement de cette commande
peut être examiné dans l'exemple ci-dessous:
Router(config)#ip access-list resequence test 100 20
Router(config)#do show ip access-lists
Standard IP access list test
100 permit 10.1.1.1
120 permit 172.20.1.1
140 permit 172.16.1.1
Router(config-std-nacl)#

La commande resequence a créé de nouveaux numéros de séquence, à partir de 100, et les a


incrémentés de 20 pour chaque nouvelle ligne ACL..

Journalisation ACL
Par défaut, les entrées ACL qui correspondent aux paquets traversant une interface de routeur
créent des compteurs incrémentiels qui peuvent être analysés à l'aide de la commande show ip
access-lists, comme on peut le voir dans l'exemple ci-dessous:
Router#show ip access-lists
Extended IP access list test
10 deny tcp any any eq 80 (10 matches)
20 permit ip any any (56 matches)

Si vous avez besoin d'informations plus détaillées sur le trafic correspondant aux entrées
ACL, vous pouvez configurer les parametres log ou log-input sur les entrées ACL
appropriées.
Router(config)#ip access-list extended test
Router(config)#no 10
Router(config)#10 deny tcp any any eq 80 log
Router#show ip access-lists
Extended IP access list test
10 deny tcp any any eq 80 log
20 permit ip any any (83 matches)

Dans l'exemple de configuration ci-dessus, la journalisation ACL pour l'entrée de test ACL 10 est
configurée. Lorsqu'un paquet atteint cette entrée ACL, les compteurs ACL continueront
d'augmenter mais le routeur générera également un message de journal contenant des détails
sur le hit ACL spécifique.:
%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(24667) -> 10.10.10.1(80), 1 packet

Si vous avez besoin de plus de détails sur la transaction, vous pouvez remplacer le paramètre de
log par le paramètre log-input, comme vous pouvez le voir dans l'exemple ci-dessous:
Router(config)#ip access-list extended test
Router(config)#no 10
Router(config)#10 deny tcp any any eq 80 log-input
Router#show ip access-lists
Extended IP access list test
10 deny tcp any any eq 80 log-input
20 permit ip any any (125 matches)

Lorsque l'entrée ACL spécifique est atteinte, un message de journal plus détaillé est généré par
le routeur, qui comprend l'interface entrante et l'adresse MAC source:
%SEC-6-IPACCESSLOGP: list test denied tcp 10.10.10.2(14013) (FastEthernet0/0
00aa.aabb.ccdd) -> 10.10.10.1(80), 1 packet

Utilisation des ACL pour limiter l'accès Telnet et SSH


Outre le filtrage du trafic au niveau de l'interface, les ACL peuvent être associées à de
nombreuses autres fonctionnalités de l'appareil, y compris le filtrage du trafic sur les lignes VTY.
Dans un module précédent, vous avez appris comment configurer l'accès Telnet ou SSH à un
périphérique (par exemple, un routeur ou un commutateur) à l'aide de la commande line vty.
Parfois, vous pouvez ne pas vouloir accepter toutes les connexions Telnet / SSH vers ou depuis
l'appareil. Afin de manipuler cela, vous devez définir une ACL qui définit le type de trafic qui sera
autorisé ou refusé sur la ligne VTY. L'ACL peut être numérotée ou nommée. Vous associez l'ACL à
la ligne VTY à l'aide de la commande access-class <acl> [in|out].
L'exemple suivant définit une ACL autorisant le trafic Telnet de l'hôte 10.10.10.1, qui sera ensuite
appliqué en entrée aux lignes VTY:
Router(config)#ip access-list extended VTY_ACCESS
Router(config-ext-nacl)#permit tcp host 10.10.10.1 any eq telnet
Router(config-ext-nacl)#deny tcp any any
Router(config-ext-nacl)#exit
Router(config)#
Router(config)#line vty 0 4
Router(config-line)# access-class VTY_ACCESS in
Router(config-line)#

Vous pouvez vérifier la configuration à l'aide des commandes suivantes:


Router#show run | sect line vty
line vty 0 4
access-class VTY_ACCESS in
.....

Dépannage et vérification des ACL


Je pense qu'avec une compréhension des commandes et des règles de configuration, vous
devriez être d'accord avec les listes de contrôle d'accès. Si votre ACL ne fonctionne pas, vérifiez
d'abord qu'il existe une connectivité IP de base en envoyant un ping. Vérifiez ensuite si vous avez
appliqué votre ACL, qu'il n'y a pas de fautes de frappe et si vous devez autoriser le passage du
trafic IP (rappelez-vous le «deny all» implicite). Certaines des étapes de vérification les plus
importantes du processus de dépannage d'ACL incluent:
◻ Vérification des statistiques ACL
◻ Vérification des réseaux autorisés
◻ Vérification de l'interface et de la direction de l'ACL
Vérification des statistiques ACL
Une fois que vous avez configuré avec succès une ACL et l'avez appliquée à une interface, il est
très important d'avoir une méthode par laquelle vous pouvez vérifier le comportement correct de
l'ACL, en particulier combien de fois une entrée ACL a été utilisée (hit). En fonction du nombre
d'appels, vous pouvez ajuster votre politique de filtrage ou vous pouvez améliorer vos ACL pour
améliorer la sécurité globale. En fonction de vos besoins, vous pouvez vérifier les statistiques ACL
au niveau global ou par interface (à partir de IOS 12.4).
Statistiques globales d'ACL
Les statistiques globales d'ACL peuvent être vérifiées en utilisant la commande show ip access-
list ou show access-list qui peuvent faire référence à une ACL numérotée ou nommée
Router#show ip access-lists
Extended IP access list test
10 deny tcp any any eq 80 (10 matches)
20 permit ip any any (56 matches)

Cette méthode peut ne pas fournir d'informations très spécifiques dans les situations dans
lesquelles vous appliquez la même ACL sur différentes interfaces, car elle offre des statistiques
globales.
Statistiques ACL par interface
Dans les situations où vous souhaitez examiner les hits ACL par interface, qu'ils soient entrants
ou sortants, vous pouvez utiliser la commande show ip access-list interface
<interface_number> [in|out], comme illustré ci-dessous:
Router#show ip access-list interface FastEthernet0/1 in
Extended IP access list 100 in
10 permit ip host 10.10.10.1 any (5 matches)
30 permit ip host 10.10.10.2 any (31 matches)
Si aucune direction n'est spécifiée, toute ACL d'entrée ou de sortie appliquée à l'interface
spécifique est affichée. Cette fonctionnalité est également appelée «Gestion ACL - ACL
Manageability » et est disponible à partir de IOS 12.4
Vérification des réseaux autorisés
Parfois, en particulier dans les grands environnements où vous devez configurer de nombreuses
ACL, vous pouvez faire des fautes de frappe lors de la configuration des entrées ACL, ce qui peut
entraîner le blocage de flux de trafic erronés sur différentes interfaces. Afin de vérifier les
entrées ACL correctes (instructions d'autorisation et de refus), vous pouvez utiliser soit le show
run | section access-list ou la commande show ip access-list, comme décrit dans les
sections précédentes
Vérification de l'interface et de la direction de l'ACL
Une erreur courante lors de l'application d'une ACL à une interface est de l'appliquer dans le
mauvais sens, c'est-à-dire entrant au lieu de sortant et sortant au lieu de entrant. Cela peut
entraîner de nombreux problèmes, à la fois du point de vue des fonctionnalités et de la sécurité.
L'une des premières étapes à suivre dans un processus de dépannage d'ACL consiste à vérifier que
l'ACL est appliquée à l'interface correcte et dans la bonne direction.
Plusieurs commandes existent pour vérifier cela, y compris les commandes show run et la
commande show ip access-list interface <interface> [in|out].
Jour 9 Questions

1. Vous pouvez avoir une ACL nommée, étendue et standard sur une interface entrante. Vrai
ou faux?

2. Vous voulez tester pourquoi votre ping est bloqué sur votre interface série. Vous envoyez un
ping depuis le routeur, mais cela est autorisé. Qu'est ce qui ne s'est pas bien passé? (Indice:
voir la règle 4 de l'ACL.)

3. Écrivez un masque générique correspondant au masque de sous-réseau 255.255.224.0.

4. Que saisissez-vous pour appliquer une liste de contrôle d'accès IP aux lignes Telnet d'un
routeur?

5. Comment pouvez-vous vérifier les statistiques ACL par interface (nommez la commande)?

6. Comment appliquez-vous une ACL à une interface?


Réponses au jour 9
1. Faux. Vous ne pouvez configurer qu'une seule ACL sur une interface par direction.
2. Un routeur ne filtre pas le trafic qu'il a lui-même généré.
3. 0.0.31.255.
4. access-class.

5. Emettre la commande show ip access-list interface

6. Emettre la commande ip access-group <ACL_name> [in|out].


Jour 9 Lab
ACL standard
Topologie

But
Apprenez à configurer une ACL standard.
Procédure pas à pas
1. Configurez le réseau ci-dessus. Ajoutez une route statique sur chaque routeur afin que
tout trafic pour n'importe quel réseau quitte l'interface série. Vous faites cela car, bien
que n'étant pas un laboratoire de routage, vous avez toujours besoin du trafic pour
acheminer. Ajoutez .1 à l'interface série du routeur A et .2 à l'interface série du routeur B.
RouterA(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0

2. Configurez une ACL standard sur le routeur A autorisant le réseau 192.168.1.0/10. Par
défaut, tous les autres réseaux seront bloqués.
RouterA(config)#access-list 1 permit 192.168.1.0 0.0.0.63
RouterA(config)#int Serial0/1/0
RouterA(config-if)#ip access-group 1 in
RouterA(config-if)#exit
RouterA(config)#exit
RouterA#

3. Testez l'ACL en envoyant un ping à partir du routeur B, qui par défaut utilisera l'adresse
10.0.0.1.
RouterB#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)

4. Testez un autre ping, mais sourcez-le à partir de 192.168.1.1 et cela devrait fonctionner.
RouterB#ping
Protocol [ip]:
Target IP address: 10.0.0.1
Repeat count [5]:

Datagram size [100]:


Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 192.168.1.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/31/32 ms

Laboratoire ACL étendu


Topologie

But
Apprenez à configurer une ACL étendue.
Procédure pas à pas
1. Configurez le réseau ci-dessus. Ajoutez une route statique sur le routeur B afin que tout
trafic pour n'importe quel réseau quitte l'interface série. Vous faites cela car, bien que
n'étant pas un laboratoire de routage, vous avez toujours besoin du trafic pour
acheminer.
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0

2. Ajoutez une ACL étendue au routeur A. Autorisez le trafic Telnet vers votre interface de
bouclage uniquement. N'oubliez pas d'autoriser Telnet également.
RouterA(config)#access-list 100 permit tcp any host 172.20.1.1 eq 23
RouterA(config)#int s0/1/0
RouterA(config-if)#ip access-group 100 in
RouterA(config-if)#line vty 0 15
RouterA(config-line)#password cisco

RouterA(config-line)#login
RouterA(config-line)#^Z
RouterA#

La ligne ACL ci-dessus est le numéro 100, ce qui indique au routeur qu'elle est étendue. Ce que
vous souhaitez autoriser utilise TCP. Il autorise TCP à partir de n'importe quel réseau destiné à
l'hôte 172.20.1.1 sur le port Telnet, qui est 23. Lorsque vous émettez une commande show run le
routeur remplace en fait le numéro de port par le nom, comme illustré ci-dessous:
access-list 100 permit tcp any host 172.20.1.1 eq telnet

3. Testez maintenant un Telnet à partir du routeur B. Tout d'abord, Telnet vers l'interface
série sur le routeur A, qui doit être bloquée. Ensuite, testez l'interface Loopback.
RouterB#telnet 10.0.0.1
Trying 10.0.0.1 ...
% Connection timed out; remote host not responding
RouterB#telnet 172.20.1.1
Trying 172.20.1.1 ...Open
User Access Verification

Password: ← le mot de passe ne s'affiche pas lorsque vous le saisissez


RouterA> ← Appuyez simultanément sur Ctrl + Maj + 6, puis relâchez et appuyez sur la touche X
pour quitter.
NOTE: Nous couvrirons les ACL dans d'autres laboratoires, mais vous devez vraiment les connaître. Pour cette raison, essayez
d'autres ports TCP, tels que 80, 25, etc. De plus, essayez les ports UDP, tels que 53. Vous ne pourrez pas les tester facilement
sans un PC connecté au routeur B.

Pour aller plus loin, mélangez les adresses IP, autorisant Telnet (dans cet exemple) à l'interface
série mais pas à l'interface Loopback. Mettez ensuite une ACL sur le routeur B à la place. Je ne
saurais trop insister sur l’importance de ce point. Si vous avez besoin d'effacer l'ACL, vous
pouvez simplement taper ce qui suit:
RouterA(config)#no access-list 100

ACL Nomée Lab


Topologie
But
Apprenez à configurer une ACL nommée.

Procédure pas à pas


1. Configurez le réseau ci-dessus. Ajoutez une route statique sur chaque routeur afin que
tout trafic pour n'importe quel réseau quitte l'interface série. Vous faites cela car, bien
que n'étant pas un laboratoire de routage, vous avez toujours besoin du trafic pour
acheminer.
RouterA(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0
RouterB(config)#ip route 0.0.0.0 0.0.0.0 s0/1/0

2. Ajoutez une ACL nommée étendue sur le routeur B. Autorisez les pings de l'hôte
172.20.1.1 mais pas d'autres hôtes ou réseaux.
RouterB(config)#ip access-list extended blockping
RouterB(config-ext-nacl)#permit icmp host 172.20.1.1 any RouterB(config-ext-nacl)#exit
RouterB(config)#int s0/1/0
RouterB(config-if)#ip access-group blockping in
RouterB(config-if)#

3. Maintenant, testez l'ACL avec les pings de l'interface série sur le routeur A et
l'interface de bouclage (qui devrait fonctionner).
RouterA#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
RouterA#ping
Protocol [ip]:
Target IP address: 192.168.1.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 172.20.1.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
Packet sent with a source address of 172.20.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 31/34/47 ms

Pour autoriser RIP, spécifiez les éléments suivants:


access-list 101 permit udp any any eq rip

Pour autoriser OSPF, spécifiez les éléments suivants:


access-list 101 permit ospf any any

Pour autoriser EIGRP, spécifiez les éléments suivants:


access-list 101 permit eigrp any any

Vous aimerez peut-être aussi