¿Qué es este generador de reglas iptables / nftables?
Un firewall Linux mantiene el tráfico no deseado fuera de tu servidor. Las dos herramientas que vienen con el kernel son iptables (la clásica, en uso desde 1998) y nftables (el reemplazo moderno, por defecto en Debian 11+, Ubuntu 22.04+, RHEL 9+ y la mayoría de distros actuales).
Este generador te deja escribir reglas de firewall en una forma amigable y produce ambas sintaxis a la vez. Elige una chain (INPUT, OUTPUT, FORWARD), elige una acción (ACCEPT, DROP, REJECT, LOG), pon el protocolo, origen, destino, puertos y estado de conexión, y obtienes un ruleset listo para pegar.
Todo corre en tu navegador: no se aplican reglas, no se contacta con ningún servidor, no se sube nada. Copias la salida, abres tu terminal, la lees con atención y la ejecutas tú mismo. La herramienta es un generador, no un ejecutor.
Algunas cosas que conviene saber antes de empezar:
- La política por defecto de una chain es lo que pasa cuando no coincide ninguna regla. Poner INPUT en DROP más unas pocas reglas ACCEPT dirigidas es la postura clásica "deniega por defecto".
- El orden importa en iptables: las reglas se evalúan de arriba abajo, la primera coincidencia gana. Pon tu regla de tráfico de retorno (ESTABLISHED, RELATED) la primera para evitar romper conexiones existentes.
- nftables es declarativo (toda la tabla es un documento); iptables es imperativo (cada línea `-A` añade una regla).
Cómo usarlo
- Empieza con un preset si puedes: "Servidor web básico", "SSH bloqueado", "Permitir LAN, denegar WAN", "Chain forward de Docker" o "Rate limit SSH". Cada uno rellena valores sensatos por defecto que puedes ajustar.
- Pon la política por defecto por chain. La postura segura es INPUT=DROP, FORWARD=DROP, OUTPUT=ACCEPT. La política OUTPUT suele ser ACCEPT porque confías en tu propio servidor para hablar hacia fuera.
- Añade reglas en orden. La primerísima regla INPUT debería ser: protocolo=cualquiera, estado=ESTABLISHED+RELATED, acción=ACCEPT. Esto mantiene vivas las conexiones existentes cuando recargas el firewall.
- Para cada regla elige la chain, la acción, el protocolo, IP de origen opcional (o CIDR como 192.168.1.0/24), IP de destino opcional, puerto de origen/destino opcional y un estado de conexión si necesitas matching stateful.
- Usa el interruptor conntrack para elegir entre el moderno `-m conntrack --ctstate` y el legacy `-m state --state`. Los kernels modernos van por conntrack; mantenlo encendido salvo que tu distro sea antiquísima.
- Mira la previsualización en vivo a la derecha. El panel de arriba es iptables, el de abajo es nftables. Ambos se mantienen sincronizados desde el mismo modelo y ambos tienen botón Copiar.
- Prueba antes de comprometer. Copia el bloque iptables, pégalo en el servidor, ejecútalo. Si te bloqueas, las reglas no sobrevivirán a un reinicio (viven solo en memoria). Tras 5 minutos de pruebas, persístelas con `netfilter-persistent save` (Debian/Ubuntu) o guarda el bloque nftables en `/etc/nftables.conf`.
Cuándo es útil
Cinco situaciones concretas en las que construir reglas en un formulario gana a escribirlas a mano:
- Configuras un VPS recién creado y necesitas un firewall de arranque. El preset "Servidor web básico" abre los puertos 22 (SSH), 80 (HTTP), 443 (HTTPS) y descarta todo lo demás. Es el paso canónico tras instalar un servidor, y el generador lo escribe una sola vez para ambas sintaxis para que escojas la que use tu distro.
- Estás migrando de iptables a nftables. Muchas distros (Debian 11+, RHEL 9+) hicieron a nftables el default y el comando `iptables` legacy es un wrapper. Pega tus reglas iptables existentes en el formulario, cambia la previsualización a nftables y tienes un `/etc/nftables.conf` listo para guardar.
- Quieres bloquear SSH a una IP. El preset "SSH bloqueado" muestra el patrón: ACCEPT desde tu IP de oficina, LOG y DROP todo lo demás. Tres reglas, en el orden correcto, con matching de estado incluido.
- Gestionas un host Docker y la chain FORWARD es un caos. Docker reescribe la chain FORWARD en cada reinicio, lo cual está bien, pero aún así necesitas saber cómo se ven buenas reglas FORWARD. El preset "Chain forward de Docker" es una baseline limpia que puedes adaptar.
- Estás enseñando a alguien redes Linux. La vista side-by-side iptables vs nftables es la forma más rápida de mostrar la equivalencia: mismo modelo, dos sintaxis. Cambia un estado, mira ambos paneles actualizarse y la relación entre `-m conntrack --ctstate` y `ct state` cliquea al instante.