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 Barcelona BSDCon 2008.

Document original : [ PDF | 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
    • Les classique top, vmstat,ps….

Autres liens (extra-ball)

Deux articles sur undeadly aka “The OpenBSD journal”

openbsd/parefeux_redondant.txt · Last modified: 2010/01/12 13:29 (external edit)