nftables pakét filter release 1.0.7

Pelepasan packet filter nftables 1.0.7 geus diterbitkeun, ngahijikeun packet filtering interfaces pikeun IPv4, IPv6, ARP jeung sasak jaringan (ditujukeun pikeun ngaganti iptables, ip6table, arptables jeung ebtables). Paket nftables kalebet komponén saringan pakét anu dijalankeun dina rohangan pangguna, sedengkeun padamelan tingkat kernel disayogikeun ku subsistem nf_tables, anu parantos janten bagian tina kernel Linux ti saprak ngaleupaskeun 3.13. Tingkat kernel ngan nyadiakeun antarbeungeut protokol-bebas generik nu nyadiakeun pungsi dasar pikeun extracting data tina pakét, ngajalankeun operasi data, jeung kontrol aliran.

Aturan nyaring jeung panangan husus protokol anu disusun kana bytecode dina spasi pamaké, nu satutasna bytecode ieu dimuat kana kernel ngagunakeun panganteur Netlink sarta dieksekusi dina kernel dina mesin virtual husus reminiscent of BPF (Berkeley Packet Filters). Pendekatan ieu ngamungkinkeun anjeun sacara signifikan ngirangan ukuran kode nyaring anu dijalankeun dina tingkat kernel sareng mindahkeun sadaya fungsi aturan parsing sareng logika pikeun damel sareng protokol kana rohangan pangguna.

Parobahan utama:

  • Pikeun sistem anu ngajalankeun kernel Linux 6.2+, dukungan pikeun pemetaan protokol vxlan, geneve, gre, sareng gretap parantos ditambah, anu ngamungkinkeun ekspresi saderhana pikeun mariksa header dina pakét anu dibungkus. Contona, pikeun mariksa alamat IP dina lulugu pakét nested ti VxLAN, anjeun ayeuna bisa make aturan (tanpa kudu de-encapsulate heula header VxLAN tur meungkeut filter ka panganteur vxlan0): ... udp dport 4789 vxlan ip protokol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip dadr {4.3.2.1. XNUMX }
  • Rojongan pikeun ngahijikeun otomatis sésa-sésa saatos ngahapus sabagéan tina unsur set-list parantos dilaksanakeun, anu ngamungkinkeun anjeun ngahapus unsur atanapi bagian tina rentang tina rentang anu tos aya (saméméhna, rentang ngan ukur tiasa dihapus sadayana). Contona, sanggeus miceun unsur 25 tina daptar set kalawan rentang 24-30 jeung 40-50, daptar bakal tetep 24, 26-30 jeung 40-50. Perbaikan anu diperyogikeun pikeun ngahijikeun otomatis bakal ditawarkeun dina sékrési pangropéa tina cabang stabil tina kernel 5.10+. # nft daptar 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 bandéra interval otomatis-ngagabung elemen = {24, 26-30, 40-50}}}
  • Ngidinan pamakean kontak sareng rentang nalika memetakan tarjamahan alamat (NAT). tabél ip nat {chain prerouting {tipe nat hook prerouting prioritas dstnat; kawijakan narima; dnat ka 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 } pengkuh } }
  • Ditambahkeun rojongan pikeun "panungtungan" éksprési, nu ngidinan Anjeun pikeun manggihan waktu pamakéan panungtungan unsur aturan atawa daptar set. Fitur ieu dirojong dimimitian ku Linux kernel 5.14. tabél ip x {set y {jenis ip daddr. tcp dport ukuran 65535 umbul dinamis,beak waktu panungtungan 1h } ranté z {tipe filter hook kaluaran prioritas filter; kawijakan narima; update @y {ip daddr. tcp dport}}} # nft daptar set ip xy tabel ip x {set y {typeof ip daddr. tcp dport ukuran 65535 umbul dinamis, beak panungtungan timeout 1h elemen = {172.217.17.14. 443 panungtungan dipaké 1s591ms timeout 1h béakna 59m58s409ms, 172.67.69.19. 443 panungtungan dipaké 4s636ms timeout 1h béakna 59m55s364ms, 142.250.201.72. 443 panungtungan dipaké 4s748ms timeout 1h béakna 59m55s252ms, 172.67.70.134. 443 panungtungan dipaké 4s688ms timeout 1h béakna 59m55s312ms, 35.241.9.150. 443 panungtungan dipaké 5s204ms timeout 1h béakna 59m54s796ms, 138.201.122.174. 443 panungtungan dipaké 4s537ms timeout 1h wayahna 59m55s463ms, 34.160.144.191. 443 panungtungan dipaké 5s205ms timeout 1h béakna 59m54s795ms, 130.211.23.194. 443 panungtungan dipaké 4s436ms seep 1h kadaluwarsa 59m55s564ms }}}}
  • Ditambahkeun kamampuan pikeun nangtukeun kuota dina daptar set. Contona, pikeun nangtukeun kuota lalulintas keur unggal alamat IP target, Anjeun bisa nangtukeun: tabel netdev x {set y {typeof ip daddr ukuranana 65535 kuota leuwih 10000 mbytes} ranté y {tipe filter hook egress alat "eth0" prioritas filter; kawijakan narima; ip daddr @y serelek}} # nft nambahkeun unsur inet xy {8.8.8.8} # ping -c 2 8.8.8.8 # nft daptar ruleset tabel netdev x {set y {tipe ipv4_addr ukuranana 65535 kuota leuwih 10000 mbytes elemen = {8.8.8.8. 10000 kuota leuwih 196 mbytes dipaké 0 bait}} ranté y {tipe filter hook egress alat "ethXNUMX" prioritas filter; kawijakan narima; ip daddr @y leupaskeun } }
  • Pamakéan konstanta dina daptar set diwenangkeun. Contona, nalika ngagunakeun alamat tujuan jeung ID VLAN salaku konci daptar, Anjeun bisa langsung nangtukeun jumlah VLAN (daddr. 123): tabel netdev t {set s {typeof éter saddr. vlan id ukuran 2048 umbul dinamis, seep timeout 1m } ranté c {tipe filter hook ingress alat eth0 prioritas 0; kawijakan narima; tipe éter!= 8021q update @s {éter daddr. 123 } counter } }
  • Nambahkeun paréntah "ngancurkeun" anyar pikeun ngahapus objék tanpa sarat (teu sapertos paréntah ngahapus, éta henteu ngahasilkeun ENOENT nalika nyobian ngahapus objék anu leungit). Merlukeun sahenteuna Linux Ubuntu kernel 6.3-rc pikeun digawé. ngancurkeun tabel ip filter

sumber: opennet.ru

Tambahkeun komentar