nftables packet filter 1.0.2 release

Ang paglabas ng packet filter nftables 1.0.2 ay nai-publish, na pinag-iisa ang packet filtering interface para sa IPv4, IPv6, ARP at network bridges (na naglalayong palitan ang mga iptable, ip6table, arptables at ebtables). Ang mga pagbabagong kinakailangan para gumana ang nftables 1.0.2 release ay kasama sa Linux kernel 5.17-rc.

Kasama sa package ng nftables ang mga bahagi ng packet filter na tumatakbo sa espasyo ng gumagamit, habang ang gawain sa antas ng kernel ay ibinibigay ng subsystem ng nf_tables, na naging bahagi ng Linux kernel mula noong inilabas ang 3.13. Ang antas ng kernel ay nagbibigay lamang ng isang generic na protocol-independent na interface na nagbibigay ng mga pangunahing function para sa pagkuha ng data mula sa mga packet, pagsasagawa ng mga operasyon ng data, at kontrol sa daloy.

Ang mga panuntunan sa pag-filter at mga humahawak na partikular sa protocol ay pinagsama-sama sa bytecode sa espasyo ng gumagamit, pagkatapos nito ay na-load ang bytecode na ito sa kernel gamit ang interface ng Netlink at isinagawa sa kernel sa isang espesyal na virtual machine na nakapagpapaalaala sa BPF (Berkeley Packet Filters). Ang diskarte na ito ay nagbibigay-daan sa iyo upang makabuluhang bawasan ang laki ng filtering code na tumatakbo sa antas ng kernel at ilipat ang lahat ng mga function ng mga panuntunan sa pag-parse at lohika para sa pagtatrabaho sa mga protocol sa espasyo ng gumagamit.

Mga pangunahing inobasyon:

  • Naidagdag ang isang rules optimization mode, na pinagana gamit ang bagong "-o" ("--optimize") na opsyon, na maaaring isama sa "--check" na opsyon upang suriin at i-optimize ang mga pagbabago sa ruleset file nang hindi talaga ito nilo-load . Binibigyang-daan ka ng pag-optimize na pagsamahin ang mga katulad na panuntunan, halimbawa, ang mga panuntunan: 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 tanggapin ang ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    ay isasama 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 } tanggapin ang ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : tanggapin, 2.2.2.2 . 3.3.3.3 : drop }

    Halimbawa ng paggamit: # nft -c -o -f ruleset.test Pagsasama: 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 accept sa: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packet 0 bytes 0 accept

  • Ang mga listahan ng hanay ay nagpapatupad ng kakayahang tukuyin ang mga opsyon sa ip at tcp, pati na rin ang mga 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 }
  • Nagdagdag ng suporta para sa mga opsyon sa TCP fastopen, md5sig at mptcp.
  • Nagdagdag ng suporta para sa paggamit ng mp-tcp subtype sa mappings: tcp option mptcp subtype 1
  • Pinahusay na kernel-side filtering code.
  • Ang Flowtable ay mayroon na ngayong ganap na suporta para sa JSON na format.
  • Ang kakayahang gamitin ang pagkilos na "tanggihan" sa mga pagpapatakbo ng pagtutugma ng Ethernet frame ay ibinigay. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Pinagmulan: opennet.ru

Magdagdag ng komento