Comparativa: nftables vs firewalld en servidores Ubuntu 22.04 (VPS) — rendimiento, reglas y ejemplos prácticos
Por Kevin Marcondes · Publicado el · 8 min de lectura
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 proyectoVer también
- Comparativo: ZFS vs LVM+LUKS en VPS con bases de datos — snapshots, rendimiento y recuperación tras fallos
- Análisis práctico — comparativa: Nginx Unit vs PHP‑FPM vs RoadRunner para ejecutar monolitos PHP en contenedores — latencia, throughput y consumo de memoria
- Comparativa: Flyway vs Liquibase vs Sqitch para versionado de base de datos en proyectos PHP/Laravel
- Comparativa: ZFS vs Btrfs para snapshots, replicación y retención incremental en VPS con contenedores Docker — pros y contras prácticos