nftables packet filter 1.0.2 nga pagpagawas

Ang pagpagawas sa packet filter nftables 1.0.2 gimantala, naghiusa sa packet filtering interfaces alang sa IPv4, IPv6, ARP ug network bridges (nga gitumong sa pag-ilis sa mga iptables, ip6table, arptables ug ebtables). Ang mga pagbag-o nga gikinahanglan alang sa pagpagawas sa nftables 1.0.2 aron magtrabaho gilakip sa Linux kernel 5.17-rc.

Ang nftables package naglakip sa packet filter components nga nagdagan sa user space, samtang ang kernel level gihatag sa nf_tables subsystem, nga nahimong bahin sa Linux kernel sukad sa pagpagawas sa 3.13. Sa lebel sa kernel, usa lamang ka generic nga protocol-independent nga interface ang gihatag nga naghatag ug sukaranan nga mga gimbuhaton alang sa pagkuha sa datos gikan sa mga pakete, pagpahigayon sa mga operasyon sa datos, ug pagkontrol sa dagan.

Ang mga lagda sa pagsala sa ilang kaugalingon ug mga tigdumala nga espesipiko sa protocol gihugpong ngadto sa user-space bytecode, pagkahuman niini nga bytecode gikarga sa kernel gamit ang Netlink interface ug gipatuman sa kernel sa usa ka espesyal nga virtual machine nga susama sa BPF (Berkeley Packet Filters). Kini nga pamaagi nagpaposible nga makunhuran ang gidak-on sa code sa pagsala nga nagdagan sa lebel sa kernel ug ibalhin ang tanan nga mga gimbuhaton sa mga lagda sa pag-parse ug ang lohika sa pagtrabaho kauban ang mga protocol sa wanang sa gumagamit.

Panguna nga mga inobasyon:

  • Gidugang ang usa ka mode sa pag-optimize sa mga lagda, nga gipagana gamit ang bag-ong kapilian nga "-o" ("--optimize"), nga mahimong ikombinar sa kapilian nga "--check" aron masusi ug ma-optimize ang mga pagbag-o sa file sa ruleset nga wala gyud kini gikarga. . Ang pag-optimize nagtugot kanimo sa paghiusa sa susama nga mga lagda, pananglitan, ang mga lagda: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 .2.2.2.2 dawata ang ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    i-combine sa meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } dawata ang ip saddr . ip daddr vmap {1.1.1.1. 2.2.2.2 : dawaton, 2.2.2.2 . 3.3.3.3 : ihulog }

    Pananglitan sa paggamit: # nft -c -o -f ruleset.test Paghiusa: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter gidawat ngadto sa: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • Ang mga set list nagpatuman sa abilidad sa pagtino sa ip ug tcp nga mga opsyon, ingon man sa sctp chunks: set s5 {typeof ip option ra value elements = {1, 1024}} set s7 {typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Gidugang nga suporta alang sa mga kapilian sa TCP fastopen, md5sig ug mptcp.
  • Gidugang nga suporta sa paggamit sa mp-tcp subtype sa mappings: tcp option mptcp subtype 1
  • Gipauswag nga kernel-side filtering code.
  • Ang Flowtable karon adunay bug-os nga suporta alang sa JSON format.
  • Ang abilidad sa paggamit sa "pagsalikway" nga aksyon sa Ethernet frame matching operations gihatag na. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Source: opennet.ru

Idugang sa usa ka comment