NFTables

Se ha publicado el lanzamiento del filtro de paquetes nftables 1.0.7 la cual llega con algunas mejoras, correcciones asi como tambien con algunas novedades.

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).

Principales novedades de Nftables 1.0.7

En esta nueva versión que se presenta de nftables 1.0.7, para los sistemas kernel de Linux 6.2+, se agregó compatibilidad con la coincidencia de protocolos vxlan, geneve, gre y gretap, lo que permite expresiones simples para verificar encabezados en paquetes encapsulados.

Por ejemplo, para verificar la dirección IP en el encabezado de un paquete anidado de VxLAN, ahora puede usar reglas (sin la necesidad de desencapsular primero el encabezado de VxLAN y vincular el filtro a la interfaz vxlan0):

Ademas de ello, tambien se destaca que se implementó el soporte para la fusión automática de residuos después de la eliminación parcial de un elemento de la lista de configuración, lo que permite eliminar un elemento o parte de un rango de un rango existente (anteriormente, un rango solo se podía eliminar en su totalidad).

Por ejemplo, después de eliminar el elemento 25 de una lista establecida con rangos 24-30 y 40-50, 24, 26-30 y 40-50 permanecerán en la lista. Las correcciones necesarias para que funcione la fusión automática se ofrecerán en versiones correctivas de las ramas estables 5.10+ del kernel.

Tambien se destaca que se agregó soporte para la expresión «last», que permite averiguar la última vez que se usó el elemento de la regla o lista de configuración. Esta característica ha sido compatible desde el kernel de Linux 5.14.

Por otra parte, tambien se destaca que se ha agregado un nuevo comando «destroy» para eliminar objetos incondicionalmente (a diferencia del comando eliminar, no genera ENOENT cuando se intenta eliminar un objeto faltante). Requiere al menos el kernel Linux 6.3-rc para funcionar.

  • Se permite el uso de constantes en set-lists. Por ejemplo, al usar una lista de la dirección de destino y la ID de VLAN como clave, puede especificar directamente el número de VLAN (daddr . 123):
  • Se agregó la capacidad de definir cuotas en listas de configuración. Por ejemplo, para definir una cuota de tráfico para cada dirección IP de destino, puede especificar.
  • Permita que los contactos y los rangos se utilicen en el mapeo de traducción de direcciones (NAT).

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.7?

Para aquellos que estén interesados en poder obtener la nueva versión de nftables 1.0.7 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

 

Fuente: ubunlog

 

¿Quién está en línea?

Hay 6316 invitados y ningún miembro en línea