Nftables

nftables
Parte de Netfilter/iptables
Información general
Tipo de programa Cortafuegos
Autor Proyecto Netfilter
Desarrollador Proyecto Netfilter
Lanzamiento inicial 18 de marzo de 2009 (15 años, 1 mes y 16 días)
Licencia GPL (versión 2)
Estado actual En desarrollo
Información técnica
Programado en C
Plataformas admitidas Netfilter
Versiones
Última versión estable 0.9.3 ( 02 de diciembre de 2019 (4 años, 5 meses y 1 día))
Serie Netfilter/iptables
Iptables
nftables
Enlaces
Sitio web oficial
Repositorio de código
[editar datos en Wikidata]

nftables es un proyecto que proporciona filtrado de paquetes y clasificación de paquetes en Linux, que reemplaza los frameworks existentes iptables, ip6tables, arptables y ebtables. Nftables es una combinación de componentes en núcleo de Linux (módulos) y una utilidad de línea de comandos en espacio de usuario.[1]

Reutiliza partes clásicas de la infraestructura Netfilter, como el connection tracking system (conntrack, sistema de seguimiento de conexiones), el subsistema de envío de paquetes a espacio de usuario (nf_queue) y el subsistema de registro (nf_log), entre otros. También existe una capa de traducción y compatibilidad para facilitar el trabajo sobre reglas ya existentes de iptables.

En mayo de 2017, el proyecto Debian anunció que incluiría oficialmente a nftables en su sistema operativo y recomienda a los usuarios migrar desde iptables a nftables.[2]​ A su vez, en octubre de 2019, se anunció que nftables sería la herramienta por defecto a partir de Debian 11 Bullseye.[3]

Motivaciones de nftables

El framework de iptables sufre una serie de limitaciones que se han querido mejorar en nftables:

  • Evitar duplicidad e inconsistencia en el código fuente. Muchas extensiones de iptables estaban duplicadas con pequeños cambios para interactuar con diferentes protocolos de red.
  • Mejorar soporte para conjuntos y mapeo de datos.
  • Simplificar usabilidad en entornos IPv4/IPv6.
  • Mejorar mecanismo para actualizaciones al conjunto de reglas. Esta tarea en iptables es muy costosa y poco escalable.
  • Proveer API Netlink para aplicaciones externas.
  • Mejorar sintaxis.

Diferencias entre nftables e iptables

Desde el punto de vista del usuario, las principales diferencias entre nftables e iptables son:

  • La sintaxis: iptables usa un parseador basado en getopt_long(), donde las órdenes van precedidas por guiones (por ejemplo, '-m conntrack --ctstate'). Ahora nftables usa una sintaxis más compacta e intuitiva que fue inspirada por la herramienta tcpdump.
  • Las tablas y cadenas son totalmente configurables. En nftables, las tablas son meros contenedores de cadenas, sin una semántica determinada. En iptables, hay una serie de tablas y cadenas predeterminadas que son registradas en el sistema de manera obligatoria aunque no vayas a usarlas. Los nombres de estos objetos (tablas y cadenas) son también arbitrarios.
  • Los conceptos de 'target' y 'match' desaparecen. En nftables, las reglas están compuestas de expresiones.
  • nftables permite especificar varias acciones en una única regla. En iptables, solo podías seleccionar un 'target' por regla.
  • No hay contadores integrados en reglas y cadenas. Son opcionales y pueden habilitarse bajo demanda.
  • Soporte mejorado para actualizaciones dinámicas del conjunto de reglas.
  • Administración simplificada para conjuntos de reglas IPv4/IPv6.
  • Infraestructura genérica de conjuntos y mapeos de datos, directamente integrada en el núcleo de nftables. En iptables, existe la herramienta externa ipset.
  • Soporte para nuevos protocolos sin actualizaciones del kernel Linux, dado que la complejidad del manejo de protocolos se encuentra en espacio de usuario y no en el kernel.

A modo de ejemplo, esta sería una equivalencia entre reglas similares.

En iptables:

% iptables -t filter -A FORWARD -s 1.1.1.1 -d 2.2.2.2 -p tcp --dport 123 -m conntrack --ctstate -j ACCEPT

En nftables:

% nft add rule filter forward ip saddr 1.1.1.1 ip daddr 2.2.2.2 tcp dport 123 ct state new accept

Referencias

  1. New Kernel Firewall Nftables to Succeed Netfilter
  2. "New in Debian stable Stretch: nftables" by Arturo Borrero González
  3. What to expect in Debian 11 Bullseye for nftables/iptables

Enlaces externos

  • Sitio web oficial
  • Wiki oficial
  • Repositorio de código fuente de nftables Git
  • Documentación howto para nftables
  • Primera versión de nftables (18-03-2009)
  • Pablo Neira Ayuso: [RFC] back on nf_tables (más capa de compatibilidad)
  • Referencia rápida para Nftables
  • Debian wiki
  • ArchWiki
  • Gentoo Wiki
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q7021717
  • Commonscat Multimedia: Nftables / Q7021717

  • Informática
  • Arch Linux: nftables
  • AUR: nftables-git
  • Debian: libnftables-dev
  • Fedora: nftables
  • Gentoo: net-firewall/nftables
  • Snap: nftables-pk
  • Ubuntu: libnftables-dev
  • Wd Datos: Q7021717
  • Commonscat Multimedia: Nftables / Q7021717