Generador de Reglas iptables
Genera reglas de iptables desde CSV
Rule Definitions
Format
source, port, protocol, action
Use * for any. Protocols: tcp, udp, icmp, all
iptables Commands
Enter rules to generate iptables commands
El iptables Rule Generator crea reglas de firewall Linux a partir de entrada CSV estructurada. Ingresa tus reglas como filas con columnas de chain, origen, destino, protocolo, puerto y acción, y obtén comandos iptables correctamente formateados con el orden apropiado de flags -- sin necesidad de memorizar la sintaxis verbosa y propensa a errores de iptables.
Entendiendo iptables
Si administras servidores Linux, iptables es probablemente la primera herramienta de firewall que encuentras. Ha sido la interfaz estándar de filtrado de paquetes de Linux desde el kernel 2.4 (lanzado en 2001), y a pesar de ser sucedido por nftables en distribuciones más nuevas, iptables sigue siendo el firewall Linux más ampliamente desplegado en producción. La mayoría de la documentación, tutoriales y herramientas de automatización todavía apuntan a la sintaxis de iptables, y la capa de compatibilidad iptables-nft asegura que los comandos iptables funcionen incluso en sistemas que usan el backend de nftables.
El desafío con iptables es su sintaxis de línea de comandos. Cada regla es un solo comando con flags que deben aparecer en un orden específico, y equivocarse en un flag puede crear silenciosamente una regla que no coincide con lo que pretendías. Un -p tcp faltante antes de --dport 443 produce un error. Un -j ACCEPT cuando querías decir -j DROP crea un agujero de seguridad. Y cuando estás construyendo una configuración de firewall completa con 30 o 40 reglas, escribir cada comando a mano es tedioso y propenso a errores.
Este generador resuelve el problema aceptando tus reglas en un formato CSV simple y produciendo comandos iptables correctos. Puedes diseñar tu firewall en una hoja de cálculo, pegar el CSV, y obtener un script completo que puedes revisar, versionar y desplegar. El generador maneja el orden de flags, la sintaxis multiport, el seguimiento de conexiones, la especificación de interfaz y la detección automática de IPv4/IPv6 -- todos los detalles que confunden incluso a administradores experimentados al escribir reglas a mano.
Cómo generar reglas iptables desde CSV
- Prepara tus datos de reglas en formato CSV con columnas: chain, origen, destino, protocolo, puerto(s) y acción.
- Pega o sube el CSV al generador.
- El generador analiza cada fila y produce un comando
iptablescompleto con los flags correctos. - Revisa los comandos de salida -- las reglas IPv4 usan
iptablesy las reglas IPv6 usanip6tablesautomáticamente. - Copia los comandos para ejecución directa o exporta como un script de shell.
Formato de entrada CSV y comandos generados
Entrada 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
Salida generada
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
Características avanzadas
| Campo CSV | Flag iptables | Ejemplo |
|---|---|---|
| Rango de puertos | --dport | 8000:8080 genera --dport 8000:8080 |
| Múltiples puertos | -m multiport --dports | 80,443,8080 genera -m multiport --dports 80,443,8080 |
| Puerto de origen | --sport | Columna separada para especificación de puerto de origen |
| Seguimiento de conexiones | -m state --state | ESTABLISHED,RELATED para reglas con estado |
| Interfaz | -i / -o | eth0 genera -i eth0 para la chain INPUT |
| Logging | -j LOG --log-prefix | "SSH-BLOCK: " genera -j LOG --log-prefix "SSH-BLOCK: " |
Cuándo usar el iptables Rule Generator
- Hardening de servidores -- Construye un conjunto completo de reglas de firewall desde una hoja de cálculo de requisitos de seguridad durante la configuración inicial del servidor.
- Respuesta a incidentes -- Genera rápidamente reglas de bloqueo para IPs de atacantes recopiladas durante un incidente activo.
- Migración de plataforma -- Convierte reglas de firewall de Windows Firewall, AWS security groups u otras plataformas a sintaxis iptables.
- Scripts de automatización -- Genera scripts de configuración de firewall para flujos de aprovisionamiento con Ansible, Puppet o basados en shell.
- Aprendiendo iptables -- Estudia la relación entre las especificaciones CSV y los comandos generados para entender la sintaxis de iptables.
Cómo funciona la sintaxis de reglas iptables
Estructura del comando
Cada comando iptables sigue este patrón:
iptables -A <CHAIN> [-s origen] [-d destino] -p <protocolo> [--dport puerto] -j <ACCIÓN>
-Aagrega la regla a la chain especificada-sy-despecifican direcciones de origen y destino en notación CIDR-pestablece el protocolo (tcp,udp,icmp)--dportestablece el puerto de destino (requiere-p tcpo-p udp)-jestablece la acción objetivo
Tipos de chains
| Chain | Dirección | Caso de uso |
|---|---|---|
INPUT | Entrante a este host | Proteger servicios que corren en este servidor |
OUTPUT | Saliente desde este host | Controlar a qué puede conectarse este servidor |
FORWARD | A través de este host | Escenarios de enrutamiento/NAT, appliances de firewall |
IPv4 vs. IPv6
Cuando el generador detecta una dirección IPv6 (por ejemplo, 2001:db8::/32), produce comandos ip6tables en lugar de iptables:
ip6tables -A INPUT -s 2001:db8::/32 -p tcp --dport 443 -j ACCEPT
Consejos prácticos para la configuración de iptables
Lo más crítico que debes entender sobre iptables es el orden de las reglas. Las reglas en una chain se evalúan de arriba hacia abajo, y la primera regla que coincide gana. Si pones una regla ACCEPT amplia antes de una regla DROP específica, el DROP nunca se ejecuta. Esto es especialmente importante para la chain INPUT: siempre pon tus reglas de permiso específicas primero, luego tus reglas de denegación específicas, y termina con una denegación por defecto (iptables -A INPUT -j DROP). El generador preserva el orden de las filas de tu CSV, así que organiza tu hoja de cálculo en consecuencia.
El segundo error más común es no guardar las reglas para persistencia. Por defecto, las reglas de iptables viven en la memoria del kernel y desaparecen al reiniciar. En Debian/Ubuntu, usa iptables-save > /etc/iptables/rules.v4 e instala el paquete iptables-persistent. En RHEL/CentOS, usa service iptables save. Si omites este paso, tu servidor regresa de un reinicio sin firewall -- una ventana de vulnerabilidad crítica que ha causado incidentes de seguridad reales.
Al construir una configuración de firewall completa, siempre incluye reglas con estado al inicio de tus chains INPUT y OUTPUT. Una regla como iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT permite el tráfico de retorno para conexiones que tu servidor inició, sin la cual las conexiones salientes (actualizaciones de paquetes, consultas DNS, llamadas a API) se romperían. Sin esta regla, necesitarías reglas explícitas para cada ruta de retorno, lo cual es impráctico. Coloca esta regla primero en la chain INPUT para mejor rendimiento, ya que la mayoría de los paquetes en un servidor activo son parte de conexiones establecidas.
Preguntas frecuentes
¿Cuál es la diferencia entre DROP y REJECT?
DROP descarta silenciosamente el paquete sin respuesta -- la conexión del remitente se agota por timeout. REJECT envía de vuelta un ICMP "port unreachable" o TCP RST, informando al remitente inmediatamente. DROP es más común para reglas que miran al exterior; REJECT es más útil en redes internas donde se prefiere el fallo rápido.
¿Cómo aplico las reglas generadas?
Copia los comandos y ejecútalos directamente en una shell root, o guárdalos como script y ejecútalo. Las reglas toman efecto inmediatamente pero se pierden al reiniciar. Usa iptables-save > /etc/iptables/rules.v4 para persistir las reglas entre reinicios en Debian/Ubuntu, o service iptables save en RHEL/CentOS.
¿Puede el generador crear reglas para chains personalizadas?
Sí. Ingresa un nombre de chain personalizado en la columna de chain (por ejemplo, LOGGING o SSH-RULES). El generador produce el comando -A CUSTOMCHAIN, pero debes crear la chain por separado con iptables -N CUSTOMCHAIN antes de aplicar las reglas.
¿Debería usar iptables o nftables para nuevos despliegues? Para nuevos despliegues en distribuciones modernas (Debian 10+, RHEL 8+, Ubuntu 20.04+), nftables es la opción recomendada. Ofrece sintaxis más limpia, mejor rendimiento y carga atómica de conjuntos de reglas. Usa el nftables Rule Generator para esos sistemas. Para sistemas existentes que ya ejecutan iptables, o para compatibilidad con automatización heredada, iptables sigue siendo una opción sólida.
¿Cómo limpio todas las reglas existentes antes de aplicar nuevas?
Usa iptables -F para limpiar todas las reglas en todas las chains, e iptables -X para eliminar chains personalizadas. Ten cuidado: si limpias las reglas en un servidor remoto sin antes establecer la política por defecto a ACCEPT, te bloquearás a ti mismo. Siempre ejecuta iptables -P INPUT ACCEPT antes de limpiar.
¿Puedo generar reglas con comentarios?
Sí. iptables soporta la sintaxis -m comment --comment "descripción" para agregar comentarios legibles a las reglas. Si tu CSV incluye una columna de descripción, el generador puede incrustarla como comentario en cada regla.
Herramientas relacionadas
- nftables Rule Generator - Genera reglas nftables desde CSV para distribuciones Linux modernas
- Allowlist Builder - Construye allowlist CIDR mínima desde lista de IPs
- Blocklist Builder - Construye blocklist CIDR mínima desde lista de IPs
- AWS Security Group Rule Generator - Genera reglas de AWS Security Group desde CSV
- Rule Conflict Finder - Encuentra reglas de firewall duplicadas, eclipsadas o superpuestas