Mise en place d’une Zone-based policy firewall

Publié le 03 avril 2012 par Lolokai @lolokai

Dans cet article nous allons voir comment sécuriser notre réseau, en filtrant le trafic sur le réseau grâce à ZPF.

Pré-requis

  • Connaitre le fonctionnement et les différents modes d’IOS.
  • Avoir des bases en réseau (IP, masque de sous réseau…)
  • Connaitre les bases des ACL (voir article ici.).

Qu’est-ce que ZPF ?

ZPF permettant de filtrer nos communications en nous basant sur des zones, en effet lors de l’implémentation de ZPF nous allons segmenter notre réseau en plusieurs zones.
Puis, nous allons définir la politique à appliquer entre chaque zones c’est-à-dire qu’on va spécifier le trafic autorisé ou interdit entre la zone A et la zone B mais aussi le trafic entre B et A.

ZPF présente plusieurs avantages :

  • ZPF ne dépend pas des interfaces
  • Nous permet de visualiser notre réseau facilement grâce aux différentes zones.
  • Utilise le C3PL (Cisco Common Classification Policy Language) ce qui rend la configuration de notre politique facile à comprendre et à débugger.
ATTENTION : Le traffic au sein d’une même zone n’est pas filtré par nos règles ZPF


Dans cet exemple nous avons 2 zones, une qui définit l’intérieur de notre réseau et l’autre l’extérieur du réseau.

Voici un exemple un peu plus complexe.

Les actions de ZPF:

Lors de l’analyse du trafic, ZPF peut appliquer 3 actions :

  • Inspect (inspecter le paquet)
  • Drop (supprimer le paquet)
  • Pass (autoriser le paquet)

Configurer ZPF

La configuration de ZPF se fait en plusieurs étapes :

  • Création des zones.
  • Création d’une class-map.
  • Création d’une policy-map.
  • Création des zones paire.
  • Affecter les interfaces à une zone.

Création des zones

Pour les besoins de l’article j’ai réalisé une simulation sous packet tracer. Voilà mon réseau :

Mon réseau est séparé en deux zones, en rouge la zone interne et en bleu la zone externe.
Nous allons donc configurer ZPF sur le router R3 :

R3(config)#zone security INTERNE
R3(config-sec-zone)#exit
R3(config)#zone security EXTERNE
R3(config-sec-zone)#exit

Ces commandes vont nous permettre de créer nos zones, nous avons donc nos deux zones créées.

Création de la class-map

La class-map va nous permettre de spécifier quel trafic nous allons analyser. Nous pouvons analyser le trafic selon le protocole utilisé ( TCP, UDP, ICMP…), mais aussi en fonction d’une ACL.
Pour mon exemple je vais créer une ACL étendue qui va spécifier le trafic sortant de mon réseau interne (192.168.3.0/24) vers tous les autres réseaux.

R3(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 any

Voilà mon ACL est créée je vais donc pouvoir créer ma class-map :

R3(config)#class-map type inspect INTERNE-EXTERNE-CMAP
R3(config-cmap)#match access-group 101
R3(config-cmap)#match protocol ftp

Ces commandes vont me permettrent de créer ma class-map nommer INTERNE-EXTERNE-CMAP et spécifier qu’il faut analyser le trafic correspondant à mon ACL précédemment créée et le trafic correspondant au protocole ftp.
Voilà notre class-map est prête, nous pouvons bien sûr en créer d’autre pour spécifier d’autres types de trafic.

Création de la policy-map

Nous allons maintenant créer notre policy-map qui va contenir notre class-map et préciser quelle action appliquer à chaque class-map.

R3(config)#policy-map type inspect INTERNE-EXTERNE-PMAP
R3(config-pmap)#class INTERNE-EXTERNE-CMAP
R3(config-pmap-c)#inspect

Ces commandes nous permettent de créer notre policy-map nommer INTERNE-EXTERNE-PMAP, et qui va définir l’action inspect pour notre class-map précédemment créer (nous pouvons bien sûr utiliser une autre des 3 actions possibles).

Création de la zone paire

Nous allons créer une zone-pair qui va nous permettre de définir une zone source et une zone de destination sur lequel nous allons appliquer notre policy-map.

R3(config)#zone-pair security INTERNE-2-EXTERNE source INTERNE destination EXTERNE
R3(config-sec-zone-pair)#service-policy type inspect INTERNE-EXTERNE-PMAP

Ces commandes nous permettent de créer une zone paire nommer INTERNE-2-EXTERNE qui a pour zone source INTERNE et destination EXTERNE c’est-à-dire que cette zone-pair spécifie la politique à appliquer pour le trafic circulant de la zone INTERNE vers la zone EXTERNE, ce trafic sera alors soumis aux politiques définies dans notre policy-map.

Affectation des interfaces a une zone

Nous allons maintenant voir notre dernière étape qui consiste à affecter nos interfaces à une zone.

R3(config)#interface fastEthernet 0/1
R3(config-if)#zone-member security INTERNE
R3(config)#interface se0/0/1
R3(config-if)#zone-member security EXTERNE

Ces commandes nous permettent d’affecter l’interface fastEthernet 0/1 à la zone INTERNE et l’interface se0/0/1 à la zone EXTERNE.
Voilà notre configuration de ZPF est fonctionnelle.

Conclusion

Cet article se termine et nous avons vu ce qu’est ZPF et comment configurer ZPF sur nos équipements Cisco. Cette nouvelle manière de filtrer nos communications et avantageuse dans la mesure où nous n’avons plus à segmenter notre réseau selon des interfaces physiques mais selon un raisonnement logique basées sur des zones.
Avez-vous des questions? Utilisez-vous d’autres manières de filtrer vos communications ?