...

Netfilter frente a nftables: comparación de tecnologías modernas de cortafuegos en Linux

Comparo Netfilter como marco del núcleo con la cortafuegos nftables como capa de configuración moderna y mostraré en qué aspectos coinciden y en cuáles difieren. Para ello, explicaré la arquitectura, el rendimiento y la migración desde iptables, y ofreceré recomendaciones concretas sobre el funcionamiento, el registro de eventos y las herramientas.

Puntos centrales

  • Demarcación: Netfilter como marco del núcleo, nftables como nivel de reglas y gestión.
  • Arquitectura: Análisis basado en VM, conjuntos/mapas, actualizaciones transaccionales.
  • Escala: Reglas más breves, menos sobrecarga, mejor rendimiento.
  • Migración: iptables-translate, capa de compatibilidad, pruebas por etapas.
  • Operación: Denegación por defecto, filtrado con seguimiento del estado, registro de eventos limpio.

¿Qué es Netfilter?

Netfilter En el núcleo de Linux, proporciona las interfaces a través de las cuales se ejecutan el filtrado de paquetes, el NAT y el seguimiento de conexiones, y ofrece «hooks» en puntos definidos de la pila de red. Yo aplico reglas mediante herramientas como iptables o nftables a estos «hooks» y, de este modo, controlo el ciclo de vida de cada paquete. De este modo, el sistema decide si acepta, descarta o modifica los paquetes, y los asigna a las conexiones existentes. Esta separación entre la mecánica del núcleo y las herramientas de usuario mantiene la flexibilidad en la gestión y garantiza que pueda adaptar las reglas sin necesidad de modificar el núcleo. Para mí está claro: sin un conocimiento profundo de los hooks de Netfilter, no es posible crear una Cortafuegos de Linux gestionar.

Hooks de Netfilter y orden en la ruta de paquetes

En el día a día, merece la pena conocer los puntos clave y su orden habitual: preenrutamiento se aplica en una fase temprana y resulta adecuado para tomar decisiones de enrutamiento o NAT, entrada gestiona los paquetes dirigidos al sistema local, adelante se encarga del reenvío entre interfaces y salida Se refiere a los paquetes generados localmente. postrouting , en definitiva, resume todo lo que sale del sistema. En nftables, vinculo cadenas a estos hooks y asigno un Prioridad, por ejemplo, para ejecutar la lógica de Mangle antes de las decisiones de filtrado o para colocar el NAT en los puntos establecidos para ello. Esto evita efectos secundarios no deseados, como cuando reescribo un paquete antes de que se asocie con Conntrack. Quienes utilicen las familias Bridge o netdev deben incluir hooks adicionales para cubrir de forma coherente los escenarios de capa 2 y las rutas iniciales de los paquetes.

Por qué se creó nftables

iptables Llevaba mucho tiempo así, pero el uso de herramientas separadas para IPv4, IPv6, ARP y puentes provocaba duplicidad de trabajo y cadenas de reglas difíciles de leer. He visto cómo los grandes conjuntos de reglas crecen, se vuelven lentos y provocan errores al realizar cambios. nftables rompe esta fragmentación, aúna los protocolos bajo un único comando y me permite formular las reglas de forma más concisa. De este modo, los archivos de reglas se reducen, los cambios siguen siendo atómicos y la evaluación es más eficiente. Para dar los primeros pasos, merece la pena echar un vistazo a Ejemplos prácticos, ya que ponen rápidamente de manifiesto dónde se topa la antigua sintaxis con sus límites y dónde nftables de una forma más elegante.

nftables: arquitectura y conceptos

Con nft Controlo un subsistema que evalúa reglas a través de una pequeña máquina virtual en el núcleo y, de este modo, representa de forma eficiente saltos, comparaciones y operaciones con datos. Estructuro mi configuración en tablas, cadenas y reglas, sin estar sujeto a restricciones rígidas como „filter“ o „nat“. Los conjuntos y los mapas me permiten gestionar de forma centralizada grupos de direcciones IP o puertos, lo que reduce el número de entradas y simplifica los cambios. Las actualizaciones transaccionales aplican todo el conjunto de reglas de forma coherente, evitando así que se produzcan estados a medio completar. Estos componentes se fusionan para formar una clara Arquitectura, que sigue siendo clara incluso cuando crece.

Prioridades, cadenas y políticas en detalle

