Išleistas „nftables 1.0.6“ paketų filtras. Jis suvienodina paketų filtravimo sąsajas IPv4, IPv6, ARP ir tinklo tiltams (skirtas pakeisti „iptables“, „ip6table“, „arptables“ ir „ebtables“). „nftables“ pakete yra vartotojo erdvės paketų filtro komponentai, o branduolio lygio funkcionalumą teikia „nf_tables“ posistemė, kuri yra branduolio dalis. Linux Nuo 3.13 versijos branduolio lygmenyje pateikiama tik bendra, nuo protokolo nepriklausoma sąsaja, užtikrinanti pagrindines funkcijas duomenų išgavimui iš paketų, duomenų operacijų atlikimui ir srauto valdymui.
Pačios filtravimo taisyklės ir protokolui būdingi tvarkyklės yra kompiliuojamos į baitinį kodą vartotojo erdvėje, po kurio šis baitinis kodas įkeliamas į branduolį naudojant „Netlink“ sąsają ir vykdomas branduolyje specialiu būdu. Virtuali mašina, primenantis BPF (Berkeley paketų filtrus). Šis metodas leidžia žymiai sumažinti branduolio lygmenyje veikiančio filtravimo kodo dydį ir perkelia visą taisyklių analizę bei protokolo 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
