Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
openbsd:parefeux_redondant [2008/04/23 20:59]
ros created
openbsd:parefeux_redondant [2010/01/12 13:29] (current)
Line 1: Line 1:
 +====== Firewall redondant avec OpenBSD et PF en mode bridge et RSTP ======
 +
 +Ce document est une traduction de l'​espagnol de la présentation ​
 +
 +réalisée par Jordi Espasa Clofent lors du [[http://​bcn.bsdcon.net|Barcelona BSDCon 2008]].
 +
 +
 +Document original : [ [[http://​www.bebik.net/​code/​bsdcon-jordi-espasa.pdf|PDF]] | [[http://​www.bebik.net/​code/​bsdcon-jordi-espasa.ppt|PPT]] ]
 +
 +
 +===== Le problème / Candidats=====
 +Trouver une solution de pare-feux répondant aux critères suivants, avec les choix possibles.
 +
 +  * Évolutivif : une bonne implémentation de TCP/IP
 +  * Ne pas altérer la topologie du réseau : Bridge
 +  * Basée sur des logiciels libres : *BSD, GNU/Linux
 +  * Redondante : (R)STP
 +  * Simple : PF, IPFW
 +  * Puissant : PF, IPFW
 +
 +
 +===== Matrice de choix =====
 +
 +La table ci-dessous évalue par critére la satisfaction apportée par chaque solution retenue.
 +
 +Un certains nombre de ses critères sont bien entendu ''​subjectifs''​
 +
 +
 +^Critères ^OpenBSD + PF ^ FreeBSD + PF ^ FreeBSD + IPFW ^GNU/Linux + iptables ^
 +^ Puissance |  :-)  |  :-)  |  :-|  |  :-)  |
 +^ Simplicité |  :-)  |  :-)  |  :-)  |  :-|  |
 +^ Pile TCP/IP |  :-|  |  :-)  |  :-)  |  :-)  |
 +^ Solidité |  :-)  |  :-|  |  :-)  |  :-)  |
 +^ Support RSTP |  :-)  |  :-)  |  :-)  |  :-(  |
 +
 +
 +===== Choix retenu =====
 +Le choix retenu à été OpenBSD avec Packet Filter pour les raisons suivantes :
 +  * sécurité apportée par OpenBSD (audit constant du code, peu de vieux bugs)
 +  * support de RSTP depuis la v4.1
 +  * Bons résultats dans des test de perf réalisés au moyen de iperf et netperf
 +
 +===== Redondance en mode bridge : RSTP =====
 +
 +- redondance IP : CARP
 +- redondance en mode bridge : STCP/RSTCP
 +- synchro entre noeud atif/pasif : pfsync
 +
 +===== Choix du matériel =====
 +
 +
 +==== CPU : mono processeur ====
 +
 +Le choix du mono processeur est motivé par le mauvaise support du multiprocesseur par OpenBSD et donc par PF.
 +
 +==== Mémoire : L'​élément clé ====
 +La majorité des traitements effectués par PF se déroulent en mémoire. On doit considérer avec soin cet élément.
 +
 +==== Disque dur ====
 +Sauf si nous souhaitons effectuer des traces, le disque sera un élément sous employé.
 +On peut même envisager de le remplacer par une carte flash.
 +
 +==== Carte réseau ====
 +Les drivers suivants sont supportés par OpenBSD : 
 +  * em(4) : Intel(R) PRO/1000 Gigabit Ethernet adapter drive
 +  * bge(4): Broadcom BCM570x/​5714/​5721/​5750/​5751/​5752/​5789 PCI Gigabit Ethernet adapter driver
 +  * sk(4) : SysKonnect SK-984x and SK-982x PCI Gigabit Ethernet adapter driver
 +
 +Malgré la forte préférence de Théo pour sk, notre choix se portera sur em(4).
 +
 +==== IRQ / Bus de données ====
 +Afin que notre architecture soit cohérente, nous optons pour une carte GB ethernet sur PCI Express
 +
 +
 +===== Configuration des interfaces réseau =====
 +
 +  # Identifier et monter les cartes réseau
 +  $ echo "​up"​ > /​etc/​hostname.em0
 +  $ echo "​up"​ > /​etc/​hostname.em1
 +
 +
 +  $cat /​etc/​bridgename.bridge0
 +  #​Configuration du bridge
 +  add em1
 +  add em0
 +  -learn em1
 +  -learn em0
 +  stp em1 # requis sinon pas de stp
 +  stp em0 # requis sinon pas de stp
 +  up
 +
 +
 +===== Configuration de la redondance : maitre =====
 +  # Configuration de la machine maitre
 +  $ ifconfig em1 10.10.10.1 netmask 255.255.255.0
 +  $ ifconfig pfsync0 syncdev em1
 +  $ ifconfig pfsync0 up
 +
 +  # Ajout des valeurs de manière permanente
 +  $ cat /​etc/​hostname.em3
 +  inet 10.10.10.1 255.255.255.255.0 NONE
 +
 +  # Montage de la l'​interface réseau
 +  $cat /​et/​hostname.pfsync0
 +  up syncdev em3
 +
 +===== Configuration de la redondance : esclave =====
 +
 +
 +  # Configuration de la machine esclave
 +  $ ifconfig em1 10.10.10.2 netmask 255.255.255.0
 +  $ ifconfig pfsync0 syncdev em1
 +  $ ifconfig pfsync0 up
 +
 +  # Ajout des valeurs de manière permanente
 +  $ cat /​etc/​hostname.em3
 +  inet 10.10.10.2 255.255.255.255.0 NONE
 +
 +  # Montage de la l'​interface réseau
 +  $cat /​et/​hostname.pfsync0
 +  up syncdev em3
 +
 +
 +
 +
 +===== Outils de motorisations du pare feux  =====
 +
 +  * Les outils PF
 +    * pfstats
 +    * pftop
 +  * D'​autres outils
 +    * [[http://​www.xs4all.nl/​~wpd/​symon/​|Symon]]
 +    * Les classique top, vmstat,​ps....
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== Autres liens (extra-ball) =====
 +
 +Deux articles sur undeadly aka "The OpenBSD journal"​
 +  * [[http://​undeadly.org/​cgi?​action=article&​sid=20060927091645| PF: Firewall Ruleset Optimization]]
 +  * [[http://​undeadly.org/​cgi?​action=article&​sid=20060928081238|Testing Your Firewall]]
  
openbsd/parefeux_redondant.txt · Last modified: 2010/01/12 13:29 (external edit)