Generador de Reglas nftables

Genera reglas de nftables desde CSV

Rule Definitions

nftables Configuration

Enter rules to generate nftables configuration

El Generador de reglas nftables crea reglas de firewall modernas para Linux a partir de entrada CSV estructurada usando sintaxis nftables. Ingresa reglas como filas CSV con columnas de familia de tabla, cadena, origen, destino, protocolo, puerto y acción, y obtén comandos nft individuales o un archivo de ruleset completo que puede cargarse atómicamente -- el enfoque recomendado para distribuciones Linux actuales incluyendo Debian 10+, RHEL 8+ y Ubuntu 20.04+.

Entendiendo nftables

Si estás configurando un firewall en una distribución Linux moderna, nftables es la herramienta que deberías usar. Reemplazó a iptables como el framework de filtrado de paquetes predeterminado a partir del kernel Linux 3.13, y todas las distribuciones principales ahora incluyen nftables como backend predeterminado. Debian, Ubuntu, RHEL, Fedora y Arch Linux usan nftables internamente, incluso cuando ejecutas comandos iptables (la capa de compatibilidad iptables-nft los traduce automáticamente).

La ventaja más importante de nftables sobre iptables es la carga atómica del ruleset. Con iptables, cada regla es un comando separado que modifica el estado activo del kernel -- así que si tu script falla a mitad de camino, terminas con un ruleset parcial que podría tener brechas de seguridad. nftables te permite escribir toda tu configuración en un solo archivo y cargarla en una operación con nft -f. Si alguna regla tiene un error de sintaxis, toda la carga falla y nada cambia. Este comportamiento atómico elimina el problema del "firewall a medio cargar" que ha causado incidentes de seguridad reales con iptables.

La segunda mejora importante es la sintaxis más limpia para patrones comunes. En iptables, coincidir con múltiples puertos requiere la extensión torpe -m multiport --dports 80,443,8080. En nftables, escribes tcp dport { 80, 443, 8080 } -- un conjunto simple que se lee como una expresión natural. La familia inet te permite escribir una regla que aplica tanto a IPv4 como a IPv6 en lugar de mantener configuraciones separadas de iptables e ip6tables. Los conjuntos nombrados te permiten definir un grupo de direcciones una vez y referenciarlo en múltiples reglas. Estas características reducen la complejidad de configuración y hacen las reglas de firewall más fáciles de leer durante auditorías.

Cómo generar reglas nftables desde CSV

  1. Prepara tus datos de reglas en formato CSV con columnas: familia de tabla, cadena, origen, destino, protocolo, puerto(s) y acción.
  2. Pega o sube el CSV al generador.
  3. Elige el formato de salida: comandos nft individuales o un archivo de ruleset completo.
  4. El generador produce sintaxis nftables aprovechando características como conjuntos, mapas y la familia inet.
  5. Copia la salida y cárgala con nft -f ruleset.nft para aplicación atómica.

Formato de entrada CSV y reglas generadas

Entrada CSV

family,chain,source,destination,protocol,port,action
inet,input,203.0.113.0/24,,tcp,22,drop
inet,input,10.0.0.0/8,,tcp,443,accept
inet,input,,,tcp,80,accept
inet,output,,198.51.100.10,tcp,3306,accept
inet,forward,192.168.1.0/24,10.0.0.0/8,tcp,8080,accept

Archivo de ruleset generado

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        ip saddr 203.0.113.0/24 tcp dport 22 drop
        ip saddr 10.0.0.0/8 tcp dport 443 accept
        tcp dport 80 accept
    }

    chain output {
        type filter hook output priority 0; policy accept;

        ip daddr 198.51.100.10 tcp dport 3306 accept
    }

    chain forward {
        type filter hook forward priority 0; policy drop;

        ip saddr 192.168.1.0/24 ip daddr 10.0.0.0/8 tcp dport 8080 accept
    }
}

Comandos individuales generados

nft add table inet filter
nft add chain inet filter input '{ type filter hook input priority 0; policy drop; }'
nft add rule inet filter input ip saddr 203.0.113.0/24 tcp dport 22 drop
nft add rule inet filter input ip saddr 10.0.0.0/8 tcp dport 443 accept
nft add rule inet filter input tcp dport 80 accept

Características de nftables usadas por el generador

CaracterísticaSintaxis nftablesEquivalente en iptables
Múltiples puertostcp dport { 80, 443, 8080 }-m multiport --dports 80,443,8080
Rango de puertostcp dport 8000-8080--dport 8000:8080
Múltiples orígenesip saddr { 10.0.0.0/8, 172.16.0.0/12 }Dos reglas separadas
Dual-stack (inet)table inet filterReglas separadas de iptables e ip6tables
Conjuntos nombradosset blocklist { type ipv4_addr; }Sin equivalente
Logginglog prefix "SSH: " dropReglas separadas -j LOG y -j DROP

