Se dio a conocer el lanzamiento de la nueva versión de nftables 1.0.8, versión en la cual se introducen diversos cambios, correcciones de errores y mejoras de compatibilidad.
Para quienes desconocen de nftables, deben saber que este se desarrolla como reemplazo de iptables, ip6table, arptables y ebtables debido a la unificación de las interfaces de filtrado de paquetes para IPv4, IPv6, ARP y puentes de red.
El paquete nftables usa partes estructurales de la infraestructura Netfilter, como el connection tracking system (sistema de seguimiento de conexiones) o el subsistema de registro. También hay prevista una capa de compatibilidad para la traducción de las ya existentes reglas del cortafuegos iptables a sus equivalentes en nftables.
Principales novedades de nftables 1.0.8
En esta nueva version que se presenta de nftables 1.0.8, se destaca introduccion de la compatibilidad con «meta» y «ct» de otros campos en las reglas. Otro de los cambios que se destaca de la nueva versión es que el optimizador de reglas para manejar declaraciones NAT, ha mejorado el empaquetado de expresiones relacionadas con la traducción de direcciones (NAT).
Ademas de ello, se destaca la sintaxis simplificada del comando «reset» para restablecer la información con estado en las reglas, como los contadores y el estado de la cuota. Se menciona que ya no se tiene que especificar la palabra clave de la tabla cuando se restablecen objetos con estado nombrados.
En los sistemas con el kernel de Linux 6.5, se ha agregado compatibilidad para restablecer expresiones con estado (contadores a cero) en listas de elementos, conjuntos y mapas.
Por otra parte, ahora en nftables 1.0.8 al intentar cargar reglas que exceden el límite de tamaño aplicado en un espacio de nombres sin privilegios (por ejemplo, al intentar cargar listas de GeoIP en un contenedor), se recomienda aumentar el valor del parámetro «/proc/sys/net/core/wmem_max».}
Tambien se destaca que, en conjuntos para archivos adjuntos (concatenación, ciertos paquetes de direcciones y puertos que simplifican la comparación), se implementa la capacidad de especificar constantes, ademas de que en la salida de «nft list sets», la visualización de elementos de lista está habilitada de forma predeterminada. Se proporciona la opción «-t» («–terse») para deshabilitar la visualización de elementos.
De los demás cambios que se destacan de esta nueva versión:
- Se agregó soporte para mostrar comentarios al generar tablas y cadenas en formato JSON
- Se agregó la capacidad de usar JSON al hacer coincidir datos encapsulados y tunelizados. Por ejemplo, para comparar con un campo dscp encapsulado en un encabezado vxlan,
- Se agregó soporte para JSON en la expresión ‘last used’ que muestra cuándo se usó por última vez la regla o el elemento de la lista.
- Los enlaces de Python han reemplazado distutils con setuptools.
- Mensajes de diagnóstico mejorados para errores causados por la selección incorrecta del tipo de datos y el uso incorrecto de jump/goto en el mapa.
- El problema con la salida de mensajes de error incorrectos debido a la falta de una especificación de protocolo de transporte al usar expresiones de mapa de la forma
- Las listas de mapas anónimas admiten expresiones con estado, como contadores
- Ahora es posible empaquetar conjuntos de reglas con asignaciones de ‘estado ct’ sin perder la capacidad de contar paquetes.
- Actualización de dispositivos en cadenas netdev existentes.
Finalmente si estás interesado en poder conocer más al respecto de este nuevo lanzamiento, puedes consultar los detalles en el siguiente enlace.
¿Cómo instalar la nueva versión de nftables 1.0.8?
Para obtener la nueva versión 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.
La compilación de nftables requiere de dos dependencias las cuales son libmnl y libnftnl, las cuales puedes descargar su código fuente y realizar la compilación de cada una de ellas con los siguientes comandos:
./autogen.sh
./configure
make
make install
Ahora, para el caso de nftables, debemos de obtener la nueva versión la cual descargamos desde el siguiente enlace. Y la compilación se realiza con los siguientes comandos:
cd nftables
./autogen.sh
./configure
make
make install