nftables

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
nftables
Información general
Tipo de programa Cortafuegos
Autor Proyecto Netfilter
Desarrollador Proyecto Netfilter
Lanzamiento inicial 18 de marzo de 2009 (11 años, 8 meses y 18 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
Lanzamientos
Iptables
nftables
Asistencia técnica
Enlaces

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[editar]

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[editar]

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[editar]

Enlaces externos[editar]