Cuándo usar el generador de reglas nftables

  • Nuevos despliegues de servidor -- Las distribuciones modernas incluyen nftables como predeterminado; comienza con sintaxis nftables desde el principio.
  • Migración desde iptables -- Convierte reglas iptables existentes a nftables al actualizar a Debian 10+, RHEL 8+ o Ubuntu 20.04+.
  • Carga atómica de ruleset -- A diferencia de iptables (regla por regla), nftables puede cargar un ruleset completo atómicamente con nft -f, eliminando brechas durante cambios de configuración.
  • Infrastructure as Code -- Genera rulesets nftables desde datos CSV/hoja de cálculo para configuraciones de firewall versionadas y repetibles.
  • Simplificación dual-stack -- Usa la familia inet para escribir una regla que aplique tanto a IPv4 como a IPv6 en lugar de mantener rulesets separados.

Cómo nftables difiere de iptables

Familias de tabla

nftables organiza las reglas por familia, que determina qué tráfico procesa la tabla:

  • inet -- Maneja tanto IPv4 como IPv6 (la opción más común)
  • ip -- Solo IPv4
  • ip6 -- Solo IPv6
  • arp -- Protocolo ARP
  • bridge -- Filtrado a nivel de bridge

Conjuntos y mapas

nftables soporta conjuntos anónimos en línea y conjuntos nombrados reutilizables:

# Conjunto anónimo -- múltiples valores en una regla
tcp dport { 22, 80, 443 } accept

# Conjunto nombrado -- reutilizable en múltiples reglas
set trusted_nets {
    type ipv4_addr
    flags interval
    elements = { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }
}

ip saddr @trusted_nets accept

Carga atómica

El generador puede producir un archivo de ruleset completo que reemplaza toda la configuración en una sola operación:

nft -f /etc/nftables.conf    # Carga todo el ruleset atómicamente
nft list ruleset              # Verifica las reglas activas

Consejos prácticos para la configuración de nftables

Si estás migrando desde iptables, resiste la tentación de simplemente traducir las reglas una a una. nftables tiene características que te permiten expresar la misma política con muchas menos reglas. Aprovecha la oportunidad para consolidar: fusiona múltiples reglas específicas de puerto en reglas basadas en conjuntos, combina reglas IPv4 e IPv6 usando la familia inet y reemplaza cadenas de LOG-luego-DROP con sentencias únicas log prefix "..." drop. Una migración es el momento perfecto para auditar y simplificar tu política de firewall, no solo transliterarla.

Para servidores en producción, siempre almacena tu configuración nftables en /etc/nftables.conf y habilita el servicio nftables de systemd con systemctl enable nftables. Esto asegura que tus reglas se carguen al arranque. A diferencia de iptables donde necesitas un mecanismo de persistencia separado (iptables-persistent en Debian, iptables-services en RHEL), la persistencia de nftables está integrada en el archivo de unidad de servicio estándar. Después de hacer cambios, ejecuta nft -c -f /etc/nftables.conf para verificar la sintaxis sin aplicar, luego recarga con systemctl restart nftables.

Al depurar reglas nftables, el comando nft list ruleset es tu mejor aliado. Muestra la configuración activa completa exactamente como el kernel la ve, incluyendo contadores de reglas que te dicen cuántos paquetes ha coincidido cada regla. Si un contador de regla permanece en cero, o no ha llegado tráfico coincidente o una regla más arriba en la cadena está capturando el tráfico primero. Usa nft monitor para registro en tiempo real de coincidencias de reglas, lo cual es invaluable al solucionar por qué tráfico específico está siendo descartado.

Preguntas frecuentes

¿Puedo ejecutar iptables y nftables al mismo tiempo? Técnicamente ambos usan el mismo framework netfilter del kernel, pero ejecutar ambos simultáneamente causa conflictos. La capa de compatibilidad iptables-nft traduce los comandos iptables a nftables internamente, pero mezclar reglas nftables nativas con comandos iptables no es recomendable.

¿Cómo persisto las reglas nftables entre reinicios? Guarda tu ruleset en /etc/nftables.conf y habilita el servicio nftables de systemd: systemctl enable nftables. El servicio carga el archivo de ruleset al arranque.

¿Qué es la familia inet y debo usarla siempre? La familia inet procesa tanto tráfico IPv4 como IPv6 en una sola tabla, eliminando la necesidad de reglas duplicadas. Usa inet para la mayoría de las configuraciones. Usa ip o ip6 solo cuando necesites comportamiento específico de una familia de direcciones.

¿Cómo migro de iptables a nftables? Usa el comando iptables-save para exportar tus reglas actuales, luego pásalas por iptables-restore-translate (parte del paquete iptables-nft) para obtener un equivalente en nftables. Revisa la salida cuidadosamente -- la traducción automatizada produce nftables funcional pero no idiomático. Usa este generador para construir reglas nftables limpias desde cero cuando sea posible.

¿Cuál es la diferencia de rendimiento entre iptables y nftables? nftables usa una máquina virtual optimizada en el kernel para la evaluación de reglas, que es generalmente más rápida que iptables para rulesets complejos. La mejora es más notable con rulesets grandes (cientos de reglas) y coincidencia basada en conjuntos. Para configuraciones simples con una docena de reglas, la diferencia es insignificante.

¿Puedo usar nftables en kernels más antiguos? nftables requiere kernel Linux 3.13 o posterior. Las características básicas funcionan desde 3.13, pero características avanzadas como mapas y conjuntos concatenados requieren 4.1+. Todas las distribuciones LTS actuales incluyen kernels suficientemente recientes.

Herramientas relacionadas

IPparse•Herramientas gratuitas de cálculo de redes y subredes

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected