Ma Publicité

Soutenez la Création

Aidez-moi à partager du contenu exclusif.

Soutenir

Comments

Nouveau Drop

Boutique Officielle

Soutenez le blog monblog-sa-abasse et découvrez nos vêtements & accessoires exclusifs en édition limitée.

Découvrir la collection
Paiement Sécurisé
Livraison Monde

nftables en pratique : firewall lisible en 30 min

nftables en pratique : firewall lisible en 30 min

On a tous connu ce moment un peu pénible où tu dois « juste » ouvrir un port sur un serveur… et tu te retrouves coincé dans une forêt de règles iptables, de chaînes, de compteurs, et de copier coller douteux.

nftables, c’est justement la sortie propre. Plus moderne, plus cohérent, et surtout plus lisible. Et oui, tu peux te monter un firewall clair en 30 min. Pas un truc parfait pour une banque, mais une base solide, compréhensible, et facile à maintenir.

Dans cet article, je te montre une config type, comment la lire, comment la modifier sans te battre, et deux ou trois réflexes à garder pour éviter de te tirer dans le pied.

Schéma simple d’un firewall Linux avec nftables

pourquoi nftables est plus simple que tu le crois

Déjà, nftables remplace iptables, ip6tables, arptables, ebtables… bref, tout le zoo.

Ensuite, tu as :

  • une syntaxe plus proche d’un langage.
  • des ensembles (sets) super pratiques pour regrouper IP, ports, réseaux.
  • une config centralisée, lisible, versionnable.

Et au quotidien, ça se sent. Tu peux relire ton firewall 3 mois après et comprendre ce que tu as fait. Rien que ça, c’est énorme.

prérequis : ce que je suppose sur ta machine

  • Debian, Ubuntu, ou une distro récente avec nftables.
  • accès root.
  • un serveur classique : SSH, éventuellement HTTP(S).

Installe et active nftables :

bash sudo apt update sudo apt install -y nftables sudo systemctl enable --now nftables

Vérifie que le service tourne :

bash sudo systemctl status nftables

la base : une politique « deny by default »

Le principe le plus simple et le plus safe : on bloque tout en entrée, on autorise ce qu’on veut. En sortie, en général on laisse passer, sinon tu vas vite te retrouver à déboguer « pourquoi apt ne marche plus ».

On va créer un fichier clair.

Sur Debian et Ubuntu, le fichier standard est souvent :

  • /etc/nftables.conf

On part d’un exemple minimal mais propre.

configuration nftables lisible (et réaliste)

Édite /etc/nftables.conf :

nft #!/usr/sbin/nft -f

flush ruleset

table inet filter { chain input { type filter hook input priority 0; policy drop;

# 1) trafic local
iif "lo" accept

# 2) connexions déjà établies
ct state established,related accept

# 3) ping (optionnel mais pratique)
ip protocol icmp accept
ip6 nexthdr icmpv6 accept

# 4) ssh
tcp dport 22 accept

# 5) http/https (si serveur web)
tcp dport { 80, 443 } accept

# 6) log du reste (attention au bruit)
limit rate 5/second counter log prefix "nft in drop : " drop

}

chain forward { type filter hook forward priority 0; policy drop; }

chain output { type filter hook output priority 0; policy accept; } }

Charge la config :

bash sudo nft -f /etc/nftables.conf

Puis affiche ce qui est en place :

bash sudo nft list ruleset

Capture conceptuelle : lecture d’un ruleset nftables

lire la config sans se mentir

Ce bloc :

  • table inet filter : table qui couvre IPv4 et IPv6. Très pratique, tu évites de dupliquer.
  • chain input : ce qui arrive sur la machine.
  • hook input : chaîne attachée au chemin réseau « input » du noyau.
  • policy drop : tout ce qui n’est pas explicitement autorisé est bloqué.

Les lignes clés :

  • iif "lo" accept : loopback. Sans ça, plein de services locaux peuvent se comporter bizarrement.
  • ct state established,related accept : le classique. Sinon chaque réponse serait bloquée.
  • tcp dport 22 accept : SSH. Si tu changes le port SSH, change ici aussi.

Et la dernière ligne de log :

  • limit rate 5/second : sinon tu peux te retrouver avec un syslog en feu.
  • log prefix "..." : tu verras clairement dans les logs ce qui est bloqué.

variante utile : autoriser une IP admin uniquement pour le SSH

Typiquement, tu veux SSH uniquement depuis ton IP fixe ou ton VPN.

Tu peux faire un set.

Ajoute avant la règle SSH :

nft set admin_ipv4 { type ipv4_addr; elements = { 203.0.113.10 } }

tcp dport 22 ip saddr @admin_ipv4 accept

Et supprime ou commente la règle SSH ouverte à tous :

nft # tcp dport 22 accept

Oui, c’est déjà beaucoup mieux.

