Ya disponible la nueva versión de nftables 0.9.3

NFTables

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