versió 0.9.9 del filtre de paquets nftables

S'ha publicat el filtre de paquets nftables 0.9.9. Unifica les interfícies de filtratge de paquets per a IPv4, IPv6, ARP i ponts de xarxa (destinat a substituir iptables, ip6table, arptables i ebtables). La biblioteca libnftnl 1.2.0 que l'acompanya, que proporciona una API de baix nivell per interactuar amb el subsistema nf_tables, s'ha publicat simultàniament. Els canvis necessaris per a nftables 0.9.9 s'han incorporat al nucli. Linux 5.13-rc1.

El paquet nftables conté els components de filtre de paquets que operen a l'espai d'usuari, mentre que el treball a nivell de nucli el proporciona el subsistema nf_tables, que forma part del nucli. Linux Des de la versió 3.13, només es proporciona una interfície genèrica independent del protocol a nivell de nucli, que proporciona funcionalitats bàsiques per extreure dades dels paquets, realitzar operacions de dades i control de flux.

Les regles de filtratge en si i els controladors específics del protocol es compilen en bytecode a l'espai d'usuari, després del qual aquest bytecode es carrega al nucli mitjançant la interfície Netlink i s'executa al nucli en un espai especial. màquina virtual, que recorda els BPF (Berkeley Packet Filters). Aquest enfocament permet una reducció significativa de la mida del codi de filtratge que s'executa a nivell del nucli i trasllada tota l'anàlisi sintàctica de regles i la lògica del protocol a l'espai d'usuari.

Principals innovacions:

  • S'ha implementat la capacitat de moure el processament de la taula de flux al costat de l'adaptador de xarxa, habilitada mitjançant la marca "descàrrega". Flowtable és un mecanisme per optimitzar el camí de la redirecció de paquets, en el qual el pas complet de totes les cadenes de processament de regles s'aplica només al primer paquet i tots els altres paquets del flux s'envien directament. table ip global { flowtable f { filtre de prioritat d'entrada de ganxo + 1 dispositius = { lan3, lan0, wan } descàrrega de banderes } cadena cap endavant { tipus de filtre hook forward filtre de prioritat; acceptar la política; protocol ip { tcp, udp } flow add @f } chain post { tipus filtre de prioritat de postrouting de tipus nat hook; acceptar la política; oifname "wan" mascarada } }
  • S'ha afegit suport per adjuntar un indicador de propietari a una taula per garantir l'ús exclusiu de la taula per part d'un procés. Quan un procés finalitza, la taula associada a ell s'elimina automàticament. La informació sobre el procés es mostra a l'abocador de regles en forma de comentari: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; acceptar la política; comptador de paquets 1 bytes 309 } }
  • S'ha afegit suport per a l'especificació IEEE 802.1ad (apilament de VLAN o QinQ), que defineix un mitjà per substituir diverses etiquetes de VLAN en una única trama Ethernet. Per exemple, per comprovar el tipus de trama Ethernet externa 8021ad i vlan id=342, podeu utilitzar la construcció ... ether type 802.1ad vlan id 342 per comprovar el tipus extern de trama Ethernet 8021ad/vlan id=1, 802.1 imbricat q/vlan id=2 i més encapsulació de paquets IP: ... ether type 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type comptador ip
  • S'ha afegit suport per gestionar recursos mitjançant la jerarquia unificada cgroups v2. La diferència clau entre cgroups v2 i v1 és l'ús d'una jerarquia comuna de cgroups per a tot tipus de recursos, en lloc de jerarquies separades per assignar recursos de CPU, per regular el consum de memòria i per a E/S. Per exemple, per comprovar si l'ancestre d'un sòcol al primer nivell cgroupv2 coincideix amb la màscara "system.slice", podeu utilitzar la construcció: ... socket cgroupv2 nivell 1 "system.slice"
  • S'ha afegit la capacitat de comprovar els components dels paquets SCTP (la funcionalitat necessària per al funcionament apareixerà al nucli) Linux 5.14). Per exemple, per comprovar si un paquet conté un fragment amb el tipus 'dades' i el camp 'tipus': … existeixen dades del fragment sctp … existeix tipus de dades del fragment sctp 0
  • L'execució de l'operació de càrrega de regles s'ha accelerat aproximadament dues vegades utilitzant el senyalador "-f". La sortida de la llista de regles també s'ha accelerat.
  • Es proporciona un formulari compacte per comprovar si s'han establert els bits de senyalització. Per exemple, per comprovar que els bits d'estat snat i dnat no estan establerts, podeu especificar: ... ct status ! snat,dnat per comprovar que el bit syn està establert a la màscara de bits syn,ack: ... tcp flags syn / syn,ack per comprovar que els bits fin i primers no estan establerts a la màscara de bits syn,ack,fin,rst: ... tcp flags ! = fin,rst / syn,ack,fin,rst
  • Permet la paraula clau "verdicte" a les definicions de tipus de mapa/conjunt: add map xm { typeof iifname . protocol ip th dport: veredicte ;}

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster