Liens conseillés

Netfilter & Iptables

1- Qu'est-ce que Netfilter ?

Netfilter est le nouveau firewall intégré au noyau 2.4.x de Linux. C'est le successeur d'Ipchains. Il permet de firewaller biensûr, mais aussi de faire du NAT (Network Address Translation, en remplacement d'IPMASQADM) et toutes sortes de modifications sur les paquets (mangling). Netfilter à été créé pour palier aux nombreuses carrences d'Ipchains qui n'était pas à l'aise avec les packets fragmentés et sourtout qui n'était pas statefull (il n'avait pas notion de l'état des connexions TCP). On va expliquer aussi ce dernier point dans les lignes avenir :). L'autre intéret de Netfilter est qu'il est très modulaire ce qui permet à de nombreux développeurs de créer des sortes de plug-ins qui permettre d'étendre de manière impressionnante ses capacités. Il existe tellement de modules qu'on ne peut plus simplement parler de Netfilter comme d'un simple filtre à packets, c'est un système complet de routage, filtrage, proxy, repartition de charge (couplé aux autres fonctionnalités du noyau Linux) qui est de loin supérieur à une grande majorité de firewalls commerciaux dédiés (CheckPoint, Nokia, Nortel etc ... ). Malgrès sa quantité impressionnante de fonctionnalités, il a connu beaucoup moins de failles de sécurité que plusieurs de ses collèges. Ce n'est pas le seul produit efficace qu'on puisse trouver, il y a aussi l'excellent IpFilter (et Pf son clone un peu jeune sur OpenBSD 3.0) qui permet de faire du NAT et qui est lui aussi statefull. Il a moins de fonctionnalités que Netfilter mais il represente lui aussi une solution très complète lorsqu'il est utilisé en complément de Altq (solution de QoS et de Load Balancing pour *BSD).

2- Installation et configuration

On a présenté rapidement Netfilter; nous allons donc pouvoir commencer à tester ses différentes fonctionnalités. Les notions associées à celles-ci (NAT, Masquerading, state maching ... ) seront décrites au fur et à mesure du document ... On va commencer par installer iptables ( la partie userland de Netfilter) puis on va configurer Linux et son noyau pour pouvoir router les paquets et utiliser Netfilter, ensuite on abordera ses fonctions de base. Nous réaliserons ensuite une configuration complète de firewall qu'on pourrait trouver en production. La dernière partie nous familiarisera avec quelques uns des modules supplémentaires disponibles.