Vous êtes sur la page 1sur 41

M21

Liste d'accs

Pr requis pour les ACLs


z

Les listes de contrle d'accs suppose une connaissance


complte

Connaissance de la politique de scurit de l'entreprise

des protocoles de la pile TCP/IP (tcp, udp, ip, icmp)


des applications courantes (ftp, telnet, ssh, smtp, )

besoin en communication entre les diffrentes entits


organisationnelle,

Deux conceptions pour la mise en place de la scurit:

j'autorise tout sauf ce qui est explicitement interdit


;
:

trs rapide mettre en uvre


risques non ngligeable d'intrusion (interdiction aprs incident)

j'interdis tout et j'autorise au cas par cas


:
;

hussenet l.

dlicat mettre en place


matrise complte des flux circulant sur le rseau

Gnralit
z

Une Liste d'Accs est une squence d'actions d'autorisation


(permit) ou d'interdiction (deny) sur des adresses ou des
protocoles de couches suprieures.

Elle s'applique une interface oriente du routeur

Un routeur possde une interface


Une interface est utilise en entre ou en sortie
Une ACL est utilise sur une interface en entre ou en sortie

FE0/0

hussenet l.

S0/0

out

in

in

out

Le filtrage en dtail
z

Un paquet IP arrive sur une interface


Pas d'ACL, le paquet transit vers la zone de
commutation
Interface FE0/0, tampon d'entre
data

port src

port dst

ip src

ip dst

Zone ACL

Zone de commutation

9 8
hussenet l.

Le filtrage en dtail
z

Un paquet IP arrive sur une interface


Prsence d'une ACL, le paquet vrifie une condition

Il est accept (permit) ou refus (deny)


Interface FE0/0, tampon d'entre
data

port src
Zone ACL

port dst

ip src

condition 1 (permit)
condition 2 (deny)
condition 3 (permit)

ip dst

9 8
hussenet l.

Zone de commutation

Le filtrage en dtail
z

Un paquet IP arrive sur une interface


Prsence d'une ACL, le paquet vrifie une condition

Il est accept (permit) ou refus (deny)


Interface FE0/0, tampon d'entre
data

port src
Zone ACL

port dst

ip src

condition 1 (permit)
condition 2 (deny)
condition 3 (permit)

ip dst

8
9

9 8
hussenet l.

Zone de commutation

Le filtrage en dtail
z

Un paquet IP arrive sur une interface


Prsence d'une ACL, le paquet ne vrifie aucune
condition, il est refus
Interface FE0/0, tampon d'entre
data

port src
Zone ACL

port dst

ip src

condition 1 (permit)
condition 2 (deny)
condition 3 (permit)

ip dst

8
8
8

9 8
hussenet l.

Zone de commutation

Le filtrage en dtail
z

Un paquet arrive en zone de commutation


Exploration de la table de routage

data

port src

port dst

ip src

ip dst

Destination Next Hop


@ net 1
@ gw 1
@ net 2
@ gw 2
@ net 3
@ gw 3
@ net 4
@ gw 4
@ net 5
@ gw 5
@ net 6
@ gw 6

hussenet l.

Interf
FE0/1
FE0/1
FE0/2
FE0/2
S0/0
S0/1

Le filtrage en dtail
z

Un paquet IP ressort par une interface


Processus identique

Interface FE0/2, tampon de sortie


data

port src

port dst

ip src

ip dst

Zone ACL

Zone de commutation

9 8
hussenet l.

ACL: inpact sur l'ordre


z

Note sur les ACL

L'ordre des ACL est trs important:


la premire rgle qui correspond au paquet permet soit de
le refuser, soit de l'accepter, mme si la rgle suivant
indique le contraire

Une ACL doit se terminer par une instruction du style:


"dans tous les autres cas, faire"
Si rien n'est prcis, la rgle par dfaut est utilise:
deny

hussenet l.

Types
z

Il existe diffrents types de Liste d'Accs, caractrise par leur


identifiant:
- Standard (Standard)
id 1 99
- Etendue (Extended)
id 100 199

hussenet l.

Instruction d'ACL
z

Une ACL est compose d'instructions qui utilisent


une syntaxe de groupe d'adresses:
le masque gnrique

Le masque gnrique
Deux mots de 32 bits:

