Générateur iptables

Générateur de règles de pare-feu Linux iptables et de scripts Shell

Générez des règles iptables pour les chaînes INPUT/FORWARD/OUTPUT, l'inspection avec état conntrack, la protection SYN flood, la redirection NAT et l'exportation shell.

Profils de pare-feu
Ajouter une règle de pare-feu
Règles configurées (5)Cocher pour activer/désactiver
#1INPUTTCP :22
ACCEPT
#2INPUTTCP :80
ACCEPT
#3INPUTTCP :443
ACCEPT
#4INPUTTCP :9100 from 10.0.0.0/16
ACCEPT
#5INPUTALL
LOG
#!/usr/bin/env bash
# ==============================================================================
# Linux iptables Firewall Configuration Script
# Generated by ToolsAA iptables Rule Generator (https://toolsaa.com)
# 100% Client-Side Netfilter Firewall Builder
# ==============================================================================
set -euo pipefail

# Verify root privileges
if [[ $EUID -ne 0 ]]; then
   echo "Error: This script must be executed as root (e.g. sudo bash $0)" >&2
   exit 1
fi

# Find iptables binaries
IPTABLES="$(command -v iptables || echo '/sbin/iptables')"
SYSCTL="$(command -v sysctl || echo '/sbin/sysctl')"

echo "==> Applying Linux iptables firewall rules..."

# ------------------------------------------------------------------------------
# 1. Kernel Parameter Hardening & Anti-Spoofing (sysctl)
# ------------------------------------------------------------------------------
$SYSCTL -w net.ipv4.tcp_syncookies=1 >/dev/null
$SYSCTL -w net.ipv4.conf.all.rp_filter=1 >/dev/null
$SYSCTL -w net.ipv4.conf.default.rp_filter=1 >/dev/null
$SYSCTL -w net.ipv4.conf.all.accept_source_route=0 >/dev/null
$SYSCTL -w net.ipv4.conf.all.accept_redirects=0 >/dev/null
$SYSCTL -w net.ipv4.icmp_echo_ignore_broadcasts=1 >/dev/null
$SYSCTL -w net.ipv4.icmp_ignore_bogus_error_responses=1 >/dev/null

# ------------------------------------------------------------------------------
# 2. Flush Existing Rules & Reset Counters
# ------------------------------------------------------------------------------
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F || true
$IPTABLES -t nat -X || true
$IPTABLES -t mangle -F || true
$IPTABLES -t mangle -X || true
$IPTABLES -t raw -F || true
$IPTABLES -t raw -X || true

# ------------------------------------------------------------------------------
# 3. Set Default Chain Policies
# ------------------------------------------------------------------------------
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# ------------------------------------------------------------------------------
# 4. Core Defensive Rules: Loopback, Conntrack & Invalid Drops
# ------------------------------------------------------------------------------
# Allow unlimited loopback traffic (localhost)
$IPTABLES -A INPUT -i lo -j ACCEPT -m comment --comment "Allow all loopback inbound"
$IPTABLES -A OUTPUT -o lo -j ACCEPT -m comment --comment "Allow all loopback outbound"
# Drop packets in INVALID connection state immediately
$IPTABLES -A INPUT -m conntrack --ctstate INVALID -j DROP -m comment --comment "Drop invalid packets"
# Stateful connection tracking: Allow established and related traffic
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Stateful allow established/related"
$IPTABLES -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Stateful allow established/related"

# ------------------------------------------------------------------------------
# 5. Anti-DDoS: TCP SYN Flood Protection Chain
# ------------------------------------------------------------------------------
$IPTABLES -N SYN_FLOOD || true
$IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
$IPTABLES -A SYN_FLOOD -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A SYN_FLOOD -j DROP -m comment --comment "Drop excess SYN flood packets"

# ------------------------------------------------------------------------------
# 6. Port Scan & Malicious Flag Mitigation
# ------------------------------------------------------------------------------
# Drop NULL packets (no flags set)
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP -m comment --comment "Drop NULL scan packets"
# Drop XMAS packets (FIN, PSH, URG flags)
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP -m comment --comment "Drop XMAS scan packets"
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP -m comment --comment "Drop XMAS variants"
# Drop SYN-FIN scans
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP -m comment --comment "Drop SYN-FIN packets"
# Drop SYN-RST scans
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP -m comment --comment "Drop SYN-RST packets"

# ------------------------------------------------------------------------------
# 7. ICMP / Ping Echo-Request Control
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT -m comment --comment "Rate-limited ICMP ping"
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP -m comment --comment "Drop excess ICMP pings"

# ------------------------------------------------------------------------------
# 8. SSH Anti-Bruteforce Rate Limiter (iptables recent module)
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name SSH_ATTEMPTS
$IPTABLES -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP -m comment --comment "Drop SSH bruteforce flood"

