Comparativa: nftables vs firewalld en servidores Ubuntu 22.04 (VPS) — rendimiento, reglas y ejemplos prácticos

Por · Publicado el · 8 min de lectura

Dos pantallas de ordenador con terminales y gráficos verdes sobre una mesa en un entorno oscuro
Ilustra la administración de sistemas y redes en servidores VPS Foto: Tima Miroshnichenko / Pexels

Comparativa: nftables vs firewalld en Ubuntu 22.04 para servidores VPS — rendimiento, reglas y ejemplos prácticos. Esta guía muestra qué cambia en la operación, cuándo conviene cada opción y cómo aplicar configuraciones equivalentes de forma segura. Verás impactos en operación, automatización y auditoría para decidir con confianza.

Qué son y cómo se relacionan en Ubuntu 22.04

nftables es el subsistema de filtrado de paquetes del kernel Linux. firewalld es un demonio de alto nivel que gestiona políticas por zonas y servicios, usando nftables como backend en Ubuntu 22.04.

Las decisiones de permitir o bloquear se toman en el dataplane del kernel (nf_tables). firewalld traduce las políticas a nftables. La diferencia está en cómo se declaran, versionan y operan las reglas.

Si estás empezando el hardening del servidor, consulta el checklist de seguridad para VPS Linux para buenas prácticas complementarias.

  • nftables: sintaxis declarativa, sets/maps, apply atómico.
  • firewalld: zonas, servicios conocidos, API D‑Bus y CLI.
  • En el dataplane, el rendimiento es equivalente en ambos.

Cuál es más rápido en VPS?

En tráfico de red, nftables puro y firewalld tienen un rendimiento práctico equivalente. El kernel decide los paquetes en el mismo subsistema nftables. La diferencia aparece en la gestión de las reglas y en las recargas.

nftables mediante un archivo único facilita el apply atómico y el rollback sencillo. firewalld permite cambios en runtime y recargas granulares; complete-reload puede causar una breve interrupción. En VPS habituales, el impacto suele ser despreciable.

  • Dataplane: igual para ambos (kernel nf_tables).
  • nftables: apply atómico con archivo versionable.
  • firewalld: friendly para runtime; complete-reload puede interrumpir.
  • CPU/RAM del firewall: mínimos respecto a la aplicación.

Tabla comparativa: cuándo conviene cada opción

La elección depende del flujo de trabajo, la necesidad de zonas y la complejidad de las reglas. Este comparativo: nftables vs firewalld para servidores Ubuntu 22.04 en VPS resume criterios objetivos para decidir.

Criterio nftables firewalld
Capa/backend Lenguaje nativo del kernel (nf_tables) Gestor por zonas; usa nftables como backend
Rendimiento de tráfico Equivalente (dataplane del kernel) Equivalente (dataplane del kernel)
Cambios/recargas Archivo único, apply atómico con rollback sencillo Cambios en tiempo de ejecución; recargas granulares; complete-reload puede interrumpir
Curva de aprendizaje Mayor; sintaxis propia y potente Menor; servicios y zonas preconfigurados
Zonas/servicios Modela con chains, sets y maps Nativo; facilita DMZ, public, internal
Reglas avanzadas (sets/maps) Excelente; recurso central del lenguaje Posible vía rich/direct rules
Automatización/CI/CD Excelente; archivo declarativo versionable Bueno; firewall-cmd, permanent y D‑Bus
Auditoría/configuración como código Sencillo con /etc/nftables.conf Requiere exportar o playbooks para converger
Registros Instrucción 'log' con prefijos Rich rules o nivel de log por zona

Cuál elegir para mi servidor Ubuntu 22.04 en VPS?

Para control fino, versionado sencillo y uso de sets/maps, nftables directo suele ser la mejor opción. Para agilidad operativa con zonas y servicios predefinidos, firewalld acelera la rutina sin sacrificar seguridad.

Ambos protegen correctamente. Lo que cambia es la gestión: archivo declarativo único (nftables) frente a comandos y zonas (firewalld). Integra la solución con tu provisión y monitoriza continuamente los resultados.

  • Equipo pequeño e IaC: nftables con archivo versionado.
  • Operación basada en zonas/servicios: firewalld.
  • IPv4 e IPv6: ambos cubren plenamente.
  • Listas grandes de IPs: nftables destaca.

Ejemplos de reglas en nftables (política restrictiva)

El ejemplo crea la table inet 'filter' con política por defecto drop y libera SSH, HTTP(S), loopback, ICMP y conexiones establecidas. Aplicar reglas incorrectas puede dejarte sin sesión SSH; mantén una segunda sesión y un plan de rollback.

Después de guardar el archivo, aplica con 'sudo nft -f /etc/nftables.conf' y valida con 'sudo nft list ruleset'.

# /etc/nftables.conf
flush ruleset

