ACL notions avancees..

Download Report

Transcript ACL notions avancees..

ACL : notions avancées
• Le principe des ACL a été expliqué au chapitre précédent
• Ces ACL de base présentent des limitations qui peuvent être
résolues par l’utilisation des :
–
–
–
–
–
ACL dynamiques
ACL « réflexives »
ACL à caractère temporel
turbo ACL
ACL dépendantes du contexte : le CBAC
RE16
1
Commenter une ACL
• Alors que nous allons sérieusement compliquer l’écriture et le
rôle des ACL, il est utile de de les commenter dans la
configuration du routeur ou du firewall
• Un commentaire d’ACL sera visible dans la configuration, mais
il sera aussi affiché par la commande show access-lists
• Une remarque d’ACL est donc différente d’un commentaire
introduit par !
Miami(config)# access-list 102 remark Allow traffic to file server
Miami(config)# access-list 102 permit ip any host 128.88.1.6
RE16
2
Méthode de travail
• Il est important de respecter les conseils suivants :
–
–
–
–
il faut d’abord bien réfléchir à ce que l’on veut autoriser et interdire
ce travail doit se faire avant de faire quoi que ce soit sur les routeurs
il faut s’arranger pour pouvoir « copier/coller » les ACLs
ne pas hésiter à stocker des ACLs dans des fichiers texte pour faire
une sorte de « librairie » d’ACLs
– si possible, tester les ACLs hors ligne avant de les installer sur le
réseau exploité
RE16
3
ACL dynamique
• Une ACL dynamique permet de résoudre le problème de
l’authentification
• Les ACL classiques utilisent l’adresse IP pour déterminer
quelle machine communique, mais il n’y a pas de vérification
de l’identité de l’utilisateur lui-même
• Il est souvent utile de demander à l’utilisateur de s’identifier :
– nom d’utilisatreur
– mot de passe
• Il faut alors utiliser une ACL dynamique
RE16
4
ACL dynamique
• Il faut les utiliser quand :
– on veut qu’un utilisateur particulier distant (ou un petit groupe)
puisse accéder à certaines ressources du réseau, à travers
Internet
– on veut qu’un groupe d’hôtes du réseau local puisse accéder à un
hôte d’un autre réseau protégé par un firewall
• Il est possible de limiter la durée de l’autorisation de connexion
RE16
5
ACL dynamique
1. Un utilisateur sollicite une session telnet sur le firewall
configuré avec une ACL dynamique (ligne vty)
2. L’IOS Cisco ouvre une session telnet et demande son nom et
son mot de passe à l’utilisateur
3. L’authentification peut être assurée par le firewall lui-même ou
par un serveur TACACS+ ou RADIUS
4. Quand l’utilisateur est indentifié, le firewall met fin à la session
telnet
5. Il crée ensuite une entrée temporaire dans l’ACL dynamique
(cette instruction temporaire permet de limiter l’accès à
certaines machines)
6. Les données sont échangées à travers le firewall
7. L’IOS détruit l’entrée temporaire au bout d’un certain temps
paramétrable (soit en mesurant une durée d’inactivité, soit en
mesurant le temps de connexion)
RE16
6
ACL dynamique
• ACL dynamique car elle n’apparaît que sur sollicitation de
l’utilisateur, et après authentification de celui-ci
Je m’identifie en faisant un telnet
Je laisse passer seulement si il s’identifie !
RE16
7
ACL dynamique
Exemple avec authentification locale au routeur
définition de l’utilisateur et de son mot de passe
username toto password tutu
autorisation du telnet sur l’@IP de l’interface du routeur
interface ethernet0
ip address 172.18.23.2 255.255.255.0
ip access-group 101 in
access-list 101 permit tcp any host 172.18.23.2 eq telnet
access-list 101 dynamic mytestlist timeout 120 permit ip any any
line vty 0
entrée dynamique qui autorise tout le trafic IP
login local
autocommand access-enable timeout 5
définition d’une ligne vty
l’authentification se fera en local
commande d’activation de la partie dynamique de l’ACL :
• elle sera ajoutée après un telnet authentifié
• elleRE16
restera dans l’ACL pendant 5 minutes
8
ACL dynamique
• L’entrée dynamique ne peut pas être la seule entrée de l’ACL
• L’instruction ajoutée dans une liste dynamique l’est toujours au
début de la liste
• Il ne faut qu’une instruction dynamique par ACL (seule la
première sera prise en compte)
• Utiliser un nom différent pour chaque instruction dynamique
• Il faut autoriser le telnet sur le routeur pour que tout cela
puisse marcher
• Il faut toujours définir un temps de connexion maximum
RE16
9
ACL dynamique
• Utilise un mécanisme d’authentification des utilisateurs (et pas
seulement des hôtes)
• Permet de réduire la taille des ACL classiques en réduisant le
nombre des instructions nécessaires
• Avec cette technique, on peut spécifier quel utilisateur peut
accéder à des ressources (définies en @IP et n° de port), en
spécifiant depuis quels hôtes il a le droit de le faire
• On peut ainsi donner un accès dynamique à un utilisateur à
travers un firewall, sans compromettre les autres restrictions
de sécurité
RE16
10
Proxy d’authentification
• Les ACLs dynamiques obligent l’utilisateur à initier une
session telnet
• Le proxy d’authentification permet d’obtenir à peu près le
même fonctionnement, mais en passant par un navigateur
Internet
• Il peut être utilisé depuis l’intérieur du réseau comme depuis
l’extérieur
RE16
11
Proxy d’authentification
• Les utilisateurs qui sont bloqués par une ACL peuvent (si le
routeur est configuré en ce sens) utiliser un simple navigateur
web pour s’identifier auprès du serveur TACACS+ ou RADIUS
• Ils doivent se connecter au serveur HTTP résidant dans le
routeur prévu à cet effet
• Ce serveur HTTP remplace le serveur telnet comme
intermédiaire entre l’utilisateur et le serveur TACACS+ ou
RADIUS
• Après authentification, le serveur donnera au routeur
l’instruction qu’il doit ajouter en tête d’ACL pour permettre à
l’utilisateur de rentrer sur le réseau
RE16
12
Proxy d’authentification
• Les différences entre les ACL dynamiques et le proxy
d’authentification sont :
– l’ACL dynamique est activée par une connexion telnet sur le
routeur, alors que le proxy d’authentification est activé par HTTP
sur le routeur
– le proxy d’authentification ne supporte pas l’authentification locale
(nécessité d’un serveur TACACS+ ou RADIUS)
– contrairement aux ACLs dynamiques, le serveur d’authentification
peut ajouter plusieurs instruction à l’ACL
– le serveur d’authentification n’a qu’une temporisation absolue, et
pas de temporisation d’inactivité
RE16
13
ACL réflexive
• Permet de filtrer les paquets IP en fonction des informations de
session (qui a commencé ?) des couches supérieures
• On peut ainsi autoriser un certain trafic, seulement si il a été
initié depuis l’intérieur du réseau
• On pouvait déjà obtenir ce fonctionnement avec des ACL
étendues, en utilisant l’option established, mais cette option ne
vaut que pour TCP (UDP est en effet un protocole non
connecté)
• Les ACL réflexives permettent de faire ce type de filtrage avec
TCP, mais aussi UDP et ICMP
RE16
14
ACL étendue : rappel
• Quand on utilise un numéro de port pour filtrer, il faut savoir que
seul le port destination est filtré
Si je mets une ACL pour interdire à host
d’envoyer des requêtes HTTP, le serveur ne
verra jamais rien
Si je mets une ACL qui filtre le trafic HTTP en
entrée, alors host peut faire une requête, le
serveur peut répondre, et cette réponse ne sera
pas bloquée en entrée du routeur !
Le filtrage ne se fait que sur le port destination
On peut n’autoriser le trafic HTTP que en réponse à
une demande de host en utilisant :
access-list 101 permit tcp any any eq http established
• Cette technique utilise les bits ACK et RST de l’en-tête TCP, et
RE16et ICMP
n’est donc pas valable pour UDP
15
ACL réflexive
• Les sessions TCP sont suivies grâce aux bits ACK, RST et FIN
des en-têtes TCP
• La fin de la session TCP est repérée de la façon suivante :
– quand le bit FIN de l’en-tête TCP est placé à 1, le routeur devine
que la session va se terminer, il attend 5 secondes pour laisser le
temps à l’hôte et au serveur de terminer leur session, puis il
bloque le trafic
– quand le bit RST est mis à 1, le routeur détecte une interruption
abrupte de session et bloque immédiatement le trafic
– par défaut au bout d’un certain temps (paramétrable) d’inactivité
pour cette session
RE16
16
ACL réflexive
• Les sessions UDP sont suivies par les couples
@IP source/destination
n° port source/destination
• La fin de la session ne peut être détectée que par défaut au
bout d’un certain temps d’inactivité
RE16
17
ACL réflexive
• Il y a deux restrictions à l’utilisation des ACL réflexives :
– elles doivent être utilisées uniquement avec les ACLs étendues
(cela ne marche pas avec les standards qui ne portent pas mention
des n° de port)
– cette technique ne fonctionne pas avec les applications qui
changent de numéro de port en cours de session (par exemple
FTP en mode actif)
RE16
18
FTP : rappel
• Le mode par défaut de FTP est le mode actif
• En mode actif :
– le client ouvre une connexion de contrôle sur le port 21 du serveur
– quand le client demande des données le serveur utilise son port 20
pour lui envoyer
• En mode passif :
– le client ouvre une connexion de contrôle sur le port 21 du serveur
– le serveur lui indique un numéro de port pour le transfert des
données
– quand le client demande des données, il sollicite une connexion
sur le port que le serveur lui a indiqué
Le mode actif est donc incompatible
avec les ACLs réflexives
RE16
19
ACL réflexive : exemple 1
S1
interface Serial 1
description Acces à Internet
ip access-group inboundfilters in
ip access-group outboundfilters out
!
ip reflexive-list timeout 120
!
ip access-list extended outboundfilters
permit tcp any any reflect tcptraffic
!
ip access-list extended inboundfilters
permit bgp any any
permit eigrp any any
deny icmp any any
evaluate tcptraffic
côté réseau local
côté réseau
d’interconnexion
utilisation d’ACL nommées
sessions considérées comme inactives et par
conséquent interdites au bout de 120 secondes
définition de l’ACL nommée outboudfilters, elle
ne contient qu’une instruction : autoriser tout le
trafic IP, mais en pistant au passage les
sessions sous le nom tcptrafic
définition de l’ACL nommée inboundfilters :
• on autorise tout le trafic BGP
• on autorise tout le trafic EIGRP
• on interdit tout trafic ICMP
• tout le reste est évalué selon la règle tcptrafic
RE16
20
ACL réflexive : exemple 1
S1
interface Serial 1
description Acces à Internet
ip access-group inboundfilters in
ip access-group outboundfilters out
!
ip reflexive-list timeout 120
!
ip access-list extended outboundfilters
permit tcp any any reflect tcptraffic
!
ip access-list extended inboundfilters
permit bgp any any
permit eigrp any any
deny icmp any any
evaluate tcptraffic
côté réseau local
côté réseau
d’interconnexion
remarque : on peut intercaler des instructions
classiques (non réflexives), elles sont alors
normalement évaluées. Ceci est utile quand on
ne souhaite pas tout pister !
RE16
21
ACL réflexive : exemple 2
interface Ethernet 0
description Acces a notre reseau
ip access-group inboundfilters in
ip access-group outboundfilters out
!
ip reflexive-list timeout 120
!
ip access-list extended outboundfilters
deny icmp any any
evaluate tcptraffic
!
ip access-list extended inboundfilters
permit tcp any any reflect tcptraffic
E0
S1
côté réseau local
côté réseau
d’interconnexion
DMZ
www
smtp
dns
l’accès à la DMZ doit être possible à l’initiative
l’extérieur :
• on ne peut pas mettre l’ACL réflexive sur S1
• il faut la mettre sur E0
RE16
22
ACL à caractère temporel
• Ce genre d’ACL permet d’interdire certains trafics pendant
certains périodes
• La référence de temps utilisée est l’horloge interne du routeur,
il est dans ce cas intéressant d’utiliser le protocole NTP
(Network Time Protocol ) pour bien synchroniser tous les
équipements
les connexions telnet sont autorisées les lundi,
mercredi et vendredi de 8h à 17h
RE16
23
Turbo ACL
• Quand une ACL contient un grand nombre d’instructions, cela
peut gravement ralentir le fonctionnement du routeur
• les Turbo ACLs sont utilisables avec les IOS Cisco 12.1.5.T et
sont disponibles uniquement sur les routeurs des séries 7200,
7500, et supérieures
RE16
24
Context Based Acces Control : CBAC
• Les ACL étendues permettent de filtrer le trafic en sortie du
réseau car seul le port destination est filtré.
– Le retour vers le client ne peut être filtré car le numéro de port
utilisé est aléatoire
– un « faux retour » ne peut pas filtré
• Les ACL réflexives sont plus performantes que les ACL
étendues car elles tiennent compte de l’information de session
– un « faux retour » sera bloqué en entrée, sauf si il arrive pendant
une session ouverte
• Le CBAC est plus performant car il tient compte en plus
d’informations protocolaires de niveau application
RE16
25
CBAC
• Les limitations des ACL classiques sont :
– le filtrage ne se fait que sur les @IP et ports source et destination
– les ports ouverts le sont tout le temps
• Les limitations des ACL réflexives sont :
– elles ne fonctionnent pas avec les applications qui négocient les
ports
– elles ne permettent pas de limiter le nombre de sessions
autorisées simultanément
– elles ne tiennent pas compte des informations du protocole de
niveau application
RE16
26
CBAC
• Les paquets qui arrivent sur l’interface externe du firewall sont
inspectés par les ACL classiques
• Seuls les paquets qui passent ce premier barrage sont
inspectés par le CBAC
• CBAC interdit ou autorise uniquement le trafic TCP ou UDP
spécifié
• Des tables d’état sont mises à jour grâce aux informations de
session, pour chaque connexion active (ouverture,
synchronisation, acquittements, relachement)
• Le filtrage se fait par l’ajout dynamique d’ACL
ip inspect name inspection-name
protocol [timeout seconds]27
RE16
CBAC
• Le CBAC est capable de reconnaître les commandes des
protocoles d’applications sur les canaux de contrôle
• Le CBAC utilise les numéros de séquence de tous les
segments TCP
• Utilisé pour protéger un serveur, le CBAC est aussi capable de
reconnaître certaines attaques de niveau application comme le
DoS. Dans ce cas, il peut :
– générer des messages d’alerte
– bloquer les paquets concernés
RE16
28
CBAC : client sortant
• Le trafic autorisé en sortie (tout ou seulement certains
protocoles) est inspecté pour :
– en extraire les informations de session et d’état du protocole de
transport mais aussi du protocole d’application
– ajouter une ACL en entrée pour laisser entrer le trafic réponse
• Le trafic autorisé en entrée est inspecté pour :
– voir si il fait partie d’une session en cours
– voir si il est conforme à la table d’état des protocoles de transport
et d’application
RE16
29
CBAC : client sortant
RE16
30
CBAC : client entrant
• Le CBAC utilise des temporisations et des valeurs seuil pour
gérer les états des sessions
• Les sessions qui ne sont pas établies complètement (de part et
d’autre) au bout d’un certain temps sont fermées par envoi
d’une fin de session de part et d’autre
• Fixer des valeurs de temporisation de session protège des
attaques DoS en libérant les resources du serveur
• Le nombre de sessions demi-ouvertes est ainsi contrôlable, ce
qui protège le serveur
RE16
31
CBAC : client entrant
• Plusieurs seuils sont possibles pour bloquer les attaques DoS :
– le nombre de connexions simultanées possibles
– le nombre de connexions par unité de temps
– le nombre de demi-connexion par hôte
• Ce type de filtrage est à mettre en oeuvre uniquement sur les
protocoles d’application que l’on veut filtrer, tous les autres
étants interdits
RE16
32
CBAC
RE16
33
CBAC
• Les protocoles de niveau transport supportés sont :
– TCP (canal de contrôle seulement)
– UDP (canal de contrôle seulement)
RE16
34
CBAC
• Les protocoles de niveau application supportés sont :
–
–
–
–
–
–
–
–
–
–
RPC
FTP
TFTP
UNIX R-commands (rlogin, rexec, rsh, ...)
SMTP
HTTP Java
SQL*Net
RTSP (RealNetworks)
H.323 (NetMeeting, ProShare, CUSeeMe)
Autres multimedia :
• Microsoft NetShow
• StreamWorks
• VDOLive
RE16
35
Alertes et rapports d’audit
– CBAC génère des alertes temps réel et des rapports d’audit
– Les rapports d’audit sont envoyés à un serveur Syslog Spour
rendre compte de toutes les transactions qui sont apparues sur le
réseau
– On peut configurer les alertes et rapports d’audit sur la base des
protocoles d’application
RE16
36
Configuration du CBAC
• Les étapes de la mise en fonction du CBAC sont :
–
–
–
–
–
–
fixer les paramètres des alertes et des rapports d’audit
fixer les temporisations et les seuils (nombre de connexions)
definir le Port-to-Application Mapping (PAM)
definir les règles d’inspection
appliquer les règles d’inspection et les ACL aux interfaces
Tester le fonctionnement
RE16
37
CBAC : alertes
no ip inspect alert-off
• Met en route les alertes qui sont envoyées à la
console
• Une alerte est générée quand un paquet IP se voit
rejeté par le CBAC
RE16
38
CBAC : rapports
ip inspect audit-trail
• Autorise le serveur Syslog et le met en fonction
Router(config)# logging on
Router(config)# logging 10.0.0.3
Router(config)# ip inspect audit-trail
RE16
39
CBAC : temporisations
Router(config)#
ip inspect tcp synwait-time seconds
• Spécifie combien le firewall laissera de temps pour que la
connexion TCP atteigne l’état “établie”
Router(config)#
ip inspect tcp finwait-time seconds
• Spécifie combien le firewall attendra de temps l’échange des bits
FIN avant d’interdire la session
RE16
40
CBAC : temporisations
Router(config)#
ip inspect tcp idle-time seconds
ip inspect udp idle-time seconds
• Spécifie le temps maximum d’inactivité autorisé
Router(config)#
ip inspect dns-timeout seconds
• Même chose pour une session DNS
RE16
41
CBAC : seuils
Router(config)#
ip inspect max-incomplete high number
• Définition du nombre maximum de demi-sessions. Quand ce nombre
est atteint, le routeur détruit les sessions les plus anciennes jusqu’à ce
que le nombre atteigne le seuil bas défini ci-dessous
Router(config)#
ip inspect max-incomplete low number
• Définition du nombre de demi-sessions ouvertes qui provoque l’arret de
la destruction des plus anciennes
RE16
42
CBAC : seuils
Router(config)#
ip inspect one-minute high number
• Définition du nombre maximum de nouvelles demi-sessions
autorisées par minute. Si ce nombre est dépassé, le firewall
detruit les plus anciennes jusqu’à ce que leur nombre atteigne
le seuil bas défini ci-dessous
Router(config)#
ip inspect one-minute low number
• Définition du nombre de demi-sessions ouvertes qui provoque
l’arret de la destruction des plus anciennes
RE16
43
CABC : limitation du nombre
de demi-connexions par hôte
Router(config)#
ip inspect tcp max-incomplete host number
block-time seconds
•
•
Définition du nombre maximum de demi-sessions TCP vers le même hôte
destination avant que le routeur ne commence à les détruire
Quand le nombre de demi-sessions vers le même hôte a été dépassé, le
firewall détruit les détruit de la façon suivante :
–
–
si block-time est à 0, la plus vielle demi-session est détruite pour faire place à la
nouvelle
si block-time plus grand que 0, toutes les demi-connexions existantes sont détruites,
et les nouvelles connexions vers cet hôte sont interdites pendant le temps
correspondant à block-time
RE16
44
CBAC : Port-to-Application
Mapping
• Il est possible de configurer les numéros de port que le
firewall attribue aux applications
• CBAC utilise le PAM pour déterminer quel port est
attribué aux applications
RE16
45
CBAC : Port Mapping
Router(config)#
ip port-map appl_name port port_num
• Fait correspondre un port à une application
Router(config)#
access-list permit acl_num ip_addr
ip port-map appl_name port port_num list acl_num
• Même chose pour un hôte particulier
Router(config)#
access-list permit acl_num ip_addr wildcard_mask
ip port-map appl_name port port_num list acl_num
• Même chose pour un réseau particulier
RE16
46
CBAC : port mapping
Router#
show ip port-map
• montre toutes les informations relatives au port mapping
Router#
show ip port-map appl_name
• même chose pour une application
Router#
show ip port-map port port_num
• même chose pour un port particulier
Router# sh ip port-map ftp
Default mapping: ftp port 21
system defined
Host specific:
ftp port 1000 in list 10 user
RE16
47
CBAC : inspection d’un
protocole d’application
Router(config)#
ip inspect name inspection-name protocol [alert
{on|off}] [audit-trail {on|off}] [timeout seconds]
•
•
•
Définit le protocole d’application à inspecter
Sera appliqué à une interface
Alertes, rapports d’audit et timeout sont configurables par protocole et sont
prioritaires sur les réglages globaux
Router(config)#
audit-trail on
Router(config)#
audit-trail on
ip inspect name FWRULE smtp alert on
timeout 300
ip inspect name FWRULE ftp alert on
timeout 300
RE16
48
CBAC : java
Router(config)#
ip inspect name inspection-name http java-list
acl-num [alert {on|off}] [audit-trail {on|off}]
[timeout seconds]
• Contrôle le blocage de java avec une ACL standard
Router(config)# ip inspect name FWRULE http java-list
10 alert on audit-trail on timeout 300
Router(config)# ip access-list 10 deny 172.26.26.0
0.0.0.255
Router(config)# ip access-list 10 permit 172.27.27.0
RE16
49
0.0.0.255
CBAC : application RPC
Router(config)#
ip inspect name inspection-name rpc
program-number number [wait-time minutes]
[alert {on|off}] [audit-trail {on|off}]
[timeout seconds]
• Autorise certains numéros de programmes RPC
• wait-time limite la durée de connexion
Router(config)# ip inspect name FWRULE rpc
program-number 100022 wait-time 0 alert off
audit-trail on
RE16
50
CBAC : SMTP
Router(config)#
ip inspect name inspection-name smtp [alert
{on|off}] [audit-trail {on|off}] [timeout
seconds]
• N’autorise que les commandes légales suivantes pour SMTP :
DATA, EXPN, HELO, HELP, MAIL, NOOP, QUIT, RCPT, RSET,
SAML, SEND, SOML et VRFY
• Sans ce filtre, toutes les transactions SMTP sont autorisées
Router(config)# ip inspect name FWRULE smtp
RE16
51
CBAC : fragmentation
des paquets
Router(config)#
ip inspect name inspection-name fragment max
number timeout seconds
• Utilisé pour se protéger contre certaines attaques de type
DoS :
– max : nombre maxi de fragments avant réassemblage
– timeout : attente maximum de réassemblage avant rejet
Router(config)# ip inspect name FWRULE
fragment max 254 timeout 4
RE16
52
CBAC : application à une
interface
Router (config-if)#
ip inspect inspection-name {in | out}
•
Applique une règle d’inspection (repérée par son nom) à une interface
Router(config)# interface e0/0
Router(config-if)# ip inspect FWRULE in
• Applique une règle d’inspection à l’interface e0/0 dans le sens entrant
RE16
53
CBAC : méthode de travail
– Sur les interfaces depuis lesquelles le trafic sera initié :
• appliquer l’ACL dans le sens entrant qui autorise uniquement le trafic
désiré
• appliquer les règles d’inspection dans le sens entrant, ces règles
s’appliquant au trafic autorisé
– Sur les autres interfaces
• appliquer l’ACL dans le sens entrant qui interdit tout le trafic non désiré
Le firewall appliquera le filtrage dynamique au sens du CBAC
RE16
54
CBAC : exemple 1
RE16
55
CBAC : exemple 1
Router(config)# ip inspect name OUTBOUND tcp
Router(config)# ip inspect name OUTBOUND udp
• Configure CBAC pour l’inspection du trafic TCP et UDP
Router(config)# access-list 101 permit ip 10.0.0.0
0.0.0.255 any
Router(config)# access-list 101 deny ip any any
• Autorise le trafic initié par les hôtes du réseau 10.0.0.0/24
Router(config)# interface e0/0
Router(config-if)# ip inspect OUTBOUND in
Router(config-if)# ip access-group 101 in
• Applique les règles d’inspection et l’ACL à l’interface e0/0 en entrée
(patte inside du firewall)
RE16
56
CBAC : exemple 1
Router(config)# access-list 102 permit icmp any
host 10.0.0.3
Router(config)# access-list 102 permit tcp any host
10.0.0.3 eq www
Router(config)# access-list 102 deny ip any any
• Autorise seulement le trafic ICMP et HTTP vers 10.0.0.3, initié depuis
l’extérieur
Router(config)# interface e0/1
Router(config-if)# ip access-group 102 in
• Applique l’ACL à l’interface e0/1 en entrée (patte outside du routeur)
RE16
57
CBAC : exemple 2
RE16
58
CBAC : exemple 2
Router(config)# ip inspect name OUTBOUND tcp
Router(config)# ip inspect name OUTBOUND udp
• Configure CBAC pour l’inspection du trafic TCP et UDP
Router(config)# access-list 101 permit ip 10.0.0.0
0.0.0.255 any
Router(config)# access-list 101 deny ip any any
• Autorise le trafic initié par les hôtes du réseau 10.0.0.0/24
Router(config)# interface e0/0
Router(config-if)# ip inspect OUTBOUND in
Router(config-if)# ip access-group 101 in
• Applique les règles d’inspection et l’ACL à l’interface e0/0 en entrée
(patte inside du firewall)
RE16
59
CBAC : exemple 2
Router(config)# ip inspect name INBOUND tcp
• Configure CBAC pour l’inspection du trafic tcp
Router(config)#
172.16.0.2
Router(config)#
172.16.0.2 eq
Router(config)#
access-list 102 permit icmp any host
access-list 102 permit tcp any host
www
access-list 102 deny ip any any
• Autorise le trafic ICMP et HTTP initié depuis l’extérieur et à destination
de l’hôte 172.16.0.2
Router(config)# interface e0/1
Router(config-if)# ip inspect INBOUND in
Router(config-if)# ip access-group 102 in
• Applique les règles d’inspection et l’ACL à l’interface e0/1 en entrée
RE16
(patte outside du firewall)
60
CBAC : exemple 2
Router(config)# access-list 103 permit icmp host 172.16.0.2 any
Router(config)# access-list 103 deny ip any any
• N’autorise que le trafic ICMP initié depuis la DMZ
Router(config)# access-list 104 permit icmp any host 172.16.0.2
Router(config)# access-list 104 permit tcp any host 172.16.0.2 eq
www
Router(config)# access-list 104 deny ip any any
• N’autorise que le trafic ICMP et HTTP initié depuis l’extérieur et à destination
de l’hôte 172.16.0.2
Router(config)# interface e1/0
Router(config-if)# ip access-group 103 in
Router(config-if)# ip access-group 104 out
• Applique les deux ACL à l’interfaceRE16
e1/0
61
CBAC : commandes show
•
Router#
show
show
show
show
show
ip
ip
ip
ip
ip
inspect
inspect
inspect
inspect
inspect
name inspection-name
config
interfaces
session [detail]
all
• Affiche les configurations CBAC, les configurations des interfaces et
les sessions
Router# sh ip inspect session
Established Sessions
Session 6155930C (10.0.0.3:35009)=>(172.30.0.50:34233)
tcp SIS_OPEN
Session 6156F0CC (10.0.0.3:35011)=>(172.30.0.50:34234)
tcp SIS_OPEN
Session 6156AF74 (10.0.0.3:35010)=>(172.30.0.50:5002) tcp
RE16
62
SIS_OPEN
CBAC : commandes debug
Router#
debug
debug
debug
debug
debug
ip
ip
ip
ip
ip
inspect
inspect
inspect
inspect
inspect
function-trace
object-creation
object-deletion
events
timers
• Commandes de debug générales
Router(config)#
debug ip inspect protocol
• debug d’un protocole particulier
RE16
63
Enlever le CBAC
Router(config)#
no ip inspect
• Enlève toute la configuration CBAC
• Remet toutes les temporisations et les seuils à leur
valeur par défaut
• Détruit toutes les sessions existantes
• Enlève toutes les ACL dynamiques générées par le
CBAC
RE16
64
CBAC : limitations
• Le CBAC n’inspecte que le trafic explicitement spécifié. C’est
un avantage car le contrôle peut se faire finement, mais il faut
souvent beaucoup d’entrées « ip inspect » pour couvrir tous
les types de connexions
• Le CBAC n’est pas très simple d’utilisation et demande une
bonne connaissance des protocoles et des applications utilisés
• Le trafic que le routeur lui-même génère n’est pas inspecté
• Le trafic qui est envoyé au routeur lui-même n’est pas inspecté
• CBAC ne peut inspecter les données cryptées (IPSec). Il peut
cependant inspecter les canaux VPN dont il est à l’origine
• Seul le mode passif de FTP est compatible avec le CBAC
RE16
65
Conclusion
•
Les ACL étendues permettent de filtrer le trafic en sortie du réseau car seul le port destination
est filtré.
–
–
•
Le retour vers le client ne peut être filtré car le numéro de port utilisé est aléatoire
un « faux retour » ne peut pas filtré
Les ACL réflexives sont plus performantes que les ACL étendues car elles tiennent compte de
l’information de session
–
un « faux retour » sera bloqué en entrée, sauf si il arrive pendant une session ouverte
• Le CBAC est plus performant car il tient compte en plus
d’informations protocolaires de niveau application
– seules les commandes autorisées dans les protocoles connus passent
à travers le firewall
– le firewall piste les attaques connues
– appliqué dans le sens sortie puis entrée, le CBAC permet de ne laisser
entrer sur le réseau que ce qui fait partie d’une session « propre »
– appliqué dans le sens entrée puis sortie, le CBAC permet de se
RE16
66
protéger contre les attaques de
type DoS