# ------------------------------------------------------------------------------
# 9. User-Configured Filter Chain Rules
# ------------------------------------------------------------------------------
# Rule 1: SSH administration (protected by recent anti-bruteforce)
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT -m comment --comment "SSH administration (protected by recent anti-bruteforce)"
# Rule 2: Standard HTTP Web traffic
$IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT -m comment --comment "Standard HTTP Web traffic"
# Rule 3: Encrypted HTTPS / TLS Web traffic
$IPTABLES -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT -m comment --comment "Encrypted HTTPS / TLS Web traffic"
# Rule 4: Prometheus node exporter restricted to private VPC
$IPTABLES -A INPUT -i eth0 -p tcp -s 10.0.0.0/16 --dport 9100 -j ACCEPT -m comment --comment "Prometheus node exporter restricted to private VPC"
# Rule 5: Log dropped unsolicited incoming packets
$IPTABLES -A INPUT -m limit --limit 5/min -j LOG --log-prefix "[IPT-DROP-WEB]: " --log-level 4 -m comment --comment "Log dropped unsolicited incoming packets"

echo "==> Linux iptables firewall rules successfully applied!"
echo "==> Active rules summary:"
$IPTABLES -L -v -n --line-numbers | head -n 35
Règles de filtrage actives
5 Règles · 0 Ports NAT
Directives NAT
SYN Flood · Anti-SSH
Directives de renforcement
Bash .sh · rules.v4 · systemd

Générateur 100% privé côté client

Aucun envoi vers un serveur ni télémétrie. Vos adresses IP, sous-réseaux, ports internes et topologies sont traités exclusivement dans la mémoire locale de votre navigateur.

Inspection avec état et atténuation DDoS

Inspection avec état (conntrack), limitation du débit SYN flood, rejet des paquets invalides, boucle locale et protection contre l'usurpation (rp_filter).

Script Shell de production et export Systemd

Exportez des scripts Bash prêts pour la production avec temporisateur de rollback sécurisé, compatibilité iptables-save et persistance systemd.

Référence technique et guide d'architecture

Générateur de Règles de Pare-Feu iptables Linux et Scripts Shell - Guide Développeur — Guide de référence

Générez des règles iptables pour les chaînes INPUT/FORWARD/OUTPUT, l'inspection avec état conntrack, la protection SYN flood, la redirection NAT et l'exportation shell.

Paramètres clés et contrôles

Chaîne et Politique par DéfautChaîne (Enum)

Chaîne netfilter cible (INPUT, FORWARD, OUTPUT) associée à la politique de sécurité par défaut (-P DROP, ACCEPT, REJECT).

Par défaut : INPUT DROP
Protocole et Modules de CorrespondanceChaîne

Protocole de transport (-p tcp, udp, icmp, all) couplé aux modules du noyau (-m conntrack, -m multiport, -m limit).

Par défaut : tcp -m conntrack
Filtres Source / DestinationIPv4/CIDR / Liste de Ports

Plages IP source (-s) ou destination (-d) associées aux ports (--sport, --dport, --dports).

Par défaut : -s 0.0.0.0/0 --dport 22,80,443
État de Connexion (ctstate)Liste de chaînes

États du suivi de connexion dynamique (NEW, ESTABLISHED, RELATED, INVALID, UNTRACKED) pour un filtrage bidirectionnel précis.

Par défaut : ESTABLISHED,RELATED
Cible d'Action (Target)Chaîne (Enum)

Action exécutée lorsqu'un paquet correspond à la règle (-j ACCEPT, DROP, REJECT, LOG, MASQUERADE, DNAT, SNAT, REDIRECT).

Par défaut : ACCEPT

Conseils de pro et bonnes practices

Optimisation avec Suivi d'État Conntrack

Insérez systématiquement 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' tout en haut de votre jeu de règles. Cela évite d'évaluer les règles suivantes pour les paquets des sessions déjà validées, réduisant fortement la latence CPU.

Protocole Anti-Verrouillage SSH

Avant de passer la politique INPUT par défaut à DROP sur une machine distante, lancez un compte à rebours d'annulation dans un terminal séparé: 'sleep 300 && iptables -P INPUT ACCEPT && iptables -F'. Vous pouvez aussi utiliser l'utilitaire sécurisé 'iptables-apply'.

Atténuation des Attaques SYN Flood

Limitez le débit des ouvertures de session TCP pour endiguer les attaques volumétriques: 'iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 100 -j ACCEPT' suivi d'une règle de rejet DROP.

Préservation de la Boucle Locale et ICMP

Ne bloquez jamais l'interface de bouclage ('-i lo -j ACCEPT'), indispensable aux communications IPC locales (bases de données, résolveurs DNS). Autorisez également les requêtes ICMP Echo avec limitation de débit ('-p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT') pour garantir le diagnostic réseau sans risque de ping flood.

Pièges courants et dépannage

Perte instantanée de la connexion SSH lors de l'application des règles

La politique INPUT a été configurée sur DROP sans autoriser préalablement le port 22 ou l'état ESTABLISHED. Connectez-vous via la console hors bande (IPMI/VNC), exécutez 'iptables -P INPUT ACCEPT' et assurez-vous d'ajouter la règle SSH avant de modifier la politique globale.

