m0n0wall

m0n0wall (http://m0n0.ch) est un dérivé embarqué de FreeBSD spécialisé en pare-feu (firewall).

Le but premier du projet était de générer un firewall très réduit en taille (pour pouvoir facilement le faire tenir sur une mémoire Flash) et très rapide (au boot notamment). Le constat de départ est que les UNIX libres utilisent trop d’interpréteurs différents (ex.: shell, Perl, Python, PHP, …) pour
leurs scripts de démarrage (initscripts) et leur gestion. Ils ont alors décidé de n’en garder qu’un, et comme ils voulaient une interface web pour leur firewall, ils ont sélectionné PHP.
Grâce à ces deux choix, ils ont obtenu un système très économe en espace disque (de telle sorte qu’on peut le mettre sur un tout petit média selon la norme actuelle) et RAM. Ensuite, ils se sont dit[1] qu’un fichier XML serait approprié pour stocker toute la configuration. Et le résultat est qu’un seul fichier (XML) sauvegardé permet de restaurer un firewall en quelques instants, que les erreurs dans ce fichier sont faciles à trouver/éviter, et qu’on peut facilement le faire tourner depuis un média en lecture seule (read-only, comme un CD par exemple).

Associé au firewall de FreeBSD (pf), c’est probablement un ensemble de très bons choix qui mènent sans surprise à l’une des solutions de ce
genre les plus abouties[2].

[1] À tort ou à raison.
[2] IPcop, basé sur GNU/Linux, en est probablement une autre.