Ya fue liberada la nueva versión de nftables 1.0.5, conoce sus cambios

agosto 12, 2022 , 0 Comments

Hace poco se dio a conocer el lanzamiento de la nueva versión del filtro de paquetes nftables 1.0.5, versión en la cual se han realizado en su mayoría correcciones de errores, pero que tambien llega con algunas cuantas novedades, mejoras de soporte y más.

Para quienes desconocen de nftables, deben saber que este unifica las interfaces de filtrado de paquetes para IPv4, IPv6, ARP y puentes de red (destinado a reemplazar iptables, ip6table, arptables y ebtables). Al mismo tiempo, se publicó el lanzamiento de la biblioteca complementaria libnftnl 1.2.3 , que proporciona una API de bajo nivel para interactuar con el subsistema nf_tables.

El paquete nftables incluye componentes de filtro de paquetes que funcionan en el espacio del usuario, mientras que a nivel del kernel, el subsistema nf_tables proporciona una parte del kernel de Linux desde la versión 3.13.

A nivel del núcleo, solo se proporciona una interfaz común que es independiente de un protocolo específico y proporciona las funciones básicas de extraer datos de paquetes, realizar operaciones de datos y controlar el flujo.

Las reglas de filtrado directo y los controladores específicos del protocolo se compilan en un bytecode en el espacio del usuario, después de lo cual este bytecode se carga en el kernel utilizando la interfaz Netlink y se ejecuta en el kernel en una máquina virtual especial que se asemeja a BPF (Berkeley Packet Filters).

Tal enfoque puede reducir significativamente el tamaño del código de filtrado que funciona a nivel del núcleo y eliminar todas las funciones de analizar las reglas y la lógica de trabajar con protocolos en el espacio del usuario.

Principales novedades de Nftables 1.0.5

En esta nueva versión que se presenta se destaca que el optimizador de reglas llamado al especificar la opción «-o/–optimize», se resuelven los problemas con la combinación de reglas, mapas y listas de configuración.

Otro de los cambios que se destaca de la nueva versión, es que al combinar los elementos de ethernet y vlan, se proporciona la definición de una lista de configuración dinámica, que se completa según los parámetros de la ruta del paquete.

Ademas de ello, se ha ajustado la visualización de reglas con listas de mapas que contienen máscaras en los nombres de las interfaces, asi como tambien se han eliminado los cambios regresivos que conducen a un análisis léxico incorrecto de las reglas correctas.

Por otra parte, se menciona que se han solucionado los problemas con el procesamiento lento y la fusión automática de listas grandes con elementos que definen rangos de valores, asi como tambien que se corrigió un bloqueo al agregar elementos a una lista de conjuntos incorrecta, se han arreglado varias regresiones en el lexer de entrada que rompía conjuntos de reglas válidos y tambien se corrigió la ralentización con grandes listas de elementos de intervalo singleton.

De los demás cambios que se destacan de esta nueva versión:

  • Corrección de informes de errores falsos para superposiciones exactas.
  • Corrige el error de segmentación al agregar elementos a un conjunto no válido.
  • Corrige el análisis de dispositivos en la familia netdev en json.
  • Solucion del bloqueo al intentar eliminar un elemento en un conjunto vacío
  • Se añadió soporte para DF, LE PHB, VA para DSCP
  • Se añadió el soporte de expresión osf, expresión xfrm, expresión fib, expresión binop, expresión numgen y expresión hash.
  • Se añadió el cierre del alcance del synproxy faltante

Finalmente para quienes estén interesados en poder conocer más al respecto sobre esta nueva versión, pueden consultar los detalles en el siguiente enlace.

¿Cómo instalar la nueva versión de nftables 1.0.5?

Para aquellos que estén interesados en poder obtener la nueva versión de nftables 1.0.5 de momento solo se puede compilar el código fuente en su sistema. Aunque en cuestión de días estarán disponibles los paquetes binarios ya compilados dentro de las diferentes distribuciones de Linux.

Para realizar la compilación debes contar con las siguientes dependencias instaladas:

Estas las puedes compilar con:

./autogen.sh
./configure
make
make install

Y para nftables 1.0.5 este lo descargamos desde el siguiente enlace. Y la compilación se realiza con los siguientes comandos:

cd nftables
./autogen.sh
./configure
make
make install

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.