Pare-feu moderne : nftables 25 min de lecture

nftables et filtrage stateful

Principes du filtrage

Stateful : le pare-feu suit l'etat des connexions. Une reponse a une requete sortante est automatiquement autorisee.

nftables — Syntaxe moderne

# Lister les regles
sudo nft list ruleset

# Creer une table et une chaine
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }

# Autoriser le loopback et les connexions etablies
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input ct state established,related accept

# Autoriser SSH et HTTP
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input tcp dport {80, 443} accept

# Loguer le reste
sudo nft add rule inet filter input log prefix "DROPPED: " drop

NAT (notions)

# Masquerading (partage de connexion)
sudo nft add table nat
sudo nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
sudo nft add rule nat postrouting oif eth0 masquerade
Bonne pratique : Toujours appliquer "deny by default" : bloquer tout puis autoriser explicitement.