nftables packet filter 1.0.7 release

Rilis filter paket nftables 1.0.7 wis diterbitake, nyawiji antarmuka panyaring paket kanggo IPv4, IPv6, ARP lan jembatan jaringan (kanggo ngganti iptables, ip6table, arptables lan ebtables). Paket nftables kalebu komponen filter paket sing mlaku ing ruang pangguna, dene level kernel diwenehake dening subsistem nf_tables, sing wis dadi bagian saka kernel Linux wiwit dirilis 3.13. Ing tingkat kernel, mung antarmuka bebas protokol umum sing diwenehake sing nyedhiyakake fungsi dhasar kanggo ngekstrak data saka paket, nindakake operasi ing data, lan ngontrol aliran.

Aturan nyaring dhewe lan panangan khusus protokol dikompilasi menyang bytecode spasi pangguna, sawise bytecode iki dimuat menyang kernel nggunakake antarmuka Netlink lan dieksekusi ing kernel ing mesin virtual khusus sing meh padha karo BPF (Berkeley Packet Filters). Pendekatan iki ndadekake bisa nyuda ukuran kode nyaring sing mlaku ing tingkat kernel lan mindhah kabeh fungsi aturan parsing lan logika nggarap protokol menyang ruang pangguna.

Owah-owahan utama:

  • Kanggo sistem Linux 6.2+, dhukungan kanggo pencocokan protokol vxlan, geneve, gre, lan gretap wis ditambahake, ngidini ekspresi prasaja kanggo mriksa header ing paket encapsulated. Contone, kanggo mriksa alamat IP ing header paket nested saka VxLAN, sampeyan saiki bisa nggunakake aturan kasebut (tanpa perlu deencapsulate header VxLAN dhisik lan ikatan filter menyang antarmuka vxlan0): ... udp dport 4789 vxlan ip protocol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX}
  • Dhukungan sing dileksanakake kanggo nggabungake residual kanthi otomatis sawise mbusak sebagian saka unsur dhaptar, sing ngidini mbusak unsur utawa bagean saka sawetara saka sawetara sing wis ana (sadurunge, sawetara mung bisa dibusak kabeh). Contone, sawise njabut unsur 25 saka dhaftar pesawat karo kisaran 24-30 lan 40-50, 24, 26-30 lan 40-50 bakal tetep ing dhaftar. Perbaikan sing dibutuhake kanggo nggabungake otomatis bakal ditawakake ing rilis korektif saka 5.10+ cabang stabil saka kernel. # nft list ruleset table ip x {set y {typeof tcp dport flags interval auto-merge elements = {24-30, 40-50}}}} # nft delete element ip xy {25} # nft list ruleset table ip x {set y {typeof tcp dport flags interval auto-merge elemen = {24, 26-30, 40-50}}}
  • Ngidini kontak lan rentang digunakake ing pemetaan terjemahan alamat (NAT). table ip nat { chain prerouting { type nat hook prerouting priority dstnat; kawicaksanan nampa; dnat to ip daddr . peta tcp dport {10.1.1.136. 80: 1.1.2.69 . 1024, 10.1.1.10-10.1.1.20. 8888-8889 : 1.1.2.69 . 2048-2049 } terus-terusan } }
  • Dhukungan ditambahake kanggo ekspresi "pungkasan", sing ngidini sampeyan ngerteni wektu panggunaan pungkasan unsur aturan utawa dhaptar dhaptar. Fitur iki wis didhukung wiwit kernel Linux 5.14. tabel ip x {set y {jinis ip daddr. tcp dport size 65535 flags dynamic,timeout last timeout 1h } chain z {type filter hook output filter priority; kawicaksanan nampa; nganyari @y { ip daddr. tcp dport } } } # nft list set ip xy table ip x {set y {typeof ip daddr. tcp dport ukuran 65535 gendera dinamis, wektu entek pungkasan unsur 1h = {172.217.17.14. 443 pungkasan digunakake 1s591ms wektu entek 1h kadaluwarsa 59m58s409ms, 172.67.69.19. 443 pungkasan digunakake 4s636ms wektu entek 1h kadaluwarsa 59m55s364ms, 142.250.201.72. 443 pungkasan digunakake 4s748ms wektu entek 1h kadaluwarsa 59m55s252ms, 172.67.70.134. 443 pungkasan digunakake 4s688ms wektu entek 1h kadaluwarsa 59m55s312ms, 35.241.9.150. 443 pungkasan digunakake 5s204ms wektu entek 1h kadaluwarsa 59m54s796ms, 138.201.122.174. 443 pungkasan digunakake 4s537ms wektu entek 1h kadaluwarsa 59m55s463ms, 34.160.144.191. 443 pungkasan digunakake 5s205ms wektu entek 1h kadaluwarsa 59m54s795ms, 130.211.23.194. 443 pungkasan digunakake 4s436ms wektu entek 1 jam kadaluwarsa 59m55s564ms }}}
  • Nambahake kemampuan kanggo nemtokake kuota ing dhaptar-set. Contone, kanggo nemtokake kuota lalu lintas kanggo saben alamat IP target, sampeyan bisa nemtokake: table netdev x {set y {typeof ip daddr size 65535 quota over 10000 mbytes} chain y {type filter hook egress device "eth0" priority filter; kawicaksanan nampa; ip daddr @y drop }} # nft nambah unsur inet xy {8.8.8.8} # ping -c 2 8.8.8.8 # nft list ruleset table netdev x {set y {jinis ipv4_addr ukuran 65535 kuota luwih saka 10000 mbytes unsur = {8.8.8.8. 10000 kuota liwat 196 mbytes digunakake 0 bita }} chain y {jinis pancing pancing egress piranti "ethXNUMX" saringan prioritas; kawicaksanan nampa; ip daddr @y drop }}
  • Panggunaan konstanta ing dhaptar-set diijini. Contone, nalika nggunakake dhaptar alamat tujuan lan ID VLAN minangka tombol, sampeyan bisa nemtokake nomer VLAN langsung (daddr. 123): table netdev t {set s {typeof ether saddr. vlan id size 2048 flags dynamic, timeout timeout 1m } chain c {type filter hook ingress device eth0 priority 0; kawicaksanan nampa; jinis eter != 8021q nganyari @s {ether daddr. 123 } counter } }
  • Printah "ngrusak" anyar wis ditambahake kanggo mbusak obyek tanpa syarat (ora kaya perintah mbusak, ora ngasilake ENOENT nalika nyoba mbusak obyek sing ilang). Mbutuhake paling ora kernel Linux 6.3-rc kanggo bisa. numpes Tabel ip Filter

Source: opennet.ru

Add a comment