nftables packet filter 0.9.9 release

Inilabas na ang nftables 0.9.9 packet filter. Pinag-iisa nito ang mga packet filtering interface para sa IPv4, IPv6, ARP, at mga network bridge (na naka-target bilang kapalit ng iptables, ip6table, arptables, at ebtables). Ang kasamang libnftnl 1.2.0 library, na nagbibigay ng low-level API para sa pakikipag-ugnayan sa nf_tables subsystem, ay inilabas nang sabay-sabay. Ang mga pagbabagong kinakailangan para sa nftables 0.9.9 ay isinama na sa kernel. Linux 5.13-rc1.

Ang paketeng nftables ay naglalaman ng mga bahagi ng packet filter na gumagana sa espasyo ng gumagamit, habang ang trabaho sa antas ng kernel ay ibinibigay ng nf_tables subsystem, na bahagi ng kernel. Linux Simula nang ilabas ang 3.13, isang generic protocol-independent interface lamang ang ibinibigay sa antas ng kernel, na nagbibigay ng pangunahing functionality para sa pagkuha ng data mula sa mga packet, pagsasagawa ng mga operasyon ng data, at pagkontrol ng daloy.

Ang mga panuntunan sa pagsala mismo at ang mga handler na partikular sa protocol ay pinagsama-sama sa bytecode sa espasyo ng gumagamit, pagkatapos nito ay ikinakarga ang bytecode na ito sa kernel gamit ang Netlink interface at isinasagawa sa kernel sa isang espesyal na paraan. birtwal na makina, na nakapagpapaalaala sa BPF (Berkeley Packet Filters). Ang pamamaraang ito ay nagbibigay-daan para sa isang makabuluhang pagbawas sa laki ng filtering code na tumatakbo sa antas ng kernel at inililipat ang lahat ng rule parsing at protocol logic sa espasyo ng user.

Mga pangunahing inobasyon:

  • Ipinatupad ang kakayahang ilipat ang pagpoproseso ng flowtable sa gilid ng adapter ng network, na pinagana gamit ang flag na 'offload'. Ang Flowtable ay isang mekanismo para sa pag-optimize ng packet forwarding path, kung saan ang buong traversal ng lahat ng rule processing chain ay inilalapat lamang sa unang packet, at lahat ng iba pang packet sa daloy ay direktang ipinapasa. table ip global { flowtable f { hook ingress priority filter + 1 device = { lan3, lan0, wan } flag offload } chain forward { type filter hook forward priority filter; pagtanggap ng patakaran; ip protocol { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; pagtanggap ng patakaran; oifname "wan" masquerade } }
  • Nagdagdag ng suporta para sa pag-attach ng flag ng may-ari sa isang talahanayan, na nagsisiguro ng eksklusibong paggamit ng talahanayan sa pamamagitan ng isang proseso. Kapag natapos ang isang proseso, awtomatikong tatanggalin ang nauugnay na talahanayan. Ang impormasyon ng proseso ay ipinapakita sa mga panuntunan dump bilang isang komento: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; pagtanggap ng patakaran; mga counter packet 1 byte 309 } }
  • Nagdagdag ng suporta para sa detalye ng IEEE 802.1ad (VLAN stacking o QinQ), na tumutukoy sa mga paraan para sa pagpapalit ng maraming VLAN tag sa isang Ethernet frame. Halimbawa, para suriin ang panlabas na Ethernet frame type 8021ad at vlan id=342, maaari mong gamitin ang construct ... ether type 802.1ad vlan id 342 para suriin ang panlabas na Ethernet frame type 8021ad/vlan id=1, nested 802.1q/vlan id=2, at higit pang IP pa-encapsulate: ...8021 1 vlan type 8021q vlan id 2 vlan type ip counter
  • Ang suporta para sa pamamahala ng mapagkukunan gamit ang pinag-isang cgroups v2 hierarchy ay naidagdag. Ang pangunahing pagkakaiba sa pagitan ng mga cgroup v2 at v1 ay ang paggamit ng isang karaniwang hierarchy ng cgroups para sa lahat ng mga uri ng mapagkukunan, sa halip na mga hiwalay na hierarchy para sa paglalaan ng mapagkukunan ng CPU, pamamahala ng memorya, at I/O. Halimbawa, upang suriin kung ang ninuno ng socket sa unang antas ng cgroupv2 ay tumutugma sa "system.slice" mask, maaari mong gamitin ang sumusunod na construct: ... socket cgroupv2 level 1 "system.slice"
  • Idinagdag ang kakayahang suriin ang mga bahagi ng mga SCTP packet (ang functionality na kinakailangan para sa operasyon ay lilitaw sa kernel Linux 5.14). Halimbawa, para tingnan kung ang isang packet ay naglalaman ng isang chunk na may uri ng 'data' at field na 'type': … umiiral ang data ng sctp chunk … uri ng data ng sctp chunk 0
  • Ang mga panuntunan sa pag-load gamit ang "-f" na flag ay halos nadoble ang bilis. Ang output ng listahan ng panuntunan ay pinabilis din.
  • Ang isang compact na paraan ng pagsuri sa setting ng mga bit sa mga flag ay ibinigay. Halimbawa, upang suriin na ang snat at dnat status bit ay hindi nakatakda, maaari mong tukuyin ang: ... ct status ! snat,dnat para suriin kung ang syn bit ay nakatakda sa syn,ack bit mask: ... tcp flags syn / syn,ack upang suriin na ang fin at unang bit ay hindi nakatakda sa syn,ack,fin,rst bit mask: ... tcp flags != fin,rst / syn,ack,fin,rst
  • Ang keyword na "verdict" ay pinapayagan sa typeof definitions para sa set/map: add map xm { typeof iifname . ip protocol. ika-dport : hatol ;}

Pinagmulan: opennet.ru

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster