Distinguer les tables et les règles
Objectif : Identifier la table et l’action adaptées à un filtrage courant.
Quand un paquet arrive sur un serveur, il peut être accepté, rejeté ou transformé avant de poursuivre son trajet. Pour choisir le bon réglage, vous devez distinguer le type de traitement demandé : filtrer le trafic, modifier certains éléments réseau ou adapter des informations de paquet. Cette leçon vous aide à comprendre où se situe chaque décision, sans appliquer de changement au pare-feu.
Dans les leçons précédentes, vous avez suivi le trajet d’un paquet et associé ce trajet aux chaînes INPUT, OUTPUT et FORWARD. Une table regroupe des traitements du même type ; une chaîne est un point de passage où des règles peuvent examiner le paquet. Une règle décrit une décision ou une opération à effectuer lorsque ses critères correspondent. Ici, nous nous concentrons sur le rôle des tables et sur les actions de filtrage.
Choisir la table selon le traitement
La table filter sert à décider si le trafic est autorisé ou bloqué. C’est la table centrale pour les règles courantes de filtrage d’un serveur. Si votre objectif est, par exemple, de refuser un accès correspondant à des critères précis, c’est généralement cette table que vous examinez. Elle ne sert pas à réécrire l’adresse de destination : ce besoin relève d’un autre type de traitement.
La table nat est dédiée à la traduction d’adresses réseau. Elle intervient notamment lorsqu’un équipement doit faire correspondre une adresse ou un port à une autre destination, comme dans certains scénarios de partage ou de redirection. Elle ne remplace pas filter : la traduction et la décision d’autoriser ou non le trafic sont deux responsabilités distinctes.
La table mangle permet de modifier des champs ou des marques associés aux paquets pour des traitements réseau particuliers. Vous la rencontrerez dans des configurations avancées, par exemple lorsque le routage dépend d’une marque ou qu’un traitement spécialisé est requis. Pour le projet fil rouge, vous n’avez pas besoin de l’utiliser : le besoin étudié est le filtrage du trafic destiné au serveur.
| Table | Rôle principal | À choisir lorsque… |
|---|---|---|
| filter | Décider si le trafic est autorisé ou bloqué. | Vous contrôlez les accès au serveur. |
| nat | Traduire des adresses ou des ports. | Vous devez modifier la correspondance entre une destination et une autre. |
| mangle | Adapter des champs ou des marques pour un traitement spécialisé. | Vous configurez un traitement réseau avancé. |
Comprendre les actions de filtrage
Dans une règle de filtrage, l’action indique le résultat appliqué lorsqu’un paquet correspond aux critères. ACCEPT autorise son passage. DROP l’écarte sans envoyer de réponse au client ; celui-ci peut donc attendre avant de constater un délai d’expiration. REJECT bloque également le trafic, mais renvoie une réponse de refus, ce qui permet généralement au client de constater plus rapidement que l’accès est refusé.
Le choix entre DROP et REJECT dépend du comportement recherché et du contexte. Un refus explicite facilite souvent le diagnostic d’un accès non autorisé ou mal configuré ; un rejet silencieux ne confirme pas directement au client que le serveur a reçu sa demande. Aucun de ces choix ne remplace une règle adaptée aux critères du trafic, que vous étudierez dans les leçons consacrées à la construction des règles.
Lire une commande sans modifier le pare-feu
La commande suivante vérifie si une règle exacte existe déjà dans la chaîne INPUT de la table filter. L’option -C effectue une vérification : elle ne crée ni ne supprime de règle. Dans ce cas, la règle recherchée autoriserait tout paquet examiné par cette chaîne ; l’exemple sert uniquement à repérer les éléments de la commande, et ne constitue pas une recommandation de configuration.
sudo iptables -t filter -C INPUT -j ACCEPTSi la règle exacte existe, la commande se termine avec un code de retour nul. Sinon, elle signale que la règle n’a pas été trouvée. La configuration du pare-feu n’est pas modifiée.Dans cette commande, -t filter désigne la table, -C demande une vérification, et INPUT précise la chaîne concernée. -j ACCEPT indique l’action associée à la règle recherchée. Vous pouvez ainsi lire une règle en séparant son emplacement, ses critères et son action, sans confondre le rôle de la table avec celui de la chaîne.
À retenir
- Choisissez filter pour décider si le trafic passe ou est bloqué.
- Réservez nat à la traduction d’adresses ou de ports.
- Utilisez mangle pour des traitements spécialisés sur les champs ou les marques des paquets.
- ACCEPT autorise, DROP bloque sans réponse et REJECT bloque en signalant le refus.
- La table, la chaîne, les critères et l’action remplissent des rôles distincts dans une règle.
Dans la prochaine leçon, vous inventorierez les services exposés afin de déterminer quels accès le serveur web doit réellement recevoir.