Comme vous l'avez vu, les paquets peuvent prendre différents états à l'intérieur du noyau, en fonction du protocole considéré. Cependant, à l'extérieur du noyau, seuls 4 états sont disponibles, comme expliqué précédemment. Ces états peuvent être associés à la correspondance state qui est capable de sélectionner les paquets à partir de l'état actuel du traçage de connexion. Les états valides sont NEW, ESTABLISHED, RELATED et INVALID. Le tableau suivant décrit brièvement chacun d'eux.
Tableau 7.1. États de l'espace utilisateur
État | Explication |
---|---|
NEW | L'état NEW indique que le paquet est le
premier de la connexion. Cela signifie que, pour une connexion
donnée, le premier paquet que le module conntrack aperçoit est
apparié. Par exemple, si on rencontre un paquet SYN et que c'est le premier paquet d'une
connexion, on établit la correspondance. Cependant, le paquet peut
aussi ne pas être de type SYN et
considéré tout de même dans l'état NEW. Ceci peut s'avérer
problématique dans certaines situations, mais peut aussi être
extrêmement utile quand on doit récupérer les connexions perdues
issues d'autres pare-feux, ou quand une connexion a dépassé son
temps de survie, mais n'est pas réellement fermée. |
ESTABLISHED | L'état ESTABLISHED résulte de
l'observation d'un trafic dans les deux sens, et donc établit une
correspondance avec ce type de paquet. Les connexions établies
(ESTABLISHED) sont
particulièrement simple à comprendre. La seule condition pour
entrer dans l'état ESTABLISHED est qu'un hôte ayant
envoyé un paquet reçoive plus tard une réponse de l'hôte
destinataire de ce paquet. A la réception du paquet de réponse,
l'état NEW est
transformé en ESTABLISHED. Les messages
d'erreur et de redirection ICMP
peuvent aussi être considérés comme ESTABLISHED, si on a généré un
paquet qui en retour génère le message ICMP . |
RELATED | L'état RELATED est un des états les plus
astucieux. Une connexion est considérée comme RELATED quand elle est liée à une
autre connexion déjà établie, donc dans l'état ESTABLISHED. Ainsi, pour qu'une
connexion soit identifiée comme RELATED, on doit tout d'abord
disposer d'une autre connexion dans l'état ESTABLISHED. Cette connexion
ESTABLISHED crée
alors une connexion extérieure à la connexion principale. La
nouvelle connexion créée est donc considérée comme RELATED, si le module conntrack
l'identifie comme en relation avec l'autre. Les exemples suivants
peuvent être considérés comme RELATED : les connexions
FTP-data sont liées au port
FTP control , et les connexions
DCC interviennent par
l'intermédiaire de IRC . Ceci permet
d'utiliser des réponses ICMP , des
transferts FTP et des DCC pour travailler convenablement à travers un
pare-feu. Remarquez que la plupart des protocoles TCP et certains protocoles UDP qui reposent sur ce mécanisme sont
particulièrement complexes. Ils envoient des informations de
connexion à l'intérieur des données utiles, qui par conséquent
nécessitent des modules assistant (helper) spécifiques pour être
correctement interprétées. |
INVALID | L'état INVALID signifie que le paquet ne
peut pas être identifié ou qu'il n'a aucun état connu. Il peut y
avoir plusieurs raisons à cela : par exemple, un système en
dépassement de mémoire ou des messages d'erreur ICMP ne répondant à aucune connexion connue.
Généralement, il est préférable de supprimer tout ce qui se trouve
dans cet état. |
UNTRACKED | C'est l'état UNTRACKED. En bref, si un paquet est marqué dans la table raw avec la cible NOTRACK, ce paquet sera vu comme UNTRACKED dans la machine d'état. Ceci indique aussi que toutes les connexions RELATED ne seront pas vues, ainsi certaines précautions doivent être prises lorsque vous utilisez cet état car la machine d'état ne sera pas capable de voir les messages ICMP, etc. |
Ces états peuvent être utilisés avec la correspondance --state pour sélectionner les paquets à partir de leur état de traçage de connexion. C'est ce qui rend la machine d'état si puissante et efficace pour votre pare-feu. Auparavant, nous devions souvent ouvrir tous les ports supérieurs à 1024 pour permettre le trafic inverse à destination de notre réseau local. Avec la machine d'état à l'oeuvre, ce n'est plus nécessaire, puisqu'il est possible d'ouvrir le pare-feu pour les réponses sans l'ouvrir pour le reste du trafic.