Sécurité
Pare-feuAvancé

Le filtrage réseau — iptables et nftables

Mis à jour le 2 juillet 2026#iptables#nftables#netfilter#pare-feu#conntrack

Netfilter, iptables, nftables

Sous Linux, le filtrage est assuré par le framework Netfilter dans le noyau. On le pilote historiquement avec iptables, aujourd'hui remplacé par nftables (plus simple et unifié). Des surcouches comme ufw (Ubuntu) ou firewalld (RHEL) simplifient encore la configuration.

Les chaînes

Le trafic traverse des chaînes selon sa direction :

ChaîneTrafic concerné
INPUTdestiné à la machine elle-même
OUTPUTémis par la machine
FORWARDqui traverse la machine (routage entre interfaces)

Politique par défaut : tout interdire

La bonne pratique est le deny by default : on bloque tout, puis on autorise explicitement le nécessaire.

iptables -P INPUT DROP          # politique par défaut : rejeter
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT   # autoriser la boucle locale

Le filtrage à état (conntrack)

Netfilter suit l'état des connexions (module conntrack). On autorise ainsi d'un coup tous les paquets retour d'une session déjà établie :

# Autoriser les connexions déjà établies et leurs paquets liés
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Ouvrir uniquement le SSH entrant
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Sans le suivi d'état, il faudrait ouvrir manuellement les ports de retour — bien plus fragile.

La syntaxe nftables

nftables regroupe tout dans des tables et chaînes typées :

nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input ct state established,related accept

💡 Ordre des règles = priorité : elles sont évaluées de haut en bas, la première qui correspond s'applique. Place les règles les plus spécifiques avant les règles générales, et n'oublie jamais d'autoriser lo et l'état ESTABLISHED sous peine de te couper toi-même.