Qu'est-ce que ce générateur de règles iptables / nftables ?
Un firewall Linux garde le trafic non désiré hors de votre serveur. Les deux outils livrés avec le kernel sont iptables (le classique, là depuis 1998) et nftables (le remplaçant moderne, défaut sur Debian 11+, Ubuntu 22.04+, RHEL 9+ et la plupart des distros actuelles).
Ce générateur vous permet d'écrire des règles firewall sous une forme amicale et produit les deux syntaxes en même temps. Choisissez une chaîne (INPUT, OUTPUT, FORWARD), choisissez une action (ACCEPT, DROP, REJECT, LOG), réglez le protocole, source, destination, ports et état de connexion, et vous obtenez un ruleset prêt à coller.
Tout tourne dans votre navigateur : aucune règle n'est appliquée, aucun serveur n'est contacté, rien n'est uploadé. Vous copiez la sortie, ouvrez votre terminal, lisez attentivement, et lancez vous-même. L'outil est un générateur, pas un runner.
Quelques choses utiles à savoir avant de commencer :
- La politique par défaut d'une chaîne c'est ce qui se passe quand aucune règle ne matche. Mettre INPUT à DROP plus quelques règles ACCEPT ciblées est la stance classique "deny by default".
- L'ordre compte en iptables : les règles sont évaluées du haut vers le bas, premier match gagne. Mettez votre règle de trafic de retour (ESTABLISHED, RELATED) en premier pour éviter de casser les connexions existantes.
- nftables est déclaratif (toute la table est un document) ; iptables est impératif (chaque ligne `-A` append une règle).
Mode d'emploi
- Commencez avec un preset si vous le pouvez : "Serveur web de base", "SSL verrouillé", "Autoriser LAN, refuser WAN", "Chaîne forward Docker", ou "Rate limit SSH". Chacun remplit des défauts sensés que vous pouvez ajuster.
- Réglez la politique par défaut par chaîne. La stance sûre est INPUT=DROP, FORWARD=DROP, OUTPUT=ACCEPT. La politique OUTPUT est généralement ACCEPT parce que vous faites confiance à votre propre serveur pour parler dehors.
- Ajoutez les règles dans l'ordre. La toute première règle INPUT devrait être : protocole=any, état=ESTABLISHED+RELATED, action=ACCEPT. Ça garde les connexions existantes vivantes quand vous rechargez le firewall.
- Pour chaque règle choisissez la chaîne, l'action, le protocole, l'IP source optionnelle (ou CIDR comme 192.168.1.0/24), l'IP destination optionnelle, le port source/destination optionnel, et un état de connexion si vous avez besoin d'un match stateful.
- Utilisez le toggle conntrack pour choisir entre le moderne `-m conntrack --ctstate` et le legacy `-m state --state`. Les kernels modernes par défaut sur conntrack ; gardez-le activé sauf si votre distro est ancienne.
- Regardez l'aperçu live sur la droite. Le panneau du haut c'est iptables, celui du bas c'est nftables. Les deux sont synchronisés depuis le même modèle et les deux ont un bouton Copier.
- Testez avant de commiter. Copiez le bloc iptables, collez sur le serveur, lancez. Si vous vous verrouillez dehors, les règles ne survivront pas à un reboot (elles vivent en mémoire seulement). Après 5 minutes de test, persistez avec `netfilter-persistent save` (Debian/Ubuntu) ou sauvegardez le bloc nftables dans `/etc/nftables.conf`.
Quand cet outil est utile
Cinq situations concrètes où construire des règles sous forme bat l'écriture à la main :
- Vous avez monté un VPS frais et avez besoin d'un firewall de départ. Le preset "Serveur web de base" ouvre les ports 22 (SSH), 80 (HTTP), 443 (HTTPS) et drop tout le reste. C'est la première étape canonique après installation d'un serveur, et le générateur l'écrit une fois pour les deux syntaxes pour que vous puissiez choisir celle que votre distro utilise.
- Vous migrez d'iptables vers nftables. Beaucoup de distros (Debian 11+, RHEL 9+) ont mis nftables par défaut et la commande legacy `iptables` est un wrapper. Collez vos règles iptables existantes dans le form, switchez l'aperçu vers nftables, et vous avez un `/etc/nftables.conf` prêt à sauvegarder.
- Vous voulez verrouiller SSH à une IP. Le preset "SSL verrouillé" montre le pattern : ACCEPT depuis votre IP bureau, LOG et DROP tout le reste. Trois règles, dans le bon ordre, avec matching d'état inclus.
- Vous gérez un host Docker et la chaîne FORWARD est un bazar. Docker réécrit la chaîne FORWARD à chaque restart, ce qui est OK, mais vous devez quand même savoir à quoi de bonnes règles FORWARD ressemblent. Le preset "Chaîne forward Docker" est un baseline propre que vous pouvez adapter.
- Vous enseignez le networking Linux à quelqu'un. La vue côte-à-côte iptables vs nftables est la manière la plus rapide de montrer l'équivalence : même modèle, deux syntaxes. Basculez un état, regardez les deux panneaux se mettre à jour, et la relation entre `-m conntrack --ctstate` et `ct state` clique instantanément.