La table de filtrage.
C'est la table qui va permettre de filtrer tous les paquets qui entrent et
sortent de notre machine. Il n'y a ici aucune modification de ces paquets, ils
seront comparés à des critères définis dans la table Filter. Dans notre cas, il peut se passer deux choses différentes:
 | Un paquet qui entre est destiné à un processus de l'hôte (serveur HTTP,
FTP...). |
 | Un paquet qui entre est destiné à un autre réseau, c'est alors une
fonction de routage. |
 |
Un paquet entre dans notre machine. Peu importe par quelle interface il
entre, il peut venir aussi bien du réseau local que de l'Internet. Il
passe d'abord par la fonction de décision de routage. C'est elle qui va
déterminer si le paquet est destiné à un processus local de l'hôte ou
à un hôte sur un autre réseau.
 | Si le paquet est destiné à l'hôte local:
 | Il traverse la chaîne INPUT |
 | S'il n'est pas rejeté, il est transmis au processus impliqué.
Ce processus va donc le traiter et éventuellement émettre un
nouveau paquet en réponse. |
 | Ce nouveau paquet traverse la chaîne OUTPUT |
 | S'il n'est pas rejeté, il va vers la sortie. |
|
 | Si le paquet est destiné à un hôte d'un autre réseau:
 | Il traverse la chaîne FORWARD. |
 | S'il n'est pas rejeté, il poursuit alors sa route. |
|
|
Une autre façon de représenter graphiquement tout ça serait la
suivante :

La chaîne INPUT sera raccrochée au "hook" NF_IP_LOCAL_IN
la chaîne OUTPUT au "hook" NF_IP_LOCAL_OUT
et la chaîne FORWARD à NF_IP_FORWARD.
Rappel d'avertissement important:
Pour ceux qui ont travaillé avec IPchains, notez que la démarche est ici
différente et ça va peut-être vous poser pas mal de problèmes...
Avec IPChains...
TOUS les paquets entrants passaient par les chaînes INPUT
qu'ils soient destinés à un process local où au routage
TOUS les paquets sortants passaient par la chaîne OUTPUT, qu'ils
soient issus d'un process local ou destinés au routage. |
|
Avec IPtables...
SEULS les paquets destinés à un process local traversent la chaîne
INPUT
SEULS les paquets issus d'un process local traversent la chaîne OUTPUT
SEULS les paquets destinés au routage traversent la chaîne FORWARD |
L'illustration ci-dessus le montre bien, et ceci va conduire à d'énormes erreurs, si l'on se contente de traduire les
anciennes règles IPChains en règles IPTables, sans précautions
particulières.
Vous ne me croyez pas ?
Alors, avant d'aller plus loin, faites la manip suivante. Sur votre passerelle Linux 2.4.x:
Initialisation de Netfilter.
Mise en place de Masquerade
 | Tapez maintenant les commandes suivantes:
 | iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE |
Où ppp0 représente l'interface connectée à l'Internet. Remplacez
éventuellement, si votre configuration est différente. Ceci signifie en
gros: Tout ce qui sort du routage (-A POSTROUTING) et qui doit passer vers
l'Internet (-o ppp0) doit subir un masquage d'adresse (-j MASQUERADE)
 | echo 1 > /proc/sys/net/ipv4/ip_forward |
Ceci pour être certain que votre noyau autorise le routage. Vous n'en
avez pas besoin, si votre machine est configurée par défaut pour assurer
le routage. |
Voilà. Votre passerelle entre le réseau privé et l'Internet doit être
opérationnelle.
 | Vérifiez que, depuis votre passerelle Linux, vous avez bien accès au
Net. |
 | Vérifiez que, depuis un poste de votre réseau privé, vous avez bien
accès au Net. |
Attention, dans cet état, vous n'avez
rigoureusement aucune défense contre d'éventuelles intrusions ! Passez
rapidement à la suite.
Et maintenant, la manip décisive...
Pour bien montrer que les chaînes INPUT et OUTPUT n'interviennent pas dans
le routage, nous allons tout simplement leur mettre DROP comme règle par
défaut. Attention, il faut que vos clients utilisent un DNS situé ailleurs que
sur votre passerelle Linux, sinon, ça ne fonctionnera pas à cause du DNS.
 | Tapez les commandes suivantes:
 | iptables -P INPUT DROP |
 | iptables -P OUTUT DROP |
 | iptables -L (pour vérifier que INPUT et OUTPUT "droppent"
bien tout ce qui passe).
|
|
 | Vérifiez que, depuis votre passerelle Linux, vous n'avez plus accès au
Net (ni à votre réseau privé d'ailleurs). |
 | Vérifiez que, depuis un poste de votre réseau privé, vous avez toujours
l'accès au Net. |
Convaincu ? INPUT et OUTPUT n'interviennent absolument pas dans le
routage.
Toutes les règles que vous pourrez y mettre ne concerneront que la sécurité
de la passerelle elle-même, mais pas de votre réseau privé.


|