En nftables, además del hook, también defino el Prioridad mi cadena. De este modo, puedo asegurarme, por ejemplo, de que las marcas o las decisiones de enrutamiento basadas en políticas se apliquen antes del filtro propiamente dicho. Utilizo esto para etiquetar previamente los paquetes entrantes, destacar clases de servicio específicas o realizar bifurcaciones mediante cadenas de salto. También es importante la Política predeterminada En una cadena base: „accept“ o „drop“ definen la política básica. Yo utilizo deliberadamente „default-deny“ en „input“ y «forward», pero suelo dejar «output» en «accept» y trabajo allí con rechazos claros para destinos prohibidos. En las cadenas de usuario, establezco retrocesos o veredictos finales inequívocos para evitar aceptaciones involuntarias. Los comentarios en las reglas y una nomenclatura coherente (p. ej., «svc_ssh_accept», «log_drops») mejoran considerablemente la legibilidad y las auditorías.

Ventajas prácticas en el día a día

Te escribo para nftables Con menos reglas, se consiguen los mismos resultados y se reduce notablemente el margen de error. Los conjuntos agrupan numerosas direcciones o servicios, y una sola entrada amplía de inmediato el tráfico permitido. La máquina virtual del núcleo evalúa las reglas sin rutas duplicadas, lo que aporta una velocidad notable en configuraciones extensas. Dado que IPv4, IPv6, ARP y el puente funcionan de forma unificada, documento las especificaciones de manera uniforme y ahorro tiempo en la revisión. Valoro especialmente los cambios transaccionales, porque me permiten Ventana de modificaciones mantener sin riesgo.

Estructura típica de una configuración de nftables

Suelo empezar con una tabla „inet“, ya que abarca tanto IPv4 como IPv6 y mantiene la Reglas juntos. En ellos creo cadenas para «input», «forward» y «output», las vinculo a los hooks correspondientes y establezco una política de denegación por defecto. Para NAT, defino tablas IP/IPv6 independientes con prerouting y postrouting, para que la traducción de direcciones quede claramente separada. Coloco los registros de log cerca de los puntos de decisión para poder filtrarlos posteriormente de forma específica y analizar los incidentes con mayor rapidez. De este modo se crea una estructura clara que documento de forma ordenada con conjuntos, mapas y comentarios, y que controlo mediante el control de versiones del Configuración Archívalo de forma segura.

Persistencia, control de versiones y reversiones

Para garantizar una implementación robusta, guardo mis reglas en archivos, las cargo con „nft -f“ y archivo las versiones en el gestor de configuración. Antes de realizar cambios en entornos de producción, utilizo comprobaciones sintácticas („nft -c“) y, en primer lugar, aplico las nuevas versiones en sistemas de prueba. En entornos de producción, ha dado buenos resultados, incremental Para trabajar: en lugar de „flush ruleset“, sustituyo cadenas concretas, compruebo los valores de los contadores y, si es necesario, vuelvo atrás de forma selectiva. Los „handles“ y las operaciones «replace» atómicas ayudan a implementar los cambios sin condiciones de carrera. Para las reversiones, guardo una configuración básica conocida y que funciona, así como una vía de retorno clara, como una reversión temporizada, por si se pierde el acceso durante la sesión.

Migración de iptables a nftables

Durante la migración, convierto las reglas existentes de iptables con iptables-translate, compruebo el resultado y las optimizo con sets y maps. Una capa de compatibilidad permite que muchas distribuciones sigan funcionando, pero yo apuesto por la sintaxis nativa de nft lo antes posible para aprovechar al máximo sus ventajas. Aplico los cambios por etapas, mido los efectos en la latencia y el rendimiento, y guardo en paralelo las reglas antiguas por si hay que volver a ellas. El registro me ayuda a detectar excepciones y a ajustar las reglas adecuadamente antes de que se vean afectados los servicios en producción. Quien busque un punto de partida, encontrará en Configuraciones del cortafuegos del servidor buenos puntos de referencia para la propia Migración planificar.

Modo de compatibilidad y problemas habituales

La capa de compatibilidad con iptables del backend de nftables facilita la transición, pero puede resultar confusa cuando se utilizan sistemas de forma mixta. Evito por completo utilizar iptables-legacy e iptables-nft en paralelo, ya que las situaciones mixtas son propensas a errores. Un escollo habitual son las herramientas que, sin que nos demos cuenta, recurren a rutas antiguas y, de este modo, generan reglas en entornos separados. Por eso compruebo desde el principio el modo de backend activo, defino las responsabilidades y desactivo los servicios antiguos que escriben de forma competitiva en el cortafuegos. En los casos en que las distribuciones aún incluyen configuraciones predeterminadas, vigilo de cerca el orden de inicio para que mis propias reglas no se sobrescriban ni se eliminen.