le premier mot correspond au motif respecter


le deuxime mot indique quels bits doivent tre vrifis
z
z

hussenet l.

0: vrifier la valeur du bit correspondant


1: ignorer la valeur du bit correspondant

Le masque gnrique
z

Exemple:

192.168.128.0

0.0.127.255

192.168.128.0
0.0.127.255

1100 0000 . 1010 1000 . 1000 0000 . 0000 0000


0000 0000 . 0000 0000 . 0111 1111 . 1111 1111

192.168.130.4
192.168.20.2

1100 0000 . 1010 1000 . 1000 0010 . 0000 0100 vrai


1100 0000 . 1010 1000 . 0001 0100 . 0000 0010 faux

hussenet l.

Le masque gnrique
z

Exemple:
Je veux dsigner l'ensemble de la classe de
l'adresse rseau 172.16.1.0/24
Une adresse IP vrifie l'appartenance cet
ensemble ssi les 3 premiers octets correspondent
la classe rseau (peu importe la valeur du dernier
octet)
Le masque gnrique est donc:
172.16.1.0 0.0.0.255

hussenet l.

Le masque gnrique
z

Exemple:
Je veux dsigner l'ensemble de la classe de
l'adresse rseau 172.16.128.0/18
17210.1610.100000002.010
Bits devant tre vrifi

Le masque gnrique est donc:


172.16.128.0 0.0.63.255
hussenet l.

Le masque gnrique
z

Attention:
Le masque gnrique n'est pas le complment du
masque !

un masque rseau
z
z

commence par une suite contigu de 1


se termine par une suite contigu de 0

un masque gnrique
z

hussenet l.

peut comporter des "trous"

Le masque gnrique
z

Exemple:
Je m'intresse seulement aux machines 1 7 du
rseau 172.16.1.0/24 dont les adresses IP sont
respectivement 172.16.1.1 jusqu' 172.16.1.7
Le masque gnrique doit vrifier deux aspects:

l'appartenance la classe rseau


les 5 premiers bits du dernier octet sont nuls

Le masque gnrique est donc:


172.16.1.0
hussenet l.

0.0.0.7

Masque gnrique: cas particuliers


z

Toutes les htes:


0.0.0.0
255.255.255.255
raccourci : any

Un hte, d'adresse 172.16.1.132


172.16.1.132

0.0.0.0

raccourci : host 172.16.1.132

hussenet l.

Mise en uvre sur Cisco


z

Deux tapes ncessaires:

La dfinition de l'ACL en configuration globale


access-list

L'application de l'ACL une interface oriente


(entre/sortie) en configuration d'interface
access-group

hussenet l.

Mise en uvre sur Cisco


z

Deux catgories d'ACL

standard, vrifiant sur le paquet filtr


z

l'adresse IP source

tendue, vrifiant sur le paquet filtr


z
z
z
z

hussenet l.

l'adresse IP source
l'adresse IP destination
le protocole de niveau 3 ou 4 (icmp, ip, udp, tcp, )
le numro de port

Mise en uvre d'une ACL standard Cisco


z

Autoriser uniquement le trafic provenant de A sur B


Les interfaces concernes par cet change sont:
RA/E0/IN, RA/S1/OUT, RB/S2/IN, RB/E0/OUT
RB(config)#access-list 20 permit 172.16.1.0 0.0.0.255
RB(config)#interface Ethernet 0/0
RB(config-if)#ip access-group 20 out
Rseau C
non 172.16.0.0/16
S2

S1
Rseau B

Rseau A
S1
E0

172.16.1.0/24
hussenet l.

RA

S2

E0
RB

172.16.2.0/24

Mise en uvre d'une ACL standard Cisco


z

Autoriser uniquement le trafic provenant de A sur B


Question : peut-on placer l'ACL sur

RA/E0/IN ?
RA/S1/OUT ?
RB/S2/IN ?
Rseau C
non 172.16.0.0/16
S2

S1
Rseau B

Rseau A
S1
E0

172.16.1.0/24
hussenet l.

RA

S2

E0
RB

172.16.2.0/24

Remarque sur l'ACL standard


z

Les rgles de l'ACL standard ne portent pas mention


de l'adresse destination

Il convient donc de placer l'ACL le plus prs de la