Alerte noyau: 'nf_conntrack: table full, dropping packet'

La table de suivi des connexions est saturée. Augmentez la capacité via sysctl ('sysctl -w net.netfilter.nf_conntrack_max=262144'), ajustez les délais d'inactivité ('net.netfilter.nf_conntrack_tcp_timeout_established=600') ou désactivez le suivi sur les flux haute fréquence avec '-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK'.

Docker écrase ou contourne les règles personnalisées de FORWARD et NAT

Docker gère iptables directement en créant ses propres chaînes (DOCKER, DOCKER-USER). Insérez vos règles de filtrage dans la chaîne 'DOCKER-USER' plutôt que dans FORWARD pour empêcher que les redémarrages du service Docker n'annulent vos protections.

Foire aux questions (FAQ)

Quelle est la différence fondamentale entre iptables, nftables et UFW/firewalld ?▼

iptables interagit directement avec les points d'ancrage Netfilter du noyau Linux via des tables statiques (filter, nat, mangle). nftables est son successeur moderne doté d'une machine virtuelle à bytecode et de transactions atomiques. UFW et firewalld sont des démons de haut niveau qui génèrent automatiquement des règles iptables ou nftables sous-jacentes.

Pourquoi privilégier DROP par rapport à REJECT sur les interfaces publiques ?▼

DROP ignore silencieusement les paquets sans renvoyer d'accusé, ce qui oblige les scanners de ports à attendre l'expiration du délai et dissimule la présence du serveur. REJECT renvoie un paquet ICMP port-unreachable ou TCP RST, confirmant ainsi à l'attaquant que la machine est active tout en consommant de la bande passante sortante.

Comment fonctionnent les chaînes NAT PREROUTING et POSTROUTING pour la redirection de ports ?▼

PREROUTING intervient avant la décision de routage pour modifier l'adresse de destination (-j DNAT --to-destination IP:port), redirigeant les paquets externes vers un serveur interne. POSTROUTING intervient après le routage pour modifier l'adresse source (-j MASQUERADE ou -j SNAT), permettant aux sous-réseaux privés d'accéder à Internet via l'IP publique.

Comment rendre les règles iptables persistantes après un redémarrage du serveur ?▼

Les règles iptables ne résident que dans la mémoire volatile du noyau. Sur Debian/Ubuntu, installez 'iptables-persistent' et exécutez 'netfilter-persistent save'. Sur RHEL/CentOS/AlmaLinux, installez 'iptables-services', exécutez 'iptables-save > /etc/sysconfig/iptables' et activez le service au démarrage avec systemctl.

Comment surveiller en temps réel le nombre de paquets et le volume d'octets par règle ?▼

Exécutez 'iptables -nvL --line-numbers' pour afficher le numéro de ligne ainsi que les compteurs de paquets et d'octets. Pour un suivi dynamique lors de tests de charge, utilisez la commande 'watch -n 1 iptables -nvL INPUT'.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur : Générateur et Analyseur d'Enregistrements DNS SPFSécurité

Générez, analysez et validez des enregistrements TXT SPF conformes à la RFC 7208 avec blocs CIDR IPv4/IPv6, MX, A, mécanismes include et politiques SoftFail/HardFail.

Ouvrir l'outil→
Générateur d'Enregistrements DMARC DNS et Validateur de Syntaxe - Guide DéveloppeurSécurité

Générez et validez des enregistrements DNS TXT DMARC conformes à la RFC 7489 avec politiques de traitement (none/quarantine/reject), rapports agrégés rua/ruf et balises d'alignement.

Ouvrir l'outil→
Guide Développeur du Générateur d'Enregistrements DNS CAA (Certification Authority Authorization)Sécurité

Générez des enregistrements DNS CAA conformes à la RFC 8659 pour restreindre l'émission de certificats SSL/TLS aux seules autorités de certification de confiance (Let's Encrypt, DigiCert, Sectigo).

Ouvrir l'outil→
Guide Développeur : Générateur d'Enregistrements DNS DKIM TXT & SélecteursSécurité

Générez des enregistrements DNS DKIM TXT conformes à la RFC 6376 avec sélecteur, formatage de clé publique (v=DKIM1; k=rsa; p=...), découpage à 255 caractères et validation.

Ouvrir l'outil→
Guide Développeur : Générateur de Stratégies MTA-STS et Enregistrements DNS TLS-RPTSécurité

Guide de référence technique et bonnes pratiques pour générer les fichiers de stratégie RFC 8461 MTA-STS, les enregistrements DNS TXT _mta-sts et les rapports d'incidents RFC 8460 TLS-RPT.

Ouvrir l'outil→
Décodeur de Jeton JWT & Inspecteur de SécuritéSécurité

Utilitaire pour développeurs permettant de décoder les JSON Web Tokens côté client, d'inspecter les claims RFC 7519 et OIDC, d'auditer les expirations et de vérifier les signatures HMAC localement.

Ouvrir l'outil→