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:
[Link]
[Link]
[Link]
[Link]
1100 0000 . 1010 1000 . 1000 0000 . 0000 0000
0000 0000 . 0000 0000 . 0111 1111 . 1111 1111
[Link]
[Link]
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 [Link]/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:
[Link] [Link]
hussenet l.
Le masque gnrique
z
Exemple:
Je veux dsigner l'ensemble de la classe de
l'adresse rseau [Link]/18
17210.1610.100000002.010
Bits devant tre vrifi
Le masque gnrique est donc:
[Link] [Link]
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 [Link]/24 dont les adresses IP sont
respectivement [Link] jusqu' [Link]
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:
[Link]
hussenet l.
[Link]
Masque gnrique: cas particuliers
z
Toutes les htes:
[Link]
[Link]
raccourci : any
Un hte, d'adresse [Link]
[Link]
[Link]
raccourci : host [Link]
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 [Link] [Link]
RB(config)#interface Ethernet 0/0
RB(config-if)#ip access-group 20 out
Rseau C
non [Link]/16
S2
S1
Rseau B
Rseau A
S1
E0
[Link]/24
hussenet l.
RA
S2
E0
RB
[Link]/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 [Link]/16
S2
S1
Rseau B
Rseau A
S1
E0
[Link]/24
hussenet l.
RA
S2
E0
RB
[Link]/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 [Link]
[Link] 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
[Link]
[Link]
[Link]
[Link]
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 [Link] vers
[Link] 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
[Link]
[Link]
[Link]
[Link]
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 [Link], quelle que soit la destination
access-list 101 permit ip host [Link] any
refuse le trafic venant du rseau [Link]/24, quelle que soit la destination
access-list 101 deny ip [Link] [Link] any
interdit lhte [Link] laccs telnet au rseau [Link]/24
access-list 101 deny tcp host [Link] [Link] [Link] eq 23
autorise tous les htes du rseau [Link]/24 utiliser telnet vers tous les
rseaux
access-list 101 permit tcp [Link] [Link] 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 [Link]
Il faut placer l'ACL sur C/E0/in
E0
E1
E0
S1
S0
E0
[Link]
hussenet l.
A
[Link]
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 [Link] [Link]
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 [Link] 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 [Link] [Link] [Link] eq 23
deny tcp any [Link] [Link] eq 23
remark autorise SNMP pour Admin du host uniquement
permit udp host [Link] 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 [Link] [Link] established
permit icmp any any
permit udp any any eq 53
deny ip any [Link] [Link]
permit ip any any