destination

hussenet l.

Remarque sur l'ACL standard


z

Que ce passe-t'il si l'on place un deny 192.5.5.0


0.0.0.255 sur:

Lab_A/E0/in ?
Lab_D/E0/out ?

Lab_B
S1

S0

Lab_C
S1

S0

Lab_A
Lab_D

S1

S0
E0

E0
219.17.100.0

223.8.151.0

210.93.105.0
192.5.5.0

hussenet l.

Mise en uvre d'une ACL tendue Cisco


z

Justification de l'ACL tendue

l'ACL standard se limite IP source

aucune possibilit de restreindre un protocole en particulier


Comment autoriser le web et pas telnet ?

l'ACL standard se place sur le routeur le plus proche de la


destination. Le trafic peut tre rout jusqu' destination pour
se voir refus en fin de parcours

hussenet l.

Mise en uvre d'une ACL tendue Cisco


z

Justification
Exemple: pourquoi router le trafic de 192.5.5.0 vers
210.93.105.0 si on sait pertinemment qu'il n'a pas le droit ?

Lab_B
S1

S0

Lab_C
S1

S0

Lab_A
Lab_D

S1

S0
E0

E0
219.17.100.0

223.8.151.0

210.93.105.0
192.5.5.0

hussenet l.

Mise en uvre d'une ACL tendue Cisco


z

Dclaration
Router(config)# access-list id {permit | deny} protocol
source [source-mask destination destination-mask operator
operand] [established]

z
z
z
z
z
z
z

id: identifiant unique de l'ACL (de 100 199)


{permit|deny} : action apporter (autoriser ou refuser)
protocole : protocole vrifier (ip, tcp, udp, icmp, gre, igrp)
source/destination : identifie les adresses sources/destination
source/destination-mask : masques gnriques source/destination
oprateur : lt (less than), gt (greater than), eq (equal), neq (not equal) et un
numro de port
established : suivi du trafic tcp li une connexion tablie (bits ACK activs)

hussenet l.

Mise en uvre d'une ACL tendue Cisco


Exemple:
autorise tout le trafic IP venant de lhte 10.0.0.1, quelle que soit la destination
access-list 101 permit ip host 10.0.0.1 any

refuse le trafic venant du rseau 10.0.0.0/24, quelle que soit la destination


access-list 101 deny ip 10.0.0.0 0.0.0.255 any

interdit lhte 172.16.6.1 laccs telnet au rseau 192.168.1.0/24


access-list 101 deny tcp host 172.16.6.1 192.168.1.0 0.0.0.255 eq 23

autorise tous les htes du rseau 172.16.6.0/24 utiliser telnet vers tous les
rseaux
access-list 101 permit tcp 172.16.6.0 0.0.0.255 any eq telnet

hussenet l.

Remarque sur l'ACL tendue


z

Une ACL tendue fait rfrence l'adresse destination

Il faut la placer le plus prs de la source

Exemple
On veut interdire l'accs l'hte 198.150.13.34
Il faut placer l'ACL sur C/E0/in
E0

E1

E0

S1
S0
E0
198.150.13.34

hussenet l.

A
221.23.123.0

ACL nomme
z

Il est possible de nommer une ACL

identifiant plus parlant qu'un identifiant numrique


on peut modifier une ACL sans avoir la dtruire puis la
reconstruire
z
z

ngation d'une rgle (instruction no)


ajout en fin d'ACL

plus rapide configurer


z

plus l'instruction access-list id tapper


Router(config)#ip access-list extended essai
Router(config-ext-nacl)#?
default Set a command to its defaults
deny
Specify packets to reject
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)#

hussenet l.

Vrification des access-list


z

Sur le routeur

show access-lists
montre toutes les ACL du routeur

show access-lists {name | number}


montre une ACL en particulier

show ip interface {interface-name}


montre les ACL qui sont appliques a cette interface, et dans
quel sens

show running-config
montre toutes les ACL et quelles interfaces elles sont
appliques

hussenet l.

Notes importantes
z

Scuriser l'accs un routeur

ACL sur TOUTES LES INTERFACES DU ROUTEUR

ACL sur la configuration vty


z

instruction access-class
LabA(config)# line vty 0 4
LabA(config-line)#login
LabA(config-line)# password cisco
LabA(config-line)# access-class 2 in
LabA(config-line)# end

