nftables paketų filtro išleidimas 1.0.6

Paskelbtas nftables 1.0.6 paketų filtro leidimas, sujungiantis IPv4, IPv6, ARP ir tinklo tiltų paketų filtravimo sąsajas (skirtas pakeisti iptables, ip6table, arptables ir ebtables). Į paketą nftables yra paketų filtrų komponentai, kurie veikia vartotojo erdvėje, o branduolio lygį užtikrina nf_tables posistemis, kuris yra Linux branduolio dalis nuo 3.13 versijos. Branduolio lygmenyje pateikiama tik bendroji nuo protokolo nepriklausoma sąsaja, teikianti pagrindines funkcijas duomenims iš paketų išgauti, duomenų operacijoms atlikti ir srautui valdyti.

Pačios filtravimo taisyklės ir specifiniams protokolams skirtos tvarkyklės yra sukompiliuojamos į vartotojo erdvės baitinį kodą, po kurio šis baito kodas įkeliamas į branduolį naudojant Netlink sąsają ir vykdomas branduolyje specialioje virtualioje mašinoje, primenančioje BPF (Berkeley Packet Filters). Šis metodas leidžia žymiai sumažinti branduolio lygiu veikiančio filtravimo kodo dydį ir perkelti visas analizavimo taisyklių funkcijas bei darbo su protokolais logiką į vartotojo erdvę.

Pagrindiniai pakeitimai:

  • Taisyklių optimizavimo priemonėje, iškviestame nurodant parinktį „-o/--optimize“, buvo nustatytas automatinis taisyklių paketas, jas sujungiant ir konvertuojant į žemėlapių ir rinkinių sąrašus. Pavyzdžiui, taisyklės yra # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; politikos kritimas; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 priimti meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 priimti meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0 ip daddr. .24 .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 } } po "nft -o -c -f ruleset.nft" bus konvertuojamas į: taisyklių rinkinys. nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 priimti taisykles.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.2: priimti taisykles. 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 priimti taisykles.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2 priimti ruleset.nft:2.2.4.0:2.2.4.10-8: meta iifname eth17 ip saddr 74 ip daddr 2 priimti į: iifname . ip saddr . ip daddr { eth1.1.1.3 . 2.2.2.5. 1, eth1.1.1.1 . 2.2.2.3. 1, eth1.1.1.2 . 2.2.2.4. 1/1.1.1.2, eth2.2.3.0 . 24. 1-1.1.1.2, eth2.2.4.0 . 2.2.4.10. 2 } priimti
  • Optimizatorius taip pat gali sutrumpinti taisykles, kuriose jau naudojami paprasti rinkinių sąrašai, į kompaktiškesnę formą, pavyzdžiui: # cat rulett.nft table ip filter { grandinės įvestis { tipas filtras kablio įvesties prioriteto filtras; politikos kritimas; iifname "lo" priimti ct būsena nustatyta, susiję priimti komentarą "Eismo mes sukuriame, mes pasitikime" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149port daddr 123 32768 priimti 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 paketas be šio paketo - irtn.c priimti nft taisyklės : 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.149et123nf32768 :65535-7 22 : iifname "enp143s0f31" ip saddr { 6, 64.59.144.17 } ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768iifname priimti į: . ip saddr . ip tėtis. udp sportas. udp dport { enp65535s0f31 . 6 . 209.115.181.102 . 10.0.0.149 . 123-32768, enp65535s0f31 . 6 . 216.197.228.230 . 10.0.0.149 . 123-32768, enp65535s0f31 . 6. 64.59.144.17 . 10.0.0.149 . 53-32768, enp65535s0f31 . 6. 64.59.150.133 . 10.0.0.149 . 53-32768 } priimti
  • Išspręsta baitinio kodo generavimo problema, sujungianti intervalus, kuriuose naudojami skirtingų tipų tipai, pvz., IPv4 (tinklo galas) ir meta ženklas (sistemos galas). lentelė ip x { map w { typeof ip saddr . meta ženklas : verdikto vėliavėlių intervalų skaitiklio elementai = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : priimti, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : priimti, } } grandinė k { tipo filtras kabliukas įvesties prioriteto filtras; politikos kritimas; ip saddr . meta ženklas vmap @w } }
  • Patobulintas retų protokolų susiejimas naudojant neapdorotas išraiškas, pvz.: meta l4proto 91 @th,400,16 0x0 accept
  • Ištaisytos problemos, susijusios su taisyklių įgalinimo intervalais: įterpkite taisyklę xy tcp sport { 3478-3497, 16384-16387 } counter accept
  • JSON API buvo patobulinta, kad palaikytų išraiškas rinkinių ir žemėlapių sąrašuose.
  • Į nftables python bibliotekos plėtinius leidžiama įkelti taisyklių rinkinius, kad būtų galima apdoroti tikrinimo režimu („-c“), ir buvo pridėtas išorinio kintamojo apibrėžimo palaikymas.
  • Pridėti komentarus leidžiama rinkinių sąrašų elementuose.
  • Baitų greičio limite leidžiamos nulinės reikšmės.

Šaltinis: opennet.ru

Добавить комментарий