Pare-feu à état
Pare-feu à état (en anglais stateful firewall) : pare-feu qui suit chaque connexion dans une table et juge les paquets selon l'état du flux auquel ils appartiennent (nouveau, établi, lié, invalide), et non chacun isolément.
Sous Linux, c'est Netfilter qui tient ce suivi de connexion, chaque flux étant identifié par son quintuplet. Une politique d'hôte bien écrite commence par accepter established et related, jeter invalid, puis ne décide que des paquets new : les réponses aux connexions ouvertes par la machine passent seules, et l'on n'écrit de règles que pour ce que l'on accepte de recevoir. En nftables : ct state vmap { established : accept, related : accept, invalid : drop }. UDP est suivi aussi, le noyau simulant une connexion avec un délai d'expiration. Un pare-feu sans état, à l'inverse, doit ouvrir les ports de réponse imprévisibles des clients, ou accepter tout ce qui vient du port 53, ce qu'un attaquant peut forger.
La table a une taille finie (net.netfilter.nf_conntrack_max) : pleine, le noyau écrit nf_conntrack: table full, dropping packet et abandonne les nouvelles connexions, ce que les clients voient comme des délais d'attente aléatoires. Chez Scaleway, les groupes de sécurité que vous créez sont à état, mais pas le groupe automatique de la zone ni les Network ACL du VPC.
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)