nftables

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
nftables
http://netfilter.org/projects/nftables/
Información general
Desarrollador(es) Proyecto Netfilter
Autor(es) Proyecto Netfilter
Lanzamiento inicial 18 de marzo de 2009 (9 años, 8 meses y 21 días)(info)
Última versión estable 0.9
08 de junio de 2018 (6 meses)
Género Cortafuegos
Programado en C
Sistema operativo Linux
Plataforma Netfilter
Licencia GPL (versión 2)
Estado actual En desarrollo

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 del núcleo Linux y una utilidad espacio de usuario.[1]

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

En Mayo de 2017, el proyecto Debian anuncia que incluirá oficialmente a nftables en su sistema operativo y recomienda a los usuarios migrar desde iptables a nftables.[2]

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.
  • mejorar soporte para conjuntos y mapeo de datos.
  • simplificar usabilidad en entornos IPv4/IPv6.
  • mejorar 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]