Différentes formes de filtrage Cisco

Panorama des différentes formes de filtrage Cisco (IOS)
''L'intégralité de ce texte est source de Nicolas Jombart (16/11/2001) qui a publié cet article à l'adresse suivante : http://www.hsc.fr/ressources/breves/cisco-acl.html.fr n'ayant pu le contacter je me permet de copier coller son article ici.''

Panorama des différentes formes de filtrage Cisco (IOS)

Introduction

Le système d'exploitation des routeurs Cisco (IOS) dispose de possibilités de filtrage très intéressantes.

Le but de cette brève n'est pas de donner un howto du filtrage Cisco, mais plutôt de montrer un panorama des différentes formes de filtrage les plus courantes, notamment de l'access-list et du filtrage BGP. Le lecteur est donc vivement invité à se référer aux innombrables documentations en ligne de Cisco.

Access Control Lists

Les ACL (Access Control List ou access-list) sont définies par un numéro (ou un nom) et peuvent être de plusieurs type :

 routeur(config)#access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1100-1199> Extended 48-bit MAC address access list
<200-299> Protocol type-code access list
<700-799> 48-bit MAC address access list

(d'autres types existent, pour les autres protocoles qu'IP notamment)

IP standard access list :

  • Ne permet d'utiliser que les adresses source pour identifier les paquets

IP extended access list :

  • Permet d'identifier un paquet par les adresses IP, protocoles et ports source et destination

Protocol type-code access list :

  • Filtrage sur le protocole

48-bit MAC address access list :

  • Filtrage en fonction de l'adresse MAC

Les access-list matchent des paquets selon une syntaxe simple (se référer aux docs IOS pour les détails), par exemple :

 ! permet le ping sur tout le réseau
! perm
! bloque et journalise (sauf le HTTP) tout le reste
access-list 102 remark ACL d'exemple
access-list 102 permit icmp any 192.70.106.0 0.0.0.31 echo
access-list 102 permit udp any eq ntp host 192.70.106.4 eq ntp
access-list 102 permit tcp any host 192.70.106.4 eq 22 established
access-list 102 remark Do not log HTTP request (codered, nimda, whatever)
access-list 102 deny any any eq 80
access-list 102 deny any any log

Notez que les masques de sous-réseau se notent « à l'envers » chez Cisco.

Il est possible d'utiliser :

log : qui permet de journaliser le paquet matché. Typiquement utilisé à la fin d'une access-list avec une règle :

 deny ip any any log

log-input : Journalise en plus l'interface et l'adresse MAC.

Un nom plutôt qu'un numéro : Il est possible d'utiliser un nom plutôt qu'un simple numéro. C'est souvent plus parlant.

remark : Pour commenter l'access-list

Elles sont ensuite appliquées à une interface, un protocole de routage, ou une communauté SNMP. Une access-list n'a aucun effet si elle n'est pas appliquée. Il est possible de l'appliquer à différentes entités,par exemple :

  • Une interface, en précisant le sens d'application

Il faut choisir dans quel sens on écrit l'ACL : entrée et/ou sortie. Il est souvent inutile de filtrer deux fois. La solution la meilleur est celle qui permet d'écrire les access-lists les plus simples possibles.

  • Protocole de routage

Appliquée à un protocole de routage, une ACL permet de filtrer au niveau de la route, c'est à dire de router ou pas en provenance ou vers une destination les paquets. Le mot clef à utiliser est distribute-list.

  • Communauté SNMP

Par communauté (RO, RW), une telle ACL permet de limiter aux machines d'administration et de supervision l'accès à SNMP.

  • Serveur HTTP du routeur

Si vous avez vraiment besoin du serveur HTTP du routeur, ce dont on ne saurait que trop déconseiller, cette ACL vous permet de limiter l'accès. Syntaxe :

 ip http access-class XXX

Filtrage de session

  • established : qui correspond en fait aux drapeaux ACK ou RST

Il s'agit d'un simple filtrage du sens de l'établissement de session, established ne vérifie en rien l'appartenance d'un paquet à une session TCP, il ne fait que contrôler les bits concernés. En particulier, les adresses IP ne sont pas vérifiées.

  • reflexive

Afin de réaliser un filtrage de session plus puissant, les ACL "reflexive" utilisent des entrées temporaires pour décider si un paquet appartient à une session (TCP et par abus de langage UDP et ICMP) en cours.
Par exemple, la commande evaluate <NOM> sur une ACL sortante, permettra d'utiliser sur l'ACL entrante de l'interface un permit tcp any any reflect <NOM>

Autres types d'access-list

  • dynamic "Lock-and-key"

Ce type d'access-list est une règle temporaire placée par un utilisateur après authentification sur un routeur.
Une règle dynamic permet alors d'ouvrir des flux à la demande pour une durée donnée (quelques minutes) grâce à la commande access-enable.

  • time-range

Il est possible d'écrire des règles en fonction des jours et de l'heure. Un exemple est plus parlant :

 time-range irc-ok
periodic weekdays 9:00 to 19:00
!
ip access-list extended blah
permit tcp any any eq 6667 time-range irc-ok
!
interface ethernet 0
ip access-group blah in

Cette configuration autorisera l'IRC (6667/TCP) seulement la semaine en journée.

Filtrage BGP

BGP, Border Gateway Protocol, est dans sa version 4 le protocole de routage internet le plus utilisé. Pour plus de renseignements sur le fonctionnement de BGP, se reporter aux RFC 1771 à 1774 et autres ou aux excellentes documentations de Cisco.

BGP4 est un composant critique d'internet car il détermine sa structure et des attaques sur BGP peuvent potentiellement faire disparaître temporairement de la carte des AS tout entiers.

Sans parler de travaux plus ambitieux comme sBGP , IOS permet déjà de durcir un peu BGP.

Il est possible de filtrer les annonces BGP en fonction de là où elles sont émises ou vers quels AS elles sont émises, des numéros d'AS des réseaux. On utilise pour cela des expressions régulières.

exemple :

router bgp 300
neighbor 10.1.2.10 remote-as 110
neighbor 10.1.2.10 filter-list 1 weight 100
neighbor 10.1.2.10 filter-list 2 out
neighbor 10.1.2.10 filter-list 3 in
ip as-path access-list 1 permit _109_
ip as-path access-list 2 permit ^100$
ip as-path access-list 3 deny _690$
ip as-path access-list 3 permit .*

De plus, un certain nombre d'éléments dans la configuration sont utiles dans le cas de BGP :

  • Restreindre aux peers/neighbors le port 179/TCP

Ainsi seuls les voisins ont accès au protocole BGP sur les borders.

  • Utiliser des mots de passe MD5
  • Utiliser prefix-list pour maintenir des listes de réseaux 'buggés' (RFC 1918, classes interdites ou pas ouvertes, multicast, etc.), ou pour éviter d'annoncer autre chose que son propre réseau.

http://www.net-tech.bbn.com/sbgp/sbgp-index.html

Nicolas Jombart <Nicolas.Jombart@hsc-labs.com>, obscurity officer.

Commentaires

1. Le lundi, 5 août 2019, 12:11 par Jacquetta

Amazing! Its genuiinely remarkable post, I have goot much clear idea regarding from this article.

2. Le vendredi, 23 août 2019, 05:33 par sex

Good replies in return of this query with genuine
arguments and explaining the whole thing regarding that.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : http://blog.tools-fm.com/index.php?trackback/16

Fil des commentaires de ce billet