nftables packet filter 1.0.6 nga pagpagawas

Ang nftables 1.0.6 packet filter release gimantala, naghiusa sa packet filtering interfaces para sa IPv4, IPv6, ARP ug network bridges (nga gitumong sa pag-ilis sa mga iptables, ip6table, arptables ug ebtables). 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 pagbag-o:

  • Sa mga rules optimizer nga gitawag kung gipiho ang "-o/--optimize" nga kapilian, ang awtomatik nga pagputos sa mga lagda gipahimutang pinaagi sa paghiusa niini ug pag-convert niini ngadto sa mapa ug set-list. Pananglitan, ang mga lagda mao ang # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; pagkunhod sa palisiya; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 dawaton meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 dawaton meta iifname eth1 ip saddr 1.1.1.2 ip daddr i2.2.3.0 ip daddr i24 .1 ip daddr 1.1.1.2-2.2.4.0 accept meta iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 accept } } human sa "nft -o -c -f ruleset.nft" makombertir sa mosunod: ruleset. nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 accept ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2 accept ruleset.n 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 accept ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2-2.2.4.0. ruleset.nft:2.2.4.10:8-17: meta iifname eth74 ip saddr 2 ip daddr 1.1.1.3 accept into: iifname . ip saddr. ip daddr { eth2.2.2.5 . 1. 1.1.1.1, eth2.2.2.3 . 1. 1.1.1.2, eth2.2.2.4 . 1. 1.1.1.2/2.2.3.0, eth24 . 1. 1.1.1.2-2.2.4.0, eth2.2.4.10 . 2. 1.1.1.3 } dawaton
  • Ang optimizer mahimo usab nga mu-condense sa mga lagda nga naggamit na sa yano nga mga setlist ngadto sa mas compact nga porma, sama sa: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; pagkunhod sa palisiya; iifname "lo" dawaton ct estado natukod, may kalabutan dawaton komento "Sa trapiko kita gigikanan, kita misalig" iifname "enp0s31f6" ip saddr {209.115.181.102, 216.197.228.230} ip daddr 10.0.0.149 ip daddr 123 32768 iifname "enp65535s0f31" ip saddr { 6, 64.59.144.17 } ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768 modawat } } human sa pagdagan -c. : ruleset.nft: 65535: 6-22: iifname "enp149s0f31" ip saddr { 6, 209.115.181.102 } ip daddr 216.197.228.230 udp sport 10.0.0.149:123 udp sport -32768 65535 : iifname "enp7s22f143" ip saddr { 0, 31 } ip daddr 6 udp sport 64.59.144.17 udp dport 64.59.150.133-10.0.0.149 accept into: iifname . ip saddr. ip dadr . udp sport. udp dport { enp53s32768f65535 . 0 . 31 . 6 . 209.115.181.102-10.0.0.149, enp123s32768f65535 . 0 . 31 . 6 . 216.197.228.230-10.0.0.149, enp123s32768f65535 . 0. 31 . 6 . 64.59.144.17-10.0.0.149, enp53s32768f65535 . 0. 31 . 6 . 64.59.150.133-10.0.0.149 } dawaton
  • Nasulbad ang usa ka isyu sa bytecode generation alang sa paghiusa sa mga interval nga naggamit sa mga tipo nga adunay lain-laing endianness, sama sa IPv4 (network endian) ug meta mark (system endian). lamesa ip x { mapa w { matang sa ip saddr . marka sa meta: ang hukom nag-flag sa interval counter nga mga elemento = {127.0.0.1-127.0.0.4. 0x123434-0xb00122 : dawaton, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : dawaton, }} kadena k {type filter hook input priority filter; pagkunhod sa palisiya; ip saddr. meta mark vmap @w } }
  • Gipauswag nga talagsaon nga mga mapa sa protocol kung naggamit mga hilaw nga ekspresyon, pananglitan: meta l4proto 91 @th,400,16 0x0 gidawat
  • Giayo ang mga isyu sa pagpagana sa mga lagda sa mga agwat: isulod ang lagda xy tcp sport {3478-3497, 16384-16387 } counter accept
  • Ang JSON API gipauswag aron suportahan ang mga ekspresyon sa set ug mga lista sa mapa.
  • Sa mga extension sa nftables python library, ang mga set sa lagda gitugotan nga ma-load para sa pagproseso sa check mode ("-c") ug gidugang ang suporta alang sa external variable definition.
  • Gitugotan ang pagdugang sa mga komento sa mga elemento sa set-list.
  • Gitugotan ang pagtino sa zero nga kantidad sa byte ratelimit.

Source: opennet.ru

Idugang sa usa ka comment