Avaldatud on paketifiltri nftables 1.0.2 vĂ€ljaanne, mis ĂŒhtlustab pakettide filtreerimise liideseid IPv4, IPv6, ARP ja vĂ”rgusildade jaoks (suunatud iptables, ip6tables, arptables ja ebtables asendamisele). VĂ€ljaande nftables 1.0.2 nĂ”utavad muudatused on lisatud Linuxi kernelisse 5.17-rc.
Nftables'i paketti kuuluvad kasutajaruumi töötavad pakettfilteri komponendid, samas kui tuuma tasemel tagab töö nf_tables sĂŒsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Tuuma tasemel pakutakse vaid ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete vĂ€ljavĂ”tmiseks pakettidest, andmetega töötamiseks ja voogude haldamiseks.
Filtreerimise reeglid ja protokollile spetsiifilised töötlejad kompileeritakse kasutajaruumi baidikoodiks, seejÀrel laaditakse see baidikood tuuma Netlink liidese abil ja tÀidetakse tuumas spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lÀhenemine vÔimaldab oluliselt vÀhendada tuuma tasemel töötava filtreerimiskoodi suurust ja viia kÔik reeglite tÔlgendamise ja protokollidega töötamise funktsioonid kasutajaruumi.
Peamised uuendused:
- Lisatud on reeglite optimeerimise reĆŸiim, mida saab aktiveerida uue valiku â-oâ (ââoptimizeâ) abil, mida saab kombineerida valikuga ââcheckâ, et kontrollida ja optimeerida reeglite kogumi faili muudatusi ilma selle tegeliku laadimiseta. Optimeerimine vĂ”imaldab sarnaste reeglite ĂŒhendamist, nĂ€iteks reeglid: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop
ĂŒhendatakse meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }
KasutusnĂ€ide: # nft -c -o -f ruleset.test Ăhendamine: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accept jĂ€rgmisse: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept
- Set-loendites on rakendatud vÔimalus mÀÀrata ip- ja tcp-valikuid ning samuti SCTP chunk'e: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
- Lisatud on tugi TCP-valikutele fastopen, md5sig ja mptcp.
- Lisatud on tugi mp-tcp alaliigi seostamiseks: tcp option mptcp subtype 1
- Filtreerimiskoodi, mis töötab kernelis, on parandatud.
- Flowtable jaoks on rakendatud tÀielik toetus JSON formaadi jaoks.
- Este on vĂ”imalus kasutada ârejectâ toimingut Ethernet raamide vastavustes. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject
Allikas: opennet.ru
