Paskelbtas paketų filtro nftables 1.0.2 leidimas, sujungiantis IPv4, IPv6, ARP ir tinklo tiltų paketų filtravimo sąsajas (skirtas pakeisti iptables, ip6table, arptables ir ebtables). Pakeitimai, reikalingi, kad nftables 1.0.2 leidimas veiktų, yra įtraukti į Linux branduolį 5.17-rc.
Į paketą nftables yra paketų filtrų komponentai, kurie veikia vartotojo erdvėje, o branduolio lygio darbą užtikrina nf_tables posistemis, kuris yra Linux branduolio dalis nuo 3.13 leidimo. Branduolio lygis suteikia tik bendrąją nuo protokolo nepriklausomą sąsają, kuri suteikia pagrindines funkcijas duomenims iš paketų išgauti, duomenų operacijoms atlikti 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ę.
Pagrindinės naujovės:
- Pridėtas taisyklių optimizavimo režimas, įjungtas naudojant naują parinktį „-o“ („--optimize“), kurią galima derinti su parinktimi „--check“, kad būtų galima patikrinti ir optimizuoti taisyklių rinkinio failo pakeitimus jo neįkeliant. . Optimizavimas leidžia derinti panašias taisykles, pavyzdžiui, taisykles: 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.5 priimti ip saddr 1.1.1.1d2.2.2.2 ip saddr .2.2.2.2d3.3.3.3. .XNUMX priimti ip saddr XNUMX ip daddr XNUMX drop
bus sujungtas į meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } priimti ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : priimti, 2.2.2.2 . 3.3.3.3 : lašas }
Naudojimo pavyzdys: # nft -c -o -f taisyklės.testas Sujungimas: taisyklės.nft:16:3-37: ip daddr 192.168.0.1 skaitiklis priimti ruletė.nft:17:3-37: ip daddr 192.168.0.2 skaitiklis priimti ruleset.nft:18:3-37: ip daddr 192.168.0.3 skaitiklis priimti į: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } skaitiklio paketus 0 baitų 0 priimti
- Rinkinių sąrašuose įdiegta galimybė nurodyti ip ir tcp parinktis, taip pat sctp dalis: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } grandinė c5 { ip parinktis ra vertė @s5 priimti } grandinė c7 { sctp chunk init num-inbound-streams @s7 accept }
- Pridėtas TCP parinkčių fastopen, md5sig ir mptcp palaikymas.
- Pridėtas mp-tcp potipio naudojimo atvaizdavime palaikymas: tcp parinktis mptcp 1 potipis
- Patobulintas branduolio pusės filtravimo kodas.
- „Flowtable“ dabar visiškai palaiko JSON formatą.
- Suteikta galimybė naudoti „atmetimo“ veiksmą Ethernet kadrų suderinimo operacijose. eteris saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 atmesti
Šaltinis: opennet.ru