Funcionamiento, registro y supervisión

Conduzco un Denegar por defecto-Estrategia para el tráfico entrante que solo permite servicios claramente definidos mediante reglas bien comentadas. El filtrado con estado (stateful filtering) con seguimiento de conexiones (connection tracking) reduce el número de entradas necesarias y mantiene la coherencia de las conexiones. Para obtener información detallada, utilizo un registro específico con límites de frecuencia, de modo que los eventos sigan siendo visibles sin saturar los sistemas. Los análisis se realizan de forma centralizada, lo que me permite detectar anomalías de forma temprana y tomar medidas correctivas. Planifico las tareas de mantenimiento con actualizaciones atómicas de las reglas para lograr ventanas de cambio breves y seguras y la Accesibilidad para proteger.

Resolución de problemas y análisis en tiempo real

Cuando algo no funciona como esperaba, me baso en tres pilares: contadores, rastreo y supervisión de eventos. Los contadores de reglas y de cadenas me muestran qué rutas están activas y por dónde „circulan“ los paquetes. Para obtener una visión más detallada, utilizo Funciones de rastreo, para realizar un seguimiento de la cadena de decisiones de un paquete de ejemplo y aislar las coincidencias sospechosas. Además, un monitor en tiempo real de los eventos de Netlink proporciona información sobre cuándo se han cargado, sustituido o eliminado las reglas, lo cual resulta útil en caso de errores de automatización u orquestación. En las zonas críticas para la seguridad, registro los «drops» con prefijos únicos y límites estrictos, de modo que la correlación y las alertas funcionen de forma fiable.

Interfaces de usuario frente al control directo de NFT

firewalld Y UFW reducen las barreras de entrada y resultan adecuadas cuando el enfoque se centra en zonas o servicios sencillos. Para casos especiales o ajustes detallados, recurro directamente a nft, ya que allí puedo controlar secuencias, coincidencias y acciones sin rodeos. En entornos heterogéneos combino ambos: el frontend para funciones estándar y reglas directas para servicios especiales. Es importante conocer el modo de backend para que no se interpongan rutas ocultas de iptables. Con responsabilidades claras y una buena documentación, mantengo mi conjunto de reglas comprensible y garantizo el funcionamiento diario Administración.

Rendimiento, escalabilidad y contenedores

Los entornos de gran tamaño se benefician de los conjuntos compactos y del análisis eficiente que realiza la nft-VM, lo que Escala se simplifica notablemente. En entornos de contenedores y en la nube, combino los espacios de nombres con tablas claramente separadas, para que las reglas funcionen de forma independiente según el contexto. Las herramientas de orquestación pueden generar reglas, pero me aseguro de que existan políticas centrales para respetar en todo momento principios como el «denegación por defecto». Para las mediciones, utilizo pruebas de rendimiento antes y después de los cambios, comparo las latencias y observo la carga de la CPU, así como los contadores de paquetes perdidos. De este modo, mantengo el crecimiento bajo control sin que la Seguridad diluir.

Tablas de flujo y descarga de trabajo

Cuando el rendimiento y la latencia son factores críticos, utilizo Tablas de flujo de forma selectiva. Proporcionan a las conexiones establecidas una ruta más rápida a través del núcleo y, de este modo, alivian la carga de las comparaciones complejas en cadenas de reglas largas. Si se colocan correctamente —normalmente en el área de reenvío—, las tablas de flujos estabilizan el rendimiento incluso con un gran número de conexiones. En infraestructuras con el hardware adecuado, puedo marcar además las reglas para la descarga, de modo que parte del procesamiento se traslade a la tarjeta de red. Planifico estos pasos con cuidado, compruebo la matriz de controladores y características e incorporo telemetría adicional, ya que la depuración en las rutas de descarga requiere otras herramientas y, de lo contrario, las pérdidas poco claras siguen siendo difíciles de detectar.

Comparación: Netfilter, nftables e iptables

El siguiente resumen recoge las diferencias fundamentales y me ayuda a tomar decisiones sin perderme en cuestiones de detalle. Evalúo las funciones, la gestión y las perspectivas de futuro en función de las tareas que surgen a diario. Así puedo identificar rápidamente en qué casos Netfilter es imprescindible, en cuáles destaca nftables y en cuáles iptables sigue siendo una solución heredada. Esta clasificación facilita la transición y reduce considerablemente el tiempo de formación de los nuevos miembros del equipo. Resulta especialmente útil la perspectiva de una sintaxis unificada y las actualizaciones transaccionales, que encuentro en nftables no querría prescindir de ello.

