Ġie ppubblikat ir-rilaxx tal-packet filter nftables 1.0.2, li jgħaqqad l-interfaces tal-iffiltrar tal-pakketti għall-IPv4, IPv6, ARP u pontijiet tan-netwerk (immirati biex jissostitwixxu iptables, ip6table, arptables u ebtables). Il-bidliet meħtieġa għar-rilaxx ta 'nftables 1.0.2 biex jaħdmu huma inklużi fil-kernel Linux 5.17-rc.
Il-pakkett nftables jinkludi komponenti tal-filtri tal-pakketti li jaħdmu fl-ispazju tal-utent, filwaqt li x-xogħol fil-livell tal-kernel huwa pprovdut mis-subsistema nf_tables, li ilha parti mill-kernel tal-Linux sa mir-rilaxx 3.13. Il-livell tal-qalba jipprovdi biss interface ġeneriku indipendenti mill-protokoll li jipprovdi funzjonijiet bażiċi għall-estrazzjoni tad-dejta minn pakketti, it-twettiq ta 'operazzjonijiet tad-dejta, u l-kontroll tal-fluss.
Ir-regoli tal-filtrazzjoni nfushom u l-handlers speċifiċi għall-protokoll huma kkumpilati f'bytecode fl-ispazju tal-utent, u wara dan il-bytecode jiġi mgħobbi fil-kernel bl-użu tal-interface Netlink u eżegwit fil-kernel b'mod speċjali. magna virtwali, tfakkar fil-BPF (Berkeley Packet Filters). Dan l-approċċ jippermetti tnaqqis sinifikanti fid-daqs tal-kodiċi tal-filtrazzjoni li jaħdem fil-livell tal-kernel u jċaqlaq l-analiżi tar-regoli u l-loġika tal-protokoll kollha fl-ispazju tal-utent.
Innovazzjonijiet ewlenin:
- Ġie miżjud mod ta' ottimizzazzjoni tar-regoli, attivat bl-użu ta' l-għażla l-ġdida "-o" ("--optimize"), li tista' tiġi kkombinata ma' l-għażla "--check" biex tiċċekkja u tottimizza l-bidliet fil-fajl tar-regoli mingħajr ma fil-fatt tagħbijah . L-ottimizzazzjoni tippermettilek tgħaqqad regoli simili, pereżempju, ir-regoli: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 jaċċetta meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 jaċċetta ip saddr 1.1.1.1 ip daddr 2.2.2.2. .2.2.2.2 jaċċetta ip saddr 3.3.3.3 ip daddr XNUMX drop
se jiġu kkombinati f'meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } jaċċetta ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : aċċetta, 2.2.2.2 . 3.3.3.3 : qatra }
Eżempju ta' użu: # nft -c -o -f ruleset.test Għaqda: 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 into: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept
- Il-listi tas-sett jimplimentaw l-abbiltà li jispeċifikaw l-għażliet ip u tcp, kif ukoll biċċiet sctp: 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 }
- Appoġġ miżjud għall-għażliet TCP fastopen, md5sig u mptcp.
- Appoġġ miżjud għall-użu tas-sottotip mp-tcp fil-mappings: għażla tcp subtip mptcp 1
- Kodiċi tal-filtrazzjoni mtejba fuq in-naħa tal-qalba.
- Flowtable issa għandu appoġġ sħiħ għall-format JSON.
- Ġiet ipprovduta l-abbiltà li tintuża l-azzjoni ta '"rifjut" f'operazzjonijiet ta' tqabbil tal-qafas Ethernet. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 jiċħad
Sors: opennet.ru
