Aller au contenu
🛠️ToolsShed

Firewall Rule Generator

Générer des règles de pare-feu pour iptables, UFW, macOS pf et Windows Defender Firewall.

Ports courants

À propos de cet outil

Un pare-feu est la première ligne de défense de tout système en réseau, contrôlant quel trafic réseau peut entrer ou sortir de votre ordinateur. Cet outil vous aide à générer la syntaxe de commande correcte pour configurer les pare-feu sur plusieurs plateformes : Linux (iptables, UFW, nftables), macOS (pf) et Windows Defender. Au lieu de mémoriser une syntaxe complexe, vous spécifiez simplement votre intention—autoriser un port, bloquer une adresse IP, autoriser SSH depuis un sous-réseau—et obtenez des commandes prêtes à exécuter personnalisées pour votre système.

Les administrateurs système, les développeurs configurant des serveurs et les utilisateurs soucieux de la sécurité s'appuient sur ce générateur pour créer rapidement des règles sans essais-erreurs manuels. Que vous durcissiez une VPS, protégiez un laboratoire personnel ou verrouilleriez un environnement de test, le générateur garantit que la syntaxe est correcte avant l'exécution. Comme chaque plateforme utilise des formats de commande et des conventions de drapeaux différents, cet outil élimine la friction du changement de contexte entre les documentations.

Questions Fréquentes

Implémentation du Code

#!/usr/bin/env python3
"""Firewall rule generator — outputs iptables and UFW commands."""

def iptables_allow(port: int, protocol: str = "tcp", source: str = None) -> str:
    src = f"-s {source} " if source else ""
    return f"sudo iptables -A INPUT {src}-p {protocol} --dport {port} -j ACCEPT"

def iptables_block(port: int = None, source: str = None, protocol: str = "tcp") -> str:
    parts = ["sudo iptables -I INPUT"]
    if source:
        parts.append(f"-s {source}")
    if port:
        parts.extend([f"-p {protocol}", f"--dport {port}"])
    parts.append("-j DROP")
    return " ".join(parts)

def ufw_allow(port: int, protocol: str = "tcp", source: str = None) -> str:
    if source:
        return f"sudo ufw allow from {source} to any port {port} proto {protocol}"
    return f"sudo ufw allow {port}/{protocol}"

def ufw_deny(port: int = None, source: str = None) -> str:
    if source and not port:
        return f"sudo ufw deny from {source}"
    if port:
        return f"sudo ufw deny {port}/tcp"
    return "sudo ufw deny from any"

# Examples
print("=== Allow SSH from specific IP ===")
print(iptables_allow(22, "tcp", "192.168.1.0/24"))
print(ufw_allow(22, "tcp", "192.168.1.0/24"))

print("\n=== Allow HTTP and HTTPS ===")
for port in [80, 443]:
    print(iptables_allow(port, "tcp"))
    print(ufw_allow(port, "tcp"))

print("\n=== Block IP ===")
print(iptables_block(source="10.0.0.5"))
print(ufw_deny(source="10.0.0.5"))

print("\n=== Save iptables rules (Ubuntu/Debian) ===")
print("sudo netfilter-persistent save")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.