Aspecto Netfilter nftables iptables
Papel Marco del núcleo con hooks, NAT y Conntrack Herramienta en el espacio de usuario y subsistema del núcleo para reglas Herramientas heredadas para la gestión de reglas
Sintaxis - Único para IPv4/IPv6/ARP/puente Herramientas y tablas independientes
Escala - Conjuntos/mapas, reglas compactas, actualizaciones atómicas Cadenas largas, más gastos generales
Actuación Mecánica cercana al núcleo Análisis eficiente basado en máquinas virtuales Menos eficiente con conjuntos de normas extensos
futuro de forma permanente en el núcleo norma vigente Modo de mantenimiento

Características específicas de IPv6 y autorizaciones obligatorias

Quien trabaje con dual-stack debe tener en cuenta las particularidades de IPv6 De forma explícita. Planifico cuidadosamente las autorizaciones para ICMPv6, ya que la detección de vecinos y los anuncios de enrutador son esenciales. De lo contrario, los rechazos demasiado restrictivos interrumpen la accesibilidad de forma aparentemente „aleatoria“. En los servidores, decido deliberadamente si se aceptan los anuncios de enrutador o si prefiero configuraciones estáticas; en cualquier caso, la solicitud y el anuncio de vecinos deben funcionar. La fragmentación y los encabezados de extensión también merecen atención: mantengo al mínimo los estados „inválidos“ y, en un primer momento, los registro en lugar de descartarlos de forma generalizada, para no interferir en los casos de uso legítimos. Para los servicios que utilizan tanto v4 como v6, prefiero utilizar tablas „inet“, de modo que las reglas se apliquen de forma coherente y se evite la duplicación de tareas de mantenimiento.

Diseño de políticas, medidas contra la suplantación de identidad y refuerzo de la seguridad en el perímetro

Desde un segundo plano, me encargo de Antifalsificación, comprobando los paquetes entrantes con respecto a la interfaz de llegada y a las redes de origen permitidas. En configuraciones con múltiples conexiones, también valido los paquetes salientes para evitar rutas asimétricas y fugas de remitentes. Además, los valores predeterminados del sistema, como los filtros de ruta inversa y las políticas estrictas de reenvío de IP, resultan de gran ayuda. Mantengo las redes „Martian“ y las reservas conocidas en conjuntos, para poder gestionarlas de forma centralizada e integrarlas en cualquier lugar. Para servicios sensibles como SSH, utilizo excepciones temporales, controladas mediante mapas o conjuntos dinámicos, y protejo la interfaz con límites de tasa contra escaneos simples o ataques de fuerza bruta. De este modo, la superficie de ataque se mantiene reducida sin que se vea afectado el funcionamiento.

Guía para tomar la decisión de cambiarse

Los nuevos sistemas los instalo directamente con nftables , ya que la uniformidad y las actualizaciones atómicas repercuten de inmediato en la seguridad operativa. Convierto las instalaciones existentes de forma gradual, dispongo de copias de seguridad y compruebo las rutas críticas antes de realizar cualquier cambio. Utilizo conjuntos para acortar las expresiones regulares y solo sustituyo los casos especiales tras haber realizado pruebas satisfactorias. Para una mayor transparencia, merece la pena echar un vistazo a Cortafuegos de última generación, que pueden complementar la visibilidad y la segmentación. Sigue siendo importante gestionar con rigor los procesos de cambio y la Documentación al día.

Resumen

Netfilter Proporciona la mecánica del núcleo para el flujo de paquetes, NAT y Conntrack, mientras que nftables constituye la capa moderna para las reglas, la sintaxis y la gestión. Me beneficio de una cobertura uniforme de los protocolos, conjuntos/mapas y actualizaciones atómicas, lo que simplifica el funcionamiento, la revisión y la escalabilidad. En comparación con iptables, se reducen considerablemente el número de líneas, las fuentes de error y el tiempo de ejecución, especialmente en conjuntos de reglas de gran tamaño. Para la migración, me aseguro mediante herramientas de conversión, registro de eventos y planes por fases hasta que todos los servicios funcionen según lo previsto. Quien hoy en día busque una solución viable Cortafuegos de Linux Si se desea, se opta por nftables como método predeterminado y se utiliza Netfilter como base fiable en el núcleo.

Artículos de actualidad