Ya disponible la nueva versión de nftables 0.9.3
Hace algunos días fue liberada la nueva versión del filtro de paquetes nftables 0.9.3, que 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.
Sobre Nftables
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 funciones básicas para extraer datos de paquetes, realizar operaciones de datos y controlar el flujo.
La lógica de filtrado en sí y los procesadores 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 usando la interfaz Netlink y se ejecuta en una máquina virtual especial que se parece a BPF (Berkeley Packet Filters).
Este enfoque le permite reducir significativamente el tamaño del código de filtrado que se ejecuta a nivel del núcleo y eliminar todas las funciones de las reglas de análisis y la lógica de trabajar con protocolos en el espacio del usuario.
Las principales ventajas de nftables son:
- Arquitectura que está integrada en el núcleo
- Una sintaxis que consolida las herramientas de IPtables en una única herramienta de línea de comandos
- Una capa de compatibilidad que permite el uso de la sintaxis de reglas de IPtables.
- Una nueva sintaxis fácil de aprender.
- Proceso simplificado de agregar reglas de firewall.
- Informe de errores mejorado.
- Reducción en la replicación de código.
- Mejor rendimiento general, retención y cambios graduales en el filtrado de reglas.
¿Qué hay de nuevo en nftables 0.9.3?
En esta nueva versión de nftables 0.9.3 se añadió el soporte para paquetes coincidentes a lo largo del tiempo. Con ello se puede definir los intervalos de tiempo y fecha en los que se activará la regla y configurar la activación en días individuales de la semana. También se agregó una nueva opción “-T” para mostrar el tiempo de la época en segundos.
Otro de los cambios que se destacan es el soporte para restaurar y guardar etiquetas SELinux (secmark), sí como también el soporte para listas de mapas synproxy, lo que le permite definir más de una regla por backend.
De los demás cambios que se destacan de esta nueva versión:
- Posibilidad de eliminar dinámicamente elementos set-set de las reglas de procesamiento de paquetes.
- Soporte para mapeo de VLAN por identificador y protocolo definido en los metadatos de la interfaz del puente de red
- Opción “-t” (“–terse”) para excluir elementos set-set al mostrar reglas. Al ejecutar “nft -t list ruleset”, se mostrará:
- Conjunto de reglas nft list.
- La capacidad de especificar más de un dispositivo en cadenas netdev (funciona solo con el kernel 5.5) para combinar reglas de filtrado comunes.
- Posibilidad de agregar descripciones de tipos de datos.
- Capacidad para construir una interfaz CLI con la biblioteca linenoise en lugar de libreadline.
¿Cómo instalar la nueva versión de nftables 0.9.3?
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.
Además de que los cambios necesarios para que funcione la versión nftables 0.9.3 están incluidos en la futura rama del kernel de Linux 5.5. Por lo que 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 0.9.3 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