ACL : notions avancées
description
Transcript of ACL : notions avancées
RE16 1
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 2
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 3
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 4
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 5
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 6
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 7
ACL dynamique
• ACL dynamique car elle n’apparaît que sur sollicitation de l’utilisateur, et après authentification de celui-ci
Je laisse passer seulement si il s’identifie ! Je m’identifie en faisant un telnet
RE16 8
ACL dynamique
Exemple avec authentification locale au routeur
username toto password tutu
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 telnetaccess-list 101 dynamic mytestlist timeout 120 permit ip any anyline vty 0login localautocommand access-enable timeout 5
autorisation du telnet sur l’@IP de l’interface du routeur
entrée dynamique qui autorise tout le trafic IP
l’authentification se fera en local
définition d’une ligne vty
définition de l’utilisateur et de son mot de passe
commande d’activation de la partie dynamique de l’ACL :• elle sera ajoutée après un telnet authentifié• elle restera dans l’ACL pendant 5 minutes
RE16 9
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 10
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 11
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 12
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 13
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 14
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 15
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 n’est donc pas valable pour UDP et ICMP
RE16 16
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 17
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 18
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 19
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 20
ACL réflexive : exemple 1
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
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
côté réseau local côté réseau d’interconnexion
S1
RE16 21
ACL réflexive : exemple 1
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
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 !
côté réseau local côté réseau d’interconnexion
S1
RE16 22
ACL réflexive : exemple 2
côté réseau local côté réseau d’interconnexion
E0
DMZ
wwwsmtpdns
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
S1interface 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
RE16 23
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 24
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 25
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 26
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 27
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]
RE16 28
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 29
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 30
CBAC : client sortant
RE16 31
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 32
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 33
CBAC
RE16 34
CBAC
• Les protocoles de niveau transport supportés sont :– TCP (canal de contrôle seulement)
– UDP (canal de contrôle seulement)
RE16 35
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 36
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 37
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 38
CBAC : alertes
• 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
no ip inspect alert-off
RE16 39
Router(config)# logging onRouter(config)# logging 10.0.0.3Router(config)# ip inspect audit-trail
• Autorise le serveur Syslog et le met en fonction
CBAC : rapports
ip inspect audit-trail
RE16 40
ip inspect tcp synwait-time seconds
ip inspect tcp finwait-time seconds
• Spécifie combien le firewall laissera de temps pour que la connexion TCP atteigne l’état “établie”
• Spécifie combien le firewall attendra de temps l’échange des bits FIN avant d’interdire la session
CBAC : temporisations
Router(config)#
Router(config)#
RE16 41
ip inspect dns-timeout seconds
ip inspect tcp idle-time seconds
ip inspect udp idle-time seconds• Spécifie le temps maximum d’inactivité autorisé
• Même chose pour une session DNS
CBAC : temporisations
Router(config)#
Router(config)#
RE16 42
ip inspect max-incomplete high number
ip inspect max-incomplete low 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
• Définition du nombre de demi-sessions ouvertes qui provoque l’arret de la destruction des plus anciennes
CBAC : seuils
Router(config)#
Router(config)#
RE16 43
ip inspect one-minute high number
ip inspect one-minute low 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
• Définition du nombre de demi-sessions ouvertes qui provoque l’arret de la destruction des plus anciennes
CBAC : seuils
Router(config)#
Router(config)#
RE16 44
ip inspect tcp max-incomplete host number block-time seconds
CABC : limitation du nombre de demi-connexions par hôte
• 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
Router(config)#
RE16 45
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 46
• Fait correspondre un port à une application
• Même chose pour un hôte particulier
• Même chose pour un réseau particulier
CBAC : Port Mapping
Router(config)#
Router(config)#
Router(config)#
ip port-map appl_name port port_num
access-list permit acl_num ip_addr
ip port-map appl_name port port_num list acl_num
access-list permit acl_num ip_addr wildcard_mask
ip port-map appl_name port port_num list acl_num
RE16 47
show ip port-map • montre toutes les informations relatives au port mapping
show ip port-map appl_name• même chose pour une application
show ip port-map port port_num• même chose pour un port particulier
CBAC : port mapping
Router#
Router#
Router#
Router# sh ip port-map ftpDefault mapping: ftp port 21 system definedHost specific: ftp port 1000 in list 10 user
RE16 48
ip inspect name inspection-name protocol [alert {on|off}] [audit-trail {on|off}] [timeout seconds]
CBAC : inspection d’un protocole d’application
• 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)#
Router(config)# ip inspect name FWRULE smtp alert on audit-trail on timeout 300
Router(config)# ip inspect name FWRULE ftp alert on audit-trail on timeout 300
RE16 49
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 0.0.0.255
• Contrôle le blocage de java avec une ACL standard
CBAC : java
ip inspect name inspection-name http java-list acl-num [alert {on|off}] [audit-trail {on|off}] [timeout seconds]
Router(config)#
RE16 50
Router(config)# ip inspect name FWRULE rpc program-number 100022 wait-time 0 alert off audit-trail on
• Autorise certains numéros de programmes RPC
• wait-time limite la durée de connexion
CBAC : application RPC
ip inspect name inspection-name rpcprogram-number number [wait-time minutes] [alert {on|off}] [audit-trail {on|off}] [timeout seconds]
Router(config)#
RE16 51
Router(config)# ip inspect name FWRULE smtp
• 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
CBAC : SMTP
ip inspect name inspection-name smtp [alert {on|off}] [audit-trail {on|off}] [timeout seconds]
Router(config)#
RE16 52
Router(config)# ip inspect name FWRULE fragment max 254 timeout 4
• 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
CBAC : fragmentation des paquets
ip inspect name inspection-name fragment max number timeout seconds
Router(config)#
RE16 53
ip inspect inspection-name {in | out}
CBAC : application à une interface
• Applique une règle d’inspection (repérée par son nom) à une interface
Router (config-if)#
Router(config)# interface e0/0Router(config-if)# ip inspect FWRULE in
• Applique une règle d’inspection à l’interface e0/0 dans le sens entrant
RE16 54
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 55
CBAC : exemple 1
RE16 56
• Applique les règles d’inspection et l’ACL à l’interface e0/0 en entrée (patte inside du firewall)
• Autorise le trafic initié par les hôtes du réseau 10.0.0.0/24
Router(config)# interface e0/0Router(config-if)# ip inspect OUTBOUND inRouter(config-if)# ip access-group 101 in
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
Router(config)# ip inspect name OUTBOUND tcpRouter(config)# ip inspect name OUTBOUND udp
• Configure CBAC pour l’inspection du trafic TCP et UDP
CBAC : exemple 1
RE16 57
Router(config)# interface e0/1Router(config-if)# ip access-group 102 in
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
• Applique l’ACL à l’interface e0/1 en entrée (patte outside du routeur)
• Autorise seulement le trafic ICMP et HTTP vers 10.0.0.3, initié depuis l’extérieur
CBAC : exemple 1
RE16 58
CBAC : exemple 2
RE16 59• Applique les règles d’inspection et l’ACL à l’interface e0/0 en entrée
(patte inside du firewall)
• Autorise le trafic initié par les hôtes du réseau 10.0.0.0/24
Router(config)# interface e0/0Router(config-if)# ip inspect OUTBOUND inRouter(config-if)# ip access-group 101 in
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
Router(config)# ip inspect name OUTBOUND tcpRouter(config)# ip inspect name OUTBOUND udp
• Configure CBAC pour l’inspection du trafic TCP et UDP
CBAC : exemple 2
RE16 60• Applique les règles d’inspection et l’ACL à l’interface e0/1 en entrée
(patte outside du firewall)
• 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/1Router(config-if)# ip inspect INBOUND inRouter(config-if)# ip access-group 102 in
Router(config)# access-list 102 permit icmp any host 172.16.0.2
Router(config)# access-list 102 permit tcp any host 172.16.0.2 eq www
Router(config)# access-list 102 deny ip any any
CBAC : exemple 2
Router(config)# ip inspect name INBOUND tcp
• Configure CBAC pour l’inspection du trafic tcp
RE16 61
Router(config)# interface e1/0Router(config-if)# ip access-group 103 inRouter(config-if)# ip access-group 104 out
Router(config)# access-list 103 permit icmp host 172.16.0.2 anyRouter(config)# access-list 103 deny ip any any
Router(config)# access-list 104 permit icmp any host 172.16.0.2Router(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 initié depuis la DMZ
• N’autorise que le trafic ICMP et HTTP initié depuis l’extérieur et à destination de l’hôte 172.16.0.2
CBAC : exemple 2
• Applique les deux ACL à l’interface e1/0
RE16 62
show ip inspect name inspection-nameshow ip inspect configshow ip inspect interfacesshow ip inspect session [detail]show ip inspect all
• Affiche les configurations CBAC, les configurations des interfaces et les sessions
•
CBAC : commandes show
Router#
Router# sh ip inspect sessionEstablished 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 SIS_OPEN
RE16 63
• Commandes de debug générales
CBAC : commandes debug
Router#
• debug d’un protocole particulier
Router(config)#
debug ip inspect function-tracedebug ip inspect object-creationdebug ip inspect object-deletiondebug ip inspect eventsdebug ip inspect timers
debug ip inspect protocol
RE16 64
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
Enlever le CBAC
Router(config)#
RE16 65
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 66
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 protéger contre les attaques de type DoS