Retour à l'accueil

guide nftables : configuration du pare-feu dans Debian

Guide d'utilisation pratique de nftables dans Debian pour la protection des serveurs et la segmentation réseau. Décrit les modèles de menaces, schémas de ségrégation, exemples de règles et bancs de test. Inclut OneButtonFirewall pour un déploiement rapide.

nftables : du pare-feu local à la segmentation réseau
Advertisement 728x90

# Guide pratique nftables : Sécuriser les réseaux sur Debian

nftables sur Debian offre un filtrage de trafic robuste pour serveurs ou postes de travail. L'objectif ? Bloquer les connexions entrantes indésirables et contrôler les flux sortants. La méthode : modéliser les menaces, définir des contrôles d'accès et créer des règles de filtrage.

Démarrez avec un modèle VM Debian 11.4 netinstall : installation minimale, sans superflu, puis ajoutez SSH, Midnight Commander et conntrack via apt install mc ssh conntrack. Utilisez une plateforme de virtualisation avec contrôle réseau comme QEMU-KVM ou VirtualBox.

Modélisation des menaces et stratégies de mitigation

Identifiez vos menaces principales :

Google AdInline article slot
  • T1 : Exploits de services — bloquez le trafic entrant par ports/IP.
  • T2 : Attaques DoS — limitez le débit des paquets, rejetez les sources loopback (127.0.0.0/8 sauf depuis lo).
  • T3 : Attaques par force brute — suivez les échecs de connexion et bannissez les IP.
  • T4 : Connexions sortantes malveillantes — filtrez par IP, ports, protocoles.
  • T5 : Ports non autorisés — interdisez les nouvelles connexions entrantes.

Schémas de contrôle d'accès, du basique au renforcé :

  • Minimal (postes de travail) : Bloquez tout entrant sauf établi ; autorisez tout sortant.
  • Standard (serveurs) : Autorisez SSH (22), HTTP/HTTPS (80/443), ICMP ; limitez conntrack.
  • Renforcé : Listes blanches IP, limitations de débit par port, listes noires pour DoS.

Mise en place d'une protection serveur renforcée

Configuration labo : Serveur Debian sur réseau 192.168.1.0/24, interface eth0.

Mission : Déployer nftables avec sécurité renforcée.

Google AdInline article slot

Étapes de préparation :

apt update && apt install nftables
systemctl enable nftables

Règles dans /etc/nftables.conf :

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0; policy drop; }
nft add chain inet filter output { type filter hook output priority 0; policy accept; }
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }

# Établi/lié
nft add rule inet filter input ct state established,related accept

# Loopback
nft add rule inet filter input iifname "lo" accept

# ICMP
nft add rule inet filter input ip protocol icmp icmp type { echo-request, echo-reply } accept

# Limitation SSH
nft add rule inet filter input tcp dport 22 ct state new limit rate 5/minute accept
nft add rule inet filter input tcp dport 22 ct state new drop

# Rejeter sources loopback
nft add rule inet filter input ip saddr 127.0.0.0/8 iifname != "lo" drop

nft add rule inet filter input ct state invalid drop
nft add rule inet filter input accept

Appliquez avec : nft -f /etc/nftables.conf. Vérifiez : nft list ruleset, conntrack -L.

Google AdInline article slot

Test de votre pare-feu

Labo : Client (192.168.1.10), serveur (192.168.1.20).

Mission : Sonder les ports, résistance DoS, flux sortants.

Étapes :

  • nmap -p 22,80,443 192.168.1.20 — seul SSH ouvert.
  • hping3 --flood -S 192.168.1.20 -p 22 — limitation de débit activée.
  • tcpdump -i eth0 pour observer les rejets.

Segmentation réseau avec routage

Activez le forwarding IP : sysctl net.ipv4.ip_forward=1.

Labo : Routeur (eth0 : LAN1 192.168.10.0/24, eth1 : LAN2 192.168.20.0/24).

Mission : Isoler zones utilisateurs et serveurs.

Règles :

nft add table inet filter
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }

# Utilisateurs vers serveurs : ports essentiels seulement
nft add rule inet filter forward iifname "eth0" oifname "eth1" tcp dport {22,80,443} ct state new accept
nft add rule inet filter forward iifname "eth0" oifname "eth1" ct state established,related accept

# Retour
nft add rule inet filter forward iifname "eth1" oifname "eth0" ct state established,related accept

# Serveurs vers internet
nft add rule inet filter forward iifname "eth1" oifname "eth2" accept

Segmentation couche 2 (pare-feu commutateur)

Pas besoin de sous-réseaux IP : Utilisez VLAN ou filtrage MAC.

Règles bridge :

nft add table bridge filter
nft add chain bridge filter forward { type filter hook forward priority 0; }

# Bloquer entre groupes MAC
nft add rule bridge filter forward ether saddr 00:11:22:33:44:00 ether daddr 00:55:66:77:88:99 drop

OneButtonFirewall : Protection segment rapide

Projet pour déploiement express : Script génère règles à partir de templates.

Labo : Appareil OBF entre segments.

Fonctionnement : Script parse config (JSON/YAML), applique nftables.

Avantages : Zéro config, mises à jour auto. Inconvénients : Moins flexible.

Cas d'usage : Bureaux à domicile, PME sans experts sécurité.

Points clés :

  • Modélisez toujours les menaces en premier.
  • Politique par défaut : drop avec accepts explicites.
  • Testez limitations de débit et conntrack.
  • Équilibrez sécurité et convivialité.
  • Surveillez logs nftables (nft log rule).

— Editorial Team

Advertisement 728x90

Lire ensuite