Mettre en place un système de filtrage

Fonctionnement d'un système de filtrage

Le principe de base d'un système de filtrage est de décider si un paquet réseau (souvent un paquet IP) doit traverser le filtre ou s'il doit être bloqué. Cette décision est prise en tenant compte de certaines informations du paquet, comme l'adresse IP source et l'adresse IP destination, le protocole utilisé ou les ports source et destination.

Généralités

La mise en place d'un système de règles de filtrage est une opération délicate, qui peut vite devenir complexe, mais qui peut être rendue plus simple en opérant avec méthodologie. Voici donc quelques conseils pour vous aider à mettre en place vos règles de filtrage en évitant les pièges courants:

Comparaison avec d'autres systèmes de filtrage

Actuellement (noyau 2.4.11), un firewall basé sur une installation de GNU/Linux ne peut pas être considéré comme aussi fiable que les meilleures solution << professionelle >> ou qu'une solution basée sur un système de filtrage tel qu' ipfilter: ces solutions utilisent souvent des moteurs de filtrage plus évolués que le noyau Linux, ce qui leur permet d'intercepter et de bloquer un plus grand nombre d'attaques et de paquets anormaux.

Les solutions << hardware >>[1] présentent généralement l'avantage supplémentaire d'être dédiées et épurées de tout ce qui est inutile au travail du firewall. Cela permet d'éviter bon nombre de failles de sécurité. Il est bien entendu possible de faire la même chose avec une installation de GNU/Linux, mais cela demande un temps et des compétences non négligeables.

Certaines solutions proposent en outre une interface de configuration qui peut simplifier la mise en oeuvre des règles de filtrage, ce qui peut contribuer à éviter les erreurs de configuration.

Il ne sera fait ici aucune recommandation pour une solution << professionelle >>dans la mesure où l'auteur travaille pour l'un des concurrents.

Mettre en place un système de filtrage sous Linux

L'objectif n'est pas ici d'expliquer la syntaxe des outils de filtrage, mais de vous aider à mettre en place de "bonnes règles", ou du moins des règles pas trop mauvaises...

IPChains et NetFilter proposent une gestion des règles de filtrage par tables, et vous permettent de créer vos propres tables. Cette possibilité vous permet d'y gagner en clarté et en performances. Vous pouvez par exemple définir une table qui correspond aux règles de filtrage des paquets "interieur vers extérieur", puis envoyer à cette règle tous les paquets correspondants.

Noyaux 2.4.x: Netfilter

Netfilter est un système de filtrage à états[2]: il tient à jour une table des connexions en cours, et peut ainsi savoir si un paquet qui prétend faire partie d'une connexion existante fait vraiment partie d'une connexion validée par le filtre.

Dans notre exemple précédent, il suffit alors d'autoriser les paquets 'nouvelle connexion' depuis la machine interne (port éphémère) vers n'importe quel serveur, mais en précisant au filtre de maintenir l'état des connexions (option -m state --STATE NEW d' iptables), et d'autoriser tout paquet faisant partie d'une connexion existante (option -m state --STATE ESTABLISHED d'iptables).

Notes

[1]

Toute solution de firewall repose en partie sur du logiciel. On appelle << hardware >> une solution intégrant le matériel et le logiciel.

[2]

Communément appelé "filtrage Stateful".