deux commandes à retenir pour ne pas paniquer

Lister les règles avec handles (utile pour supprimer une règle à la volée) :

bash sudo nft -a list chain inet filter input

Voir les compteurs augmenter :

bash sudo nft list ruleset -a

Tu peux aussi tester progressivement, mais fais attention. Si tu bosses en SSH distant, garde une session ouverte, et applique les changements prudemment.

Un réflexe simple : planifie un rollback.

Exemple, tu appliques une règle, et tu te donnes 2 minutes pour annuler si tu te verrouilles dehors :

bash sudo sh -c 'sleep 120 && nft -f /etc/nftables.conf' &

Ce n’est pas parfait, mais ça sauve des soirées.

où mettre ça proprement, et comment le garder maintenable

  • un seul fichier /etc/nftables.conf bien commenté.
  • des blocs simples.
  • pas de magie. Pas de règles auto générées incompréhensibles.

Et si tu fais de la veille et des checklists admin, je publie souvent ce genre de contenus pratiques sur Le Blog Tech Pro de Samyn-Antoy ABASSE. Tu peux garder l’URL sous la main et revenir quand tu veux, j’ajoute régulièrement des articles Linux et sysadmin sur https://monblog-sa-abasse.blogspot.com.

mini récap, et tu es opérationnel

En 30 min, tu peux avoir :

  • une politique drop en entrée.
  • loopback autorisé.
  • connexions établies autorisées.
  • SSH autorisé (idéalement limité à ton IP).
  • web autorisé si besoin.
  • logs limités pour comprendre ce qui tombe.

C’est propre, lisible, et tu peux l’étendre sans te perdre.

Si tu veux, dis moi ton cas exact (serveur web, docker, wireguard, reverse proxy, fail2ban, etc.) et je te propose une version nftables adaptée, toujours lisible.

Questions fréquemment posées

Qu'est-ce que nftables et pourquoi est-il plus simple que iptables ?

Nftables est un outil moderne qui remplace iptables, ip6tables, arptables et ebtables. Il propose une syntaxe plus proche d'un langage, des ensembles (sets) pratiques pour regrouper IP, ports ou réseaux, ainsi qu'une configuration centralisée, lisible et versionnable. Cela facilite la compréhension et la maintenance du firewall même après plusieurs mois.

Quels sont les prérequis pour utiliser nftables sur ma machine ?

Pour utiliser nftables, il faut une distribution Linux récente comme Debian ou Ubuntu avec nftables installé. Vous devez avoir un accès root et un serveur classique avec SSH et éventuellement HTTP(S). Il faut aussi installer et activer le service nftables via apt et systemctl.

Quelle est la politique de sécurité recommandée avec nftables ?

La politique recommandée est « deny by default », c'est-à-dire bloquer tout le trafic entrant par défaut (policy drop) et n'autoriser que ce qui est nécessaire. En sortie, on laisse généralement passer tout le trafic pour éviter des problèmes comme l'impossibilité d'utiliser apt.

Comment lire et comprendre une configuration nftables basique ?

Une configuration basique inclut une table inet filter couvrant IPv4 et IPv6, avec une chaîne input attachée au hook input du noyau. La politique par défaut est drop. Les règles typiques acceptent le trafic local (loopback), les connexions établies ou liées, le ping ICMP/ICMPv6, SSH sur le port 22, HTTP/HTTPS si serveur web, puis loguent et bloquent le reste.

Comment limiter l'accès SSH à une adresse IP spécifique avec nftables ?

Vous pouvez créer un set contenant l'adresse IP autorisée (par exemple admin_ipv4) puis modifier la règle SSH pour accepter uniquement les connexions provenant de cette IP. Il faut commenter ou supprimer la règle SSH ouverte à tous pour renforcer la sécurité.

Quelles commandes essentielles dois-je retenir pour gérer mes règles nftables sans paniquer ?

Il est important de savoir lister les règles avec leurs handles via 'sudo nft list ruleset' pour identifier facilement chaque règle. Ces handles permettent de supprimer ou modifier des règles précises à la volée sans risquer de perturber tout le firewall.

Enregistrer un commentaire

0 Commentaires

Comments

🔥 VENTE FLASH EXCLUSIVE B-YAHA - JUSQU'À -50% OFF
⏳ Fin dans: 03:45:12
CODE: BYAHA10 (-10% SUPP.)
79€ 39,99€
B-YAHA Produit Tendance 1 B-YAHA Produit Tendance 2 B-YAHA Produit Tendance 3

B-YAHA Magasin en Ligne

Découvrez notre collection exclusive 2026. Produits haut de gamme, nouveautés tendance et offres inédites directement livrées chez vous.

👀 54 personnes consultent l'offre
🔥 Stock:
Reste 5 pcs
Commander Maintenant
Paiement 100% Sécurisé
Livraison Express