ne pas autoriser finalement de connexion telnet mais prfrer


une connexion ssh
LabA(config)#crypto key generate rsa
LabA(config)#line vty 0 4
LabA(config-line)#transport input ssh

hussenet l.

Notes importantes
z

Accs au serveur web de l'IOS


RTA(config)#access-list 17 permit 202.206.100.0 0.0.0.255
RTA(config)#ip http server
RTA(config)#ip http access-class 17

hussenet l.

Log
z

Une ACL peut tre paramtre pour effectuer une


alerte de log chaque paquet satisfaisant la rgle

Ce message est envoy un serveur syslog

Exemple:
access-list 101 deny any host 172.16.1.133 eq telnet log

hussenet l.

ACL et parefeu
z

Un parefeu est un routeur filtrant

plus il contient d'ACL, moins il est efficace en routage

Intrieur
Extrieur

Zone
dmilitarise

hussenet l.

ACL et parefeu
z

Un parefeu est un routeur filtrant

plus il contient d'ACL, moins il est efficace en routage

Intrieur
Extrieur

Zone
dmilitarise

hussenet l.

Time-based ACL (IOS >= 12.01(T))


z

Instruction time-range permet de contrler l'utilisation d'une ressource

Definir un nom d'intervalle de temps:


router(config)#time-range time-range-name

Utilisez les commandes periodic et absolute:


router(config-time-range)# periodic days-of-the-week hh:mm
to[days-of-the-week] hh:mm
router(config-time-range)# absolute [start time date] [end
time date]

Sortie du mode de configuration intervalle de temps:


router(config-time-range)#exit

hussenet l.

Time-based ACL (IOS >= 12.01(T))


z

Exemple d'utilisation
Dans la configuration ci-dessous, RTA est configur avec la listed'accs nomme STRICT et deux intervalles de temps, NO-HTTP et
UDP-YES:

L'instruction deny empche le trafic web les jours de la semaine de 8h


18h.
L'instruction permit autorise le trafic UDP le week-end de 12h 20h
RTA(config)#time-range NO-HTTP
RTA(config-time-range)#periodic weekdays 8:00 to 18:00
RTA(config-time-range)#exit
RTA(config)#time-range UDP-YES
RTA(config-time-range)#periodic weekend 12:00 to 20:00
RTA(config-time-range)#exit
RTA(config)#ip access-list extended STRICT
RTA(config-ext-nacl)#deny tcp any any eq http time-range NO-HTTP
RTA(config-ext-nacl)#permit udp any any time-range UDP-YES
RTA(config-ext-nacl)#deny udp any any
RTA(config-ext-nacl)#permit ip any any

hussenet l.

Commentaires
z

Rend la configuration plus lisible

Depuis IOS 12.02(T)


router(config)#access-list access-list number remark remark
router(config-std-nacl)#remark remark

RTA(config)#access-list
RTA(config)#access-list
RTA(config)#access-list
RTA(config)#access-list
RTA(config)#access-list
RTA(config)#access-list
RTA(config)#access-list

hussenet l.

101
101
101
101
101
101
101

remark Autorise Admin Sous-rseau Telnet vers Serveurs


permit tcp 192.168.1 0.0.0.255 172.16.1.0 0.0.0.255 eq 23
deny tcp any 172.16.1.0 0.0.0.255 eq 23
remark autorise SNMP pour Admin du host uniquement
permit udp host 192.168.1.250 any eq 161
deny udp any any eq 161
permit ip any any

Filtrage de session
z

Rappel sur ouverture de session TCP

syn
syn+ack
ack

La liste d'accs tendue peut vrifier si un paquet fait partie


d'une connexion dj tablie
Established - Bits ACK ou RST 1

hussenet l.

Filtrage de session
z

Established
argument utilis exclusivement pour tcp

Syntaxe:
router(config)#access-list access-list-number permit tcp
source-address source-mask destination-address
destination-mask established

access-list
access-list
access-list
access-list
access-list
hussenet l.

101
101
101
101
101

permit tcp any 192.168.1.0 0.0.0.255 established


permit icmp any any
permit udp any any eq 53
deny ip any 192.168.1.0 0.0.0.255
permit ip any any