table inet filter {
  sets {
    ssh_admins_v4 { type ipv4_addr; flags interval; elements = { 203.0.113.0/24 } }
  }
  chains {
    input {
      type filter hook input priority 0; policy drop;
      ct state established,related accept
      iif lo accept
      ip protocol icmp accept
      ip6 nexthdr icmpv6 accept
      tcp dport { 80, 443 } accept
      ip saddr @ssh_admins_v4 tcp dport 22 accept
      counter log prefix "nft-drop " flags all drop
    }
    forward { type filter hook forward priority 0; policy drop; }
    output { type filter hook output priority 0; policy accept; }
  }
}

Ejemplos equivalentes en firewalld (zonas y servicios)

A continuación, configuramos la zona 'public', liberamos HTTP/HTTPS y restringimos SSH a un bloque IPv4 mediante una rich rule. Hacemos los cambios permanentes y recargamos. Si vas a eliminar el acceso SSH amplio, prueba antes por consola/serial para evitar perder el acceso.

Para accesos administrativos robustos, considera un salto dedicado; mira cómo montar un bastión SSH en Ubuntu 22.04.

sudo apt-get update && sudo apt-get install -y firewalld
sudo systemctl enable --now firewalld

# Defina a zona padrão e remova SSH amplo (se existir)
sudo firewall-cmd --set-default-zone=public
sudo firewall-cmd --permanent --remove-service=ssh || true

# Libere HTTP/HTTPS na zona padrão
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Restrinja SSH ao bloco 203.0.113.0/24
sudo firewall-cmd --permanent \
  --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" port protocol="tcp" port="22" accept'

# Aplique alterações
sudo firewall-cmd --reload

# Verifique
sudo firewall-cmd --list-all

Cómo operar en producción: versionado, rollback y auditoría

Para nftables, versionar el archivo /etc/nftables.conf simplifica la auditoría y el rollback. Usa CI/CD con 'nft -c -f' para validar la sintaxis antes del apply. En firewalld, mantén playbooks idempotentes y exporta periódicamente la configuración permanente.

Prueba en staging y valida accesos con health checks y logs. Refuerza el perímetro con capas complementarias como bloqueo de fuerza bruta y mitigación de volumetría.

Para picos de scans o brute force, consulta fail2ban con webhooks. Si sufres volumetría alta, compleméntalo con mitigación DDoS en VPS.

  • Staging antes de producción, con pruebas de conectividad.
  • Sesión SSH extra y ventana de rollback planificada.
  • Recogida de logs y alertas para intentos bloqueados.
  • Automatización idempotente para evitar drift de configuración.

Errores comunes al configurar el firewall en VPS Ubuntu 22.04

Evitar trampas ahorra tiempo e incidentes. Revisa los puntos siguientes antes de aplicar reglas en producción. El comparativo: nftables vs firewalld para servidores Ubuntu 22.04 en VPS te ayuda a planificar sin sorpresas.

  • Olvidar IPv6: protege ip e ip6 de forma consistente.
  • Bloquear SSH sin una excepción segura o consola disponible.
  • No empezar con una política por defecto restrictiva (drop).
  • Recargar reglas sin chequear la sintaxis y sin un rollback planificado.
  • Ignorar capas complementarias como fail2ban y límites.
  • No monitorizar tras cambios: valida puertos y tráfico real.

Preguntas frecuentes

¿nftables reemplaza a iptables en Ubuntu 22.04?

Sí. El kernel usa el subsistema nftables por defecto, y las CLIs de iptables suelen apuntar al backend nft (iptables-nft). Para nuevas implementaciones, enfócate en nftables y su sintaxis nativa.

¿firewalld usa nftables en Ubuntu 22.04?

Sí. En Ubuntu 22.04, firewalld normalmente utiliza nftables como backend. El tráfico se decide en el kernel; firewalld simplifica la gestión con zonas, servicios y la API D‑Bus.

¿Cuál tiene mejor rendimiento: nftables puro o firewalld?

El rendimiento de tráfico es esencialmente igual, ya que ambos usan el mismo dataplane del kernel. La diferencia está en la gestión y en las recargas, no en el procesamiento de paquetes.

¿Es seguro recargar el firewall vía SSH en producción?

Sí, siempre que mantengas una segunda sesión abierta y tengas un plan de rollback. Valida la sintaxis antes, aplica en una ventana controlada y prueba la conectividad justo después de la recarga.

¿Puedo combinar firewalld y reglas directas en nftables?

Puedes, pero es preferible mantener consistencia. firewalld ya traduce a nftables; mezclar herramientas puede causar drift. Si adoptas firewalld, usa rich/direct rules dentro de él.

¿Cómo garantizo cobertura IPv6 en el firewall?

Define políticas para IPv4 e IPv6. En nftables usa 'table inet' con reglas para ip e ip6; en firewalld los servicios y rich rules operan en ambas familias cuando están bien configurados.

¿Quieres decidir entre nftables y firewalld e implementarlo con seguridad?

Hablemos de requisitos, riesgos y automatización del firewall en tu Ubuntu 22.04 en VPS. Planifiquemos políticas, pruebas y rollback para un cambio seguro.

Hablar sobre el proyecto

Ver también