Lanzamiento del filtrado de paquetes nftables 1.0.1

Se ha publicado la versión 1.0.1 del filtrado de paquetes nftables, que unifica las interfaces de filtrado de paquetes para IPv4, IPv6, ARP y puentes de red (destinada a reemplazar iptables, ip6tables, arptables y ebtables). Los cambios necesarios para la operación de nftables 1.0.1 están incluidos en la versión del núcleo Linux 5.16-rc1.

El paquete nftables incluye componentes del filtrador de paquetes que funcionan en el espacio de usuario, mientras que a nivel del núcleo, el trabajo es realizado por el subsistema nf_tables, incluido en el núcleo de Linux desde la versión 3.13. A nivel del núcleo, solo se proporciona una interfaz general, independiente del protocolo específico, que ofrece funciones básicas para extraer datos de paquetes, realizar operaciones con datos y gestionar flujos.

Las reglas de filtrado y los controladores específicos del protocolo se compilan en bytecode en el espacio de usuario, que luego se carga en el núcleo a través de la interfaz Netlink y se ejecuta en el núcleo en un espacio especial una máquina virtual, similar a BPF (Berkeley Packet Filters). Este enfoque permite reducir significativamente el tamaño del código de filtrado que opera a nivel de núcleo y trasladar todas las funciones de análisis de reglas y la lógica de trabajo con protocolos al espacio de usuario.

Novedades principales:

  • Se ha reducido el consumo de memoria al cargar grandes conjuntos y mapas.
  • Se ha acelerado la recarga de conjuntos y mapas.
  • Se ha acelerado la salida de tablas y cadenas seleccionadas en grandes conjuntos de reglas. Por ejemplo, el tiempo de ejecución del comando «nft list ruleset» para mostrar un conjunto de reglas de 100,000 líneas es de 3.049 segundos, mientras que la salida de solo las tablas nat y filter («nft list table nat», «nft list table filter») se reduce a 1.969 y 0.697 segundos, respectivamente.
  • Se ha acelerado la ejecución de consultas con la opción «--terse» al procesar reglas con grandes conjuntos y mapas.
  • Se ha proporcionado la capacidad de filtrar tráfico desde la cadena «egress», que se procesa en el mismo nivel que el controlador egress en la cadena netdev (hook egress), es decir, en la etapa en que el controlador recibe el paquete del stack de red del núcleo. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Se permite la coincidencia y modificación de bytes en el encabezado y contenido del paquete según el desplazamiento especificado. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster