Netfilter
Netfilter : sous-système du noyau Linux qui fait tout le travail du pare-feu, de la traduction d'adresses (NAT) et du suivi de connexion. Il place des crochets (hooks) sur le trajet des paquets : prerouting (tout ce qui arrive, avant la décision de routage), input (ce qui est destiné à un processus local), forward (ce qui traverse la machine quand elle route), output (ce qu'émettent les processus locaux) et postrouting (tout ce qui sort). Chaque règle est rattachée à l'un d'eux.
nft, iptables, ufw ou firewalld ne filtrent rien eux-mêmes : ils écrivent des règles dans Netfilter, puis se terminent. C'est pourquoi systemctl status nftables affiche active (exited), et pourquoi une règle ajoutée à chaud disparaît au redémarrage si elle n'est pas dans un fichier. Plusieurs chaînes peuvent partager un crochet ; le noyau les parcourt par priorité, un accept laisse le paquet continuer vers la chaîne suivante, un drop est définitif.
Netfilter explique aussi des pièges classiques. Docker publie un port par une traduction au crochet prerouting : le paquet prend ensuite forward, pas input, et échappe aux règles d'ufw. Le suivi de connexion a une table bornée (net.netfilter.nf_conntrack_max) qui, pleine, fait jeter les nouveaux flux. Et sur un nœud Kubernetes, kube-proxy y écrit des milliers de règles pour les Services.
Dans les cours
- Linux : administration système, leçon 8 : Le pare-feu de l'hôte
- Linux : administration système, leçon 3 : Le noyau : modules et paramètres
- Le modèle TCP/IP, leçon 7 : La traduction d'adresses (NAT)
- Kubernetes : réseau et exposition, leçon 4 : kube-proxy et ses alternatives