Saltar al contenido
🛠️ToolsShed

Firewall Rule Generator

Genera reglas de firewall para iptables, UFW, macOS pf y Windows Defender Firewall.

Puertos Comunes

Acerca de esta herramienta

Un firewall es la primera línea de defensa para cualquier sistema en red, controlando qué tráfico puede entrar o salir de tu computadora. Esta herramienta te ayuda a generar la sintaxis de comandos correcta para configurar firewalls en múltiples plataformas: Linux (iptables, UFW, nftables), macOS (pf) y Windows Defender. En lugar de memorizar sintaxis complicada, simplemente especificas tu intención—permitir un puerto, bloquear una IP, permitir SSH desde una subred—y obtienes comandos listos para ejecutar personalizados para tu sistema.

Administradores de sistemas, desarrolladores configurando servidores y usuarios conscientes de la seguridad dependen de este generador para crear rápidamente reglas sin prueba y error manual. Ya sea endureciendo una VPS, protegiendo un laboratorio casero o asegurando un entorno de pruebas, el generador garantiza que la sintaxis sea correcta antes de ejecutarla. Como cada plataforma usa diferentes formatos de comando y convenciones de banderas, esta herramienta elimina la fricción de cambiar contexto entre documentaciones.

Preguntas Frecuentes

Implementación de Código

#!/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.