Générateur de règles iptables
Générer des règles iptables à partir d’un CSV
Rule Definitions
Format
source, port, protocol, action
Use * for any. Protocols: tcp, udp, icmp, all
iptables Commands
Enter rules to generate iptables commands
Le générateur de règles iptables crée des règles de pare-feu Linux à partir d'une entrée CSV structurée. Saisissez vos règles sous forme de lignes avec les colonnes chain, source, destination, protocole, port et action, et obtenez des commandes iptables correctement formatées avec un ordre de flags approprié -- sans avoir à mémoriser la syntaxe verbeuse et sujette aux erreurs d'iptables.
Comprendre iptables
Si vous administrez des serveurs Linux, iptables est probablement le premier outil de firewall que vous rencontrez. C'est l'interface standard de filtrage de paquets Linux depuis le noyau 2.4 (sorti en 2001), et malgré son remplacement par nftables sur les distributions plus récentes, iptables reste le firewall Linux le plus largement déployé en production. La plupart de la documentation, des tutoriels et des outils d'automatisation ciblent encore la syntaxe iptables, et la couche de compatibilité iptables-nft garantit que les commandes iptables fonctionnent même sur les systèmes utilisant le backend nftables.
Le défi avec iptables est sa syntaxe en ligne de commande. Chaque règle est une commande unique avec des flags qui doivent apparaître dans un ordre spécifique, et une erreur sur un seul flag peut silencieusement créer une règle qui ne correspond pas à ce que vous vouliez. Un -p tcp manquant avant --dport 443 produit une erreur. Un -j ACCEPT quand vous vouliez -j DROP crée une faille de sécurité. Et quand vous construisez une configuration complète de firewall avec 30 ou 40 règles, écrire chaque commande à la main est fastidieux et source d'erreurs.
Ce générateur résout le problème en acceptant vos règles dans un format CSV simple et en produisant des commandes iptables correctes. Vous pouvez concevoir votre firewall dans un tableur, coller le CSV, et obtenir un script complet que vous pouvez réviser, versionner et déployer. Le générateur gère l'ordre des flags, la syntaxe multiport, le suivi de connexion, la spécification d'interface et la détection automatique IPv4/IPv6 -- tous ces détails qui piègent même les administrateurs expérimentés lorsqu'ils écrivent des règles à la main.
Comment générer des règles iptables depuis un CSV
- Préparez vos données de règles au format CSV avec les colonnes : chain, source, destination, protocole, port(s) et action.
- Collez ou importez le CSV dans le générateur.
- Le générateur analyse chaque ligne et produit une commande
iptablescomplète avec les flags corrects. - Vérifiez les commandes générées -- les règles IPv4 utilisent
iptableset les règles IPv6 utilisentip6tablesautomatiquement. - Copiez les commandes pour exécution directe ou exportez-les sous forme de script shell.
Format CSV d'entrée et commandes générées
Entrée CSV
chain,source,destination,protocol,port,action
INPUT,203.0.113.0/24,,tcp,22,DROP
INPUT,10.0.0.0/8,,tcp,443,ACCEPT
OUTPUT,,198.51.100.10,tcp,3306,ACCEPT
INPUT,,,tcp,80,ACCEPT
FORWARD,192.168.1.0/24,10.0.0.0/8,tcp,8080,ACCEPT
INPUT,,,icmp,,DROP
Sortie générée
iptables -A INPUT -s 203.0.113.0/24 -p tcp --dport 22 -j DROP
iptables -A INPUT -s 10.0.0.0/8 -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -d 198.51.100.10 -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.0.0/8 -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
Fonctionnalités avancées
| Champ CSV | Flag iptables | Exemple |
|---|---|---|
| Plage de ports | --dport | 8000:8080 génère --dport 8000:8080 |
| Ports multiples | -m multiport --dports | 80,443,8080 génère -m multiport --dports 80,443,8080 |
| Port source | --sport | Colonne séparée pour la spécification du port source |
| Suivi de connexion | -m state --state | ESTABLISHED,RELATED pour les règles stateful |
| Interface | -i / -o | eth0 génère -i eth0 pour la chaîne INPUT |
| Journalisation | -j LOG --log-prefix | "SSH-BLOCK: " génère -j LOG --log-prefix "SSH-BLOCK: " |
Quand utiliser le générateur de règles iptables
- Durcissement de serveur -- Construisez un jeu de règles de firewall complet à partir d'un tableur d'exigences de sécurité lors de la configuration initiale du serveur.
- Réponse aux incidents -- Générez rapidement des règles de blocage pour les IP d'attaquants collectées pendant un incident en cours.
- Migration de plateforme -- Convertissez les règles de firewall de Windows Firewall, AWS Security Groups ou d'autres plateformes vers la syntaxe iptables.
- Scripts d'automatisation -- Générez des scripts de configuration de firewall pour les workflows de provisionnement Ansible, Puppet ou en shell.
- Apprentissage d'iptables -- Etudiez la relation entre les spécifications CSV et les commandes générées pour comprendre la syntaxe iptables.
Fonctionnement de la syntaxe des règles iptables
Structure de commande
Chaque commande iptables suit ce schéma :
iptables -A <CHAIN> [-s source] [-d dest] -p <protocol> [--dport port] -j <ACTION>
-Aajoute la règle à la chaîne spécifiée-set-dspécifient les adresses source et destination en notation CIDR-pdéfinit le protocole (tcp,udp,icmp)--dportdéfinit le port de destination (nécessite-p tcpou-p udp)-jdéfinit l'action cible
Types de chaînes
| Chaîne | Direction | Cas d'utilisation |
|---|---|---|
INPUT | Entrant vers cet hôte | Protection des services s'exécutant sur ce serveur |
OUTPUT | Sortant de cet hôte | Contrôle de ce à quoi ce serveur peut se connecter |
FORWARD | Transitant par cet hôte | Scénarios de routage/NAT, appliances firewall |
IPv4 vs. IPv6
Lorsque le générateur détecte une adresse IPv6 (par ex. 2001:db8::/32), il produit des commandes ip6tables au lieu de iptables :
ip6tables -A INPUT -s 2001:db8::/32 -p tcp --dport 443 -j ACCEPT
Conseils pratiques pour la configuration iptables
L'élément le plus critique à comprendre avec iptables est l'ordre des règles. Les règles d'une chaîne sont évaluées de haut en bas, et la première règle correspondante l'emporte. Si vous placez une règle ACCEPT large avant une règle DROP spécifique, le DROP ne s'exécute jamais. C'est particulièrement important pour la chaîne INPUT : placez toujours vos règles d'autorisation spécifiques en premier, puis vos règles de refus spécifiques, et terminez par un refus par défaut (iptables -A INPUT -j DROP). Le générateur préserve l'ordre de vos lignes CSV, arrangez donc votre tableur en conséquence.
La deuxième erreur la plus courante est de ne pas sauvegarder les règles pour la persistance. Par défaut, les règles iptables vivent dans la mémoire du noyau et disparaissent au redémarrage. Sur Debian/Ubuntu, utilisez iptables-save > /etc/iptables/rules.v4 et installez le paquet iptables-persistent. Sur RHEL/CentOS, utilisez service iptables save. Si vous sautez cette étape, votre serveur revient d'un redémarrage sans firewall -- une fenêtre de vulnérabilité critique qui a causé de véritables incidents de sécurité.
Lors de la construction d'une configuration de firewall complète, incluez toujours des règles stateful en haut de vos chaînes INPUT et OUTPUT. Une règle comme iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT autorise le trafic de retour pour les connexions initiées par votre serveur, sans laquelle les connexions sortantes (mises à jour de paquets, requêtes DNS, appels API) ne fonctionneraient plus. Sans cette règle, vous auriez besoin de règles explicites pour chaque chemin de retour, ce qui est irréaliste. Placez cette règle en premier dans la chaîne INPUT pour de meilleures performances, car la majorité des paquets sur un serveur actif font partie de connexions établies.
Questions fréquentes
Quelle est la différence entre DROP et REJECT ?
DROP supprime silencieusement le paquet sans réponse -- la connexion de l'expéditeur expire. REJECT renvoie un message ICMP "port unreachable" ou un TCP RST, informant immédiatement l'expéditeur. DROP est plus courant pour les règles exposées à l'extérieur ; REJECT est plus utile sur les réseaux internes où un échec rapide est préférable.
Comment appliquer les règles générées ?
Copiez les commandes et exécutez-les directement dans un shell root, ou enregistrez-les dans un script et exécutez-le. Les règles prennent effet immédiatement mais sont perdues au redémarrage. Utilisez iptables-save > /etc/iptables/rules.v4 pour persister les règles entre les redémarrages sur Debian/Ubuntu, ou service iptables save sur RHEL/CentOS.
Le générateur peut-il créer des règles pour des chaînes personnalisées ?
Oui. Saisissez un nom de chaîne personnalisé dans la colonne chain (par ex. LOGGING ou SSH-RULES). Le générateur produit la commande -A CUSTOMCHAIN, mais vous devez créer séparément la chaîne avec iptables -N CUSTOMCHAIN avant d'appliquer les règles.
Dois-je utiliser iptables ou nftables pour les nouveaux déploiements ? Pour les nouveaux déploiements sur les distributions modernes (Debian 10+, RHEL 8+, Ubuntu 20.04+), nftables est le choix recommandé. Il offre une syntaxe plus propre, de meilleures performances et un chargement atomique du jeu de règles. Utilisez le nftables Rule Generator pour ces systèmes. Pour les systèmes existants qui exécutent déjà iptables, ou pour la compatibilité avec l'automatisation legacy, iptables reste un choix solide.
Comment vider toutes les règles existantes avant d'en appliquer de nouvelles ?
Utilisez iptables -F pour vider toutes les règles de toutes les chaînes, et iptables -X pour supprimer les chaînes personnalisées. Attention : si vous videz les règles sur un serveur distant sans d'abord définir la politique par défaut sur ACCEPT, vous vous bloquerez l'accès. Exécutez toujours iptables -P INPUT ACCEPT avant de vider.
Puis-je générer des règles avec des commentaires ?
Oui. iptables supporte la syntaxe -m comment --comment "description" pour ajouter des commentaires lisibles aux règles. Si votre CSV inclut une colonne description, le générateur peut l'intégrer comme commentaire dans chaque règle.
Outils associés
- nftables Rule Generator - Générer des règles nftables depuis un CSV pour les distributions Linux modernes
- Allowlist Builder - Construire une allowlist CIDR minimale à partir d'une liste d'IP
- Blocklist Builder - Construire une blocklist CIDR minimale à partir d'une liste d'IP
- AWS Security Group Rule Generator - Générer des règles AWS Security Group depuis un CSV
- Rule Conflict Finder - Trouver les règles de firewall en double, masquées ou en chevauchement