Aller au contenu

Pare-feu (iptables / nftables)

Un pare-feu filtre le trafic réseau selon des règles (adresse source/destination, port, protocole, état de connexion…) pour n’autoriser que ce qui est nécessaire. Sous Linux, le filtrage se fait au niveau noyau via le sous-système Netfilter.

Historiquement l’outil de référence pour piloter Netfilter. Les règles sont organisées en tables (filter, nat, mangle) contenant des chaînes :

  • INPUT : trafic entrant destiné à la machine locale.
  • OUTPUT : trafic sortant depuis la machine locale.
  • FORWARD : trafic traversant la machine (cas d’un routeur).

Exemple de règle : n’autoriser que le SSH et le HTTPS en entrée, tout bloquer par défaut.

Fenêtre de terminal
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Successeur d’iptables (noyau ≥ 3.13, outil nft), qui remplace les quatre outils historiques (iptables, ip6tables, arptables, ebtables) par une syntaxe unique, des règles plus lisibles et de meilleures performances (une seule passe d’évaluation par paquet).

Fenêtre de terminal
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input tcp dport { 22, 443 } accept

Sur les distributions récentes (Debian 11+, Ubuntu 20.04+…), nftables est le moteur par défaut ; iptables y est souvent une couche de compatibilité (iptables-nft) traduite vers nftables en coulisses.

  • Politique par défaut restrictive (deny by default) : on bloque tout, puis on autorise explicitement ce qui est nécessaire — jamais l’inverse.
  • Stateful vs stateless : un pare-feu à états (ESTABLISHED,RELATED) autorise automatiquement les réponses à une connexion déjà initiée, sans avoir à écrire une règle symétrique.
  • Ordre des règles : la première règle qui correspond s’applique — une règle trop large placée trop tôt peut rendre les suivantes inutiles.