Chapitre 4. Mise en place du filtrage IP

Table des matières

Quelques précisions
Où se situera le filtrage?
Des règles, des chaînes, et des cibles
Les chaînes de la table filter
Les chaines utilisateurs
Prise en main de NetFilter
Les principales commandes
Les principales options

Quelques précisions

Où se situera le filtrage?

Emplacement du filtrage

Figure 4.1. Emplacement du filtrage

Le filtrage sera mis en place sur la machine hôte, c'est à dire qu'on contrôlera tous ce qui passera entre l'interface réseau de la machine hôte, et celle de la machine virtuelle.

Des règles, des chaînes, et des cibles

Netfilter peut intervenir en cinq endroits du système de gestion de la pile TCP/IP : Prerouting, Input, Forward, Output et Postrouting. Pour chacun de ces points, Netfilter associe une chaîne. Une chaîne est un ensemble de règles du type : si <condition> alors <action>, concernant les paquets IP. En fonction des différentes règles de la chaîne, Netfilter pourra décider que faire du paquet IP : le laisser passer, le supprimer ou le modifier.

Les règles, comme leur nom l'indique, sont une série de critères auquel doivent ou non répondre les paquets. Si le paquet réseau ressemble à l'un ou l'autre des critères, alors la règle est appliquée. Les différentes règles d'une chaînes sont appliquées les unes à la suite des autres. Les critères peuvent être multiples :

  • Interface source ou destination ;

  • Adresse IP source ou de destination ;

  • Port source ou de destination ;

  • Type de trame ;

  • Nombre de paquets ;

  • etc.

Il peut y avoir autant de règles que l'on veut dans une chaîne, mais il est intéressant de limiter au maximum leur nombre, afin d'avoir une vue claire et précise de notre système de filtrage.

A chaque règle est associée une action (ou cible dans le langage Netfilter) à effectuer si la règle doit s'appliquer. C'est là que Netfilter agit, qu'il fait quelque chose avec le paquet réseau.

Les chaînes de la table filter

Comme nous l'avons vu précédemment (voir la section intitulée « La table Filter »), la table Filter travaille sur trois chaînes principales : Input, Output et Forward.

  • INPUT : Les paquets sont filtrés lorsqu'ils arrivent sur l'interface réseau, et ceci dans les deux sens.

    La chaîne INPUT

    Figure 4.2. La chaîne INPUT

  • OUTPUT : Les paquets sont filtrés lorsqu'ils sortent de l'interface réseau, et ceci dans les deux sens.

    La chaîne OUTPUT

    Figure 4.3. La chaîne OUTPUT

  • FORWARD : Les paquets sont filtrés lorsqu'ils traversent la machine (il peut s'agir de filtre en entrée d'interface, comme en sortie d'interface).

    La chaîne FORWARD

    Figure 4.4. La chaîne FORWARD

Les chaines utilisateurs

Il est possible à l'utilisateur, au root pour être précis, de créer ses propres chaînes. Ce sont les chaînes utilisateurs. Elles peuvent être utilisées par une chaîne en particulier ou être appelées par plusieurs chaînes.

Les principales cibles utilisables dans les chaînes utilisateurs sont :

  • ACCEPT : la cible ACCEPT permet, lorsqu'elle est appliquée à une règle, d'accepter les paquets qui correspondent à cette règle.

    La cible ACCEPT

    Figure 4.5. La cible ACCEPT

  • REJECT : la cible REJECT permet, lorsqu'elle est appliquée à une règle, de refuser un paquet, mais en avertissant le demandeur que sa demande de connexion lui a été refusée en lui envoyant un paquet RESET (RST).

    La cible REJECT

    Figure 4.6. La cible REJECT

  • DROP : la cible DROP permet, lorsqu'elle est appliquée à une règle, de refuser un paquet, mais sans avertir le demandeur que sa demande de connexion lui a été refusée.

    La cible DROP

    Figure 4.7. La cible DROP

  • RETURN : la cible RETURN marque la fin du sous-programme courant ou application de la politique par défaut pour INPUT , OUTPUT et FORWARD,

  • LOG : LOG journalise le paquet,

  • QUEUE : le paquet est redirigé vers une application utilisateur.