Les
listes de contrôle d’accès sont un mécanisme de sécurité fondamental qui est utilisé pour se prémunir contre les cyber-attaques
dans les réseaux modernes. Cet article examine les différents types de listes de contrôle d'accès que
vous pouvez utiliser immédiatement afin d'aider à «durcir» votre réseau.
Dans les réseaux
d’aujourd'hui l'un des problèmes les
plus importants que nous devons faire
face est la sécurité. Plus
précisément, nous avons besoin pour
s'assurer que nos équipements sont "durcis"
contre la menace d'une cyber-attaque. Les cyber-attaques peuvent prendre plusieurs formes, mais la majorité
des méthodes utilisées
pour réduire notre exposition à ces menaces s'appuient sur un
outil de réseau très basique. Nous
parlons des listes de contrôle d'accès (ACL). Qu'elles sont
appliquées directement sur une interface d’un routeur
ou d’un switch, ou utilisés dans le cadre d'une configuration de pare-feu, elles sont rapidement devenues
l'une de nos premières lignes de
défense contre les menaces externes
et même internes. En tant que ingénieur
en Sécurité réseau, nous avons besoin de comprendre que la sécurité de nos
réseaux dépend fortement des listes de contrôle d’accès
bien écrites, organisées, et concises pour restreindre l'accès
aux services réseau.
Nous allons jeter un regard critique
sur les différents types d'ACL,
et plus précisément la façon dont ils peuvent
être identifiées et appliquées.
Dans l’IOS, les ACL
sont divisés en deux types: IP access-lists Standards et Etendues. Ici, nous
allons couvrir les bases mêmes associés à chacun de ces types qui se rapportent
à IPv4 et au protocole TCP.
- ·
ACL Standard sont utilisées pour filtrer les paquets IP en fonction de la seule adresse
source.
- ·
ACL
Etendues sont utilisées pour filtrer les paquets en fonction de plusieurs
critères, y compris mais pas exhaustif
ce qui suit:
o
Adresse
IP source
o
Adresse
IP de destination
o
Ports
source TCP / UDP
o
Ports
de destination TCP / UDP
Sous peu nous allons regarder de plus près chaque
type d’ACL, mais ce que nous devons comprendre maintenant, c'est que les ACLs étendues comme leur nom l’indique nous offrent
beaucoup plus de souplesse que les ACLs
standard. Nous verrons, cependant, que l’IOS utilise le meilleur d’entre les deux pour le travail et les
différences entre ces types d'ACL seront dans la façon dont elles sont utilisées et appliquées.
Comment pouvons-nous identifier les différents types de
listes de contrôle d'accès?
Soit un numéro ou un nom permet
d'identifier une ACL et les protocoles qu'elle filtre. Nous allons discuter du
nom des listes d'accès plus tard. En ce qui concerne l’ACL numérotée, le numéro
de l'ACL détermine quel protocole est filtré. Nous avons déjà mentionné que
nous nous concentrons uniquement sur les ACL utilisées avec les protocoles TCP/IP,
ce qui signifie que nous allons examiner la plage de numéros utilisés par ces
protocoles. Il est important d'observer cependant que ces ACL permet de filtrer
des protocoles autres que ceux TCP/IP.
Lorsque nous créons une ACL numérotée
nous lui attribuons une valeur numérique qui a un double objectif. D'abord, elle spécifie le
protocole qui fera l’objet de filtrage et ensuite elle identifie localement l'ACL de façon unique. Nous pouvons
avoir jusqu'à 99 listes d'accès standard allant de 1 à 99; la plage de numéros
des ACL étendues est de 100 à 199.
Après une courte période de temps, il a été décidé que de nombreux
environnements nécessitaient des plages plus étendues aussi bien pour les ACL
standard que étendues LCA étendues, de sorte que Cisco élargisse la plage pour chaque type. Maintenant, nous pouvons utiliser
des numéros allant de 1300 à 1999 pour les autres ACL standard et 2000 à 2699
pour ajouter des ACL étendues.
Maintenant que nous
savons comment identifier les ACL, nous avons besoin de voir un peu plus près à chaque type:
A quoi ressemblent
les ACL standard sur un routeur?
Une liste de
contrôle d'accès standard ne vous permet d'autoriser ou de refuser le trafic
provenant d'adresses IP spécifiques. La destination du paquet et les ports impliqués
n'ont pas d'importance.
Voici un
exemple:
access-list
10 permit 192.168.1.0 0.0.0.255
Cette liste autorise
tout trafic provenant des adresses dans
la plage 192.168.1.0 à 192.168.1.255
Vous pouvez
voir comment la dernière entrée ressemble à un masque de sous réseau, mais les
ACL Cisco utilisent un masque générique. Une autre règle très importante à
propos des listes de contrôle d'accès, c'est qu'il y’a toujours un «DENY implicite »
à la fin de chaque ACL. Ce que cela signifie, c'est que chaque ACL standard a une
instruction invisible à la fin de celle-ci. Dans notre exemple, ce serait
access-list
99 deny any
Donc, si votre trafic n’est pas expressément
autorisé par une déclaration dans l’ACL Standard, alors il est REJETE. Si vous
tapez manuellement la déclaration « deny any » elle apparaîtra, mais
rappelez-vous, même si vous ne l'inscrivez pas, elle est toujours là.
A quoi ressemblent
les ACL étendues sur le routeur?
Les ACL étendues nous permettent d'autoriser ou
refuser le trafic d'une adresse IP source et d’un port spécifiques à une adresse IP de destination et un port
spécifiques. Elles peuvent également être
utilisées pour spécifier
différents types de trafic tels que ICMP,
TCP, UDP, etc.
Cela rend les ACL étendues très
granulaire et nous permet d'être
très précis sur ce que nous voulons
filtrer. A titre d'exemple:
access-list
103 permit tcp any 192.168.0.0 0.0.255.255 eq 80
access-list 103 permit tcp any host
192.168.1.3 eq 23
Dans cet exemple, l’ACL étendue 103 autorise le trafic de n'importe quelle source
et destiné vers n'importe quelle adresse allant de
192.168.0.0 à 192.168.255.255 qui correspond au port 80.
Le deuxième
numéro de séquence autorise tout le
trafic telnet destiné à
192.168.1.3. Qu’en est-il si un trafic telnet (port 23) est destiné à l'adresse IP 192.168.1.1?
Rappelez-vous du deny implicite. Ce trafic serait bloqué
par l'ACL. Cela nous amène à
une chose supplémentaire que nous devrions examiner ce qui concerne
comment les ACL fonctionnent.
Processus Top Down
Les lignes d'une
ACL sont traitées dans une séquence de haut en bas dans l'ordre où ils sont configurés. Quand un paquet en cours de traitement par le biais d’une ACL correspond
à une déclaration faite dans la
liste, tout le traitement pour ce
paquet est arrêté. A titre
d'exemple:
access-list 1 deny
10.10.10.10
access-list 1 deny
11.11.11.11
access-list
1 permit 10.10.10.10
Dans le cas où cette ACL est
utilisé pour filtrer le trafic entrant
sur une interface et un paquet IP
arrive avec une adresse source de
10.10.10.10, le trafic sera-t-il autorisé ou
refusé? Afin de donner la réponse nous avons besoin de regarder l’ACL elle-même. C’est parce que les listes de contrôle d'accès
seront traitées à partir du haut vers le bas que le trafic sera refusée. Cela se produit même si il est permis plus
tard en bas de la liste. L’important chose que nous de garder à
l'esprit est que l'ordre du
permit et du deny est essentielle.
Les trois règles d'ACL et filtrage du trafic
La règle d'or quand il s'agit d’ACL est que vous
pouvez avoir qu'une seule ACL par protocole, par direction,
par interface. Cela signifie que vous pouvez utiliser une
liste d'accès pour chaque protocole
(IP, TCP, Telnet,
etc.) Vous ne pouvez avoir une seul ACL pour
chaque direction IN ou OUT. Vous
pouvez appliquer une ACL sur
chaque interface de type FastEthernet
ou de Serial. En
termes simples, vous n'êtes pas autorisé
à avoir deux ACL sur la même Interface. Dans les situations où cela peut être une exigence,
il sera nécessaire de les combiner
en une seule ACL. Encore une fois, gardez à l'esprit que l'ordre utilisé pour construire
ce combiné ACL est essentiel.
Où allons-nous appliquer les ACL?
Comme l’ACL standard filtre en fonction de l'adresse IP source
d'un paquet, il est plus efficace de l’appliquer le plus près possible de
la destination du paquet. Si vous
ne l'appliquez pas à proximité de
la destination et choisissez de l'appliquer près de la source, l'ACL peut accidentellement filtrer un trafic qui nous ne voulons pas filtrer.
En règle générale, les ACL étendues
peuvent être placés n'importe où, car elles filtrent à la fois en
fonction la source et la destination du
paquet. Cependant, il est recommandé de les
appliquer le plus près possible de la source. L'application de ces ACL près de la source
permettra d'économiser des ressources
telles que les cycles de CPU
et la bande passante. Si un paquet
doit être refusée, alors il n'y a pas de sens de le laisser être transmis à la
destination en gaspillant des ressources,
elle doit être refusée à proximité de la
source afin d'éviter le gaspillage de
bande passante.
Comment les
ACL sont-elles appliquées ?
Les ACL doivent être appliqués sur une interface d’un
routeur pour qu’elles aient un effet. Il est important de noter que les ACL
sont appliqués sur une interface en fonction de la direction du flux de données
qu’on souhaiterait filtrer :
- Inbound (in) signifie
que l’ACL filtre les paquets entrant par l’interface du routeur
- Outbound (out) signifie que
l’ACL est appliquée aux paquets qui quittent l’interface du routeur
Avant d’appliquer l’ACL sur une interface, il est
nécessaire de savoir dans quelle direction elle va filtrer. Une fois la
direction connue, on utilise la commande « ip
access-group » en mode de
configuration interface. Sur le routeur cela ressemblera à quelque chose du
genre :
R1(config)#
interface Fa0/0
R1(config-if)# ip access-group 2 in
R1(config)# interface Fa0/1
R1(config-if)# ip access-group 3 out
R1(config-if)# exit
Dans cet exemple, nous voyons que nous avons appliqué
ACL 2 et ACL 3 sur deux interfaces différentes.
Une
pratique très
courante de la sécurité dans le
monde réel est de créer une ACL
qui filtre tout ce qui provient de nos réseaux internes,
et ensuite appliquer cette ACL entrant sur toutes les interfaces externes qui font face à nos réseaux
internes. Ce processus permettra
d'éviter un cyber attaquant d'utiliser
la célèbre attaque "usurpation d'adresse IP" contre le réseau. Dans une attaque par usurpation d’adresse
IP, l'accès non autorisé à des hôtes du réseau et
des services est acquis par
un intrus qui envoie messages à un hôte interne avec une adresse IP faisant semblant d'être
un message à partir d'un hôte interne de confiance. L’application d'une ACL qui
refuse tout le trafic provenant
de tout sous-réseau que nous utilisons sur notre réseau pourra immédiatement prévenir ce type d'attaque.
Conclusion
Comprendre l'utilisation correcte des ACL
de Cisco IOS est une exigence
essentielle pour n'importe quel ingénieur réseau en herbe. Dans
ce blog, nous avons examiné les éléments essentiels de
la liste de contrôle d'accès que chacun
devrait connaître y compris la
façon de créer et de les
appliquer. Nous avons analysé comment des listes d'accès peut être utilisé pour
filtrer le trafic qui circule à travers le réseau, mais il ya tellement d'options et d’utilisations
que nous n’avons pu explorer ici. Pour en savoir plus,
rendez-vous à votre routeur et le type
access-list?, Ou consultez la
documentation Cisco sur des
listes d'accès