Page suivante Page précédente Table des matières

6. Comment les Paquets Traversent les Filtres

Le noyau contient à la base trois listes de règles dans la table `filter'; ces listes sont appelées chaînes de pare-feu ou simplement chaînes. Les trois chaînes sont nommées INPUT, OUTPUT et FORWARD.

Pour les fans de l'art ASCII, les chaînes sont arrangées comme suit : (Note : c'est un agencement très différent des noyaux 2.0 et 2.2 !)

                            _____
Entrée                     /     \       Sortie
      --> [Décision] ---->|FORWARD|----->
          [de routage]     \_____/      ^
               |                        |
               v                      ____
              ___                    /    \
             /   \                  |OUTPUT|
            |INPUT|                  \____/
             \___/                      ^
               |                        |
                ---> Processus local ---

Les trois cercles représentent les trois chaînes mentionnées ci-dessus. Lorsqu'un paquet atteint un cercle dans le diagramme, cette chaîne est examinée pour décider du sort du paquet. Si la chaîne stipule de DÉTRUIRE (`DROP') le paquet, il est supprimé ici, mais si la chaîne stipule d'ACCEPTER (`ACCEPT') le paquet, il continue sa route dans le diagramme.

Une chaîne est un liste de vérification de règles. Chaque règle énonce `si l'en-tête du paquet est comme ceci, voilà ce qu'il convient de faire du paquet'. Si une règle ne concorde pas avec le paquet, alors la règle suivante est examinée. Finalement, s'il ne reste plus de chaînes à examiner, le noyau consulte la règle par défaut de la chaîne pour prendre une décision. Dans un système sécuritaire et consciencieux, cette politique par défaut devrait DÉTRUIRE le paquet.

  1. Quand un paquet arrive (supposons par la carte Ethernet), le noyau regarde en premier sa destination : on appelle ceci le `routage'.
  2. S'il est destiné à cette machine, le paquet continue vers le bas du diagramme, vers la chaîne INPUT. S'il la traverse, les processus en attente du paquet le recevront.
  3. Autrement, si le noyau n'a pas autorisé la réexpédition (`forwarding') ou s'il ne sait pas comment réexpédier le paquet, celui-ci est détruit. Si la réexpédition est autorisée et que le paquet est destiné à une autre interface réseau (si vous en possédez une autre), il passe directement à la chaîne FORWARD dans le diagramme. S'il est accepté (`ACCEPT'), il sera envoyé.
  4. Finalement, un programme en exécution sur la machine peut aussi envoyer des paquets sur le réseau. Ces paquets iront immédiatement vers la chaîne OUTPUT : si elle l'accepte (`ACCEPT'), alors le paquet continuera vers l'interface à laquelle il est destiné.


Page suivante Page précédente Table des matières