66
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

RE161 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

Embed Size (px)

Citation preview

Page 1: RE161 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

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

Page 2: RE161 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

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

Page 3: RE161 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

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é

Page 4: RE161 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

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

Page 5: RE161 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

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

Page 6: RE161 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

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)

Page 7: RE161 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

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

Page 8: RE161 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

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

Page 9: RE161 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

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

Page 10: RE161 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

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é

Page 11: RE161 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

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

Page 12: RE161 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

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

Page 13: RE161 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

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é

Page 14: RE161 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

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

Page 15: RE161 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

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

Page 16: RE161 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

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

Page 17: RE161 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

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é

Page 18: RE161 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

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)

Page 19: RE161 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

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

Page 20: RE161 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

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

Page 21: RE161 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

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

Page 22: RE161 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

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

Page 23: RE161 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

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

Page 24: RE161 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

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

Page 25: RE161 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

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

Page 26: RE161 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

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

Page 27: RE161 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

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]

Page 28: RE161 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

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

Page 29: RE161 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

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

Page 30: RE161 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

RE16 30

CBAC : client sortant

Page 31: RE161 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

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

Page 32: RE161 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

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

Page 33: RE161 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

RE16 33

CBAC

Page 34: RE161 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

RE16 34

CBAC

• Les protocoles de niveau transport supportés sont :– TCP (canal de contrôle seulement)

– UDP (canal de contrôle seulement)

Page 35: RE161 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

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

Page 36: RE161 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

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

Page 37: RE161 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

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

Page 38: RE161 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

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

Page 39: RE161 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

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

Page 40: RE161 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

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)#

Page 41: RE161 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

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)#

Page 42: RE161 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

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)#

Page 43: RE161 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

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)#

Page 44: RE161 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

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)#

Page 45: RE161 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

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

Page 46: RE161 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

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

Page 47: RE161 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

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

Page 48: RE161 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

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

Page 49: RE161 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

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)#

Page 50: RE161 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

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)#

Page 51: RE161 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

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)#

Page 52: RE161 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

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)#

Page 53: RE161 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

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

Page 54: RE161 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

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

Page 55: RE161 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

RE16 55

CBAC : exemple 1

Page 56: RE161 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

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

Page 57: RE161 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

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

Page 58: RE161 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

RE16 58

CBAC : exemple 2

Page 59: RE161 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

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

Page 60: RE161 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

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

Page 61: RE161 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

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

Page 62: RE161 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

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

Page 63: RE161 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

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

Page 64: RE161 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

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)#

Page 65: RE161 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

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

Page 66: RE161 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

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