Lanzamiento del filtro de paquetes nftables 0.9.2

tuvo lugar liberación del filtro de paquetes nftables 0.9.2nftables se está desarrollando como reemplazo de iptables, ip6table, arptables y ebtables, unificando las interfaces de filtrado de paquetes para IPv4, IPv6, ARP y puentes de red. El paquete nftables incluye componentes de filtrado de paquetes que operan en el espacio de usuario, mientras que la funcionalidad a nivel del kernel la proporciona el subsistema nf_tables, que forma parte del kernel. Linux Desde la versión 3.13, se requieren cambios para que nftables 0.9.2 se incluya en el núcleo. Linux 5.3.

El nivel del kernel proporciona solo una interfaz genérica independiente del protocolo que proporciona funciones básicas para extraer datos de paquetes, realizar operaciones de datos y control de flujo. La lógica de filtrado en sí y los controladores específicos del protocolo se compilan en un código de bytes en el espacio del usuario, después de lo cual este código de bytes se carga en el kernel usando la interfaz Netlink y se ejecuta en una máquina virtual especial que recuerda 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 kernel y mover todas las funciones de reglas de análisis y lógica para trabajar con protocolos al espacio del usuario.

Principales novedades:

  • Capacidad para verificar el número de puerto desde el encabezado del paquete de la capa de transporte, independientemente del tipo de protocolo de capa 4:

    agregar regla xy protocolo ip {tcp, udp} th dport 53

  • Soporte para recuperación de vida útil del conjunto de elementos:

    agregar elemento ip xy {1.1.1.1 el tiempo de espera de 30 s expira en 15 s}

  • Capacidad para verificar opciones individuales (lsrr, rr, ssrr y ra) de paquetes IPv4:

    agregar regla xy ip opción rr existe soltar

    Para las opciones de enrutamiento, es posible verificar los campos tipo, ptr, longitud y dirección:

    agregar regla xy ip opción rr tipo 1 gota

  • Ahora es posible especificar prefijos de red y rangos de direcciones en expresiones:

    iifname ens3 snat a 10.0.0.0/28
    iifname ens3 snat a 10.0.0.1-10.0.0.15

  • Soporte para el uso de variables en definiciones de cadena:

    definir default_policy = aceptar
    agregar cadena ip foo bar {tipo filtro gancho filtro de prioridad de entrada; política $default_policy }

  • La prioridad de la cadena ahora se puede especificar tanto numérica como simbólicamente:

    definir prio = filtrar
    definir prionum = 10
    definir prioffset = "filtro - 150"

    agregar tabla ip foo
    agregar cadena ip foo bar {tipo filtro gancho entrada prioridad $prio; }
    agregar cadena ip foo ber {tipo filtro gancho entrada prioridad $prionum; }
    agregar cadena ip foo bor {tipo filtro gancho entrada prioridad $prioffset; }

  • Se ha implementado soporte para el módulo synproxy. Por ejemplo, para colocar el puerto TCP 8888 bajo protección synproxy, puede utilizar el siguiente conjunto de reglas:

    IP de la tabla x {
    cadena y {
    escriba el gancho de filtro prioridad de enrutamiento previo sin procesar; aceptar política;
    tcp dport 8888 tcp banderas sin notrack
    }

    cadena z {
    tipo filtro gancho filtro de prioridad directa; aceptar política;
    tcp dport 8888 ct estado no válido, synproxy sin seguimiento mss 1460 \\
    wscale 7 marca de tiempo saco-perm ct estado caída no válida
    }
    }

  • Para definir conexiones adicionales esperadas asociadas con la conexión actual en la tabla conntrack, que se utilizan en protocolos y escenarios que requieren múltiples conexiones, ahora puede definir políticas a través de conjuntos de reglas estándar. Por ejemplo, para determinar qué conexiones posteriores al puerto 8888 se esperan después de las conexiones al puerto TCP 5432, puede especificar las siguientes reglas:

    tabla x {
    ct expectativa myexpect {
    protocolo tcp
    puerto 5432
    tiempo de espera 1h
    Tamaño 12
    protocolo ip l3
    }

    entrada de cadena {
    escriba la prioridad de entrada del gancho de filtro 0;
    ct estado nuevo tcp dport 8888 ct expectativa establecida myexpect
    ct estado establecido, contador relacionado aceptar
    }
    }

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster