nftables paka filtrilo 1.0.2 eldono

La liberigo de paka filtrilo nftables 1.0.2 estis publikigita, unuigante pakaĵetfiltrilinterfacojn por IPv4, IPv6, ARP kaj retaj pontoj (celitaj por anstataŭigi iptables, ip6table, arptables kaj ebtables). La ŝanĝoj necesaj por ke la eldono nftables 1.0.2 funkciu estas inkluzivitaj en la Linukso-kerno 5.17-rc.

La nftables-pakaĵo inkluzivas pakatajn filtrilkomponentojn, kiuj funkcias en uzantspaco, dum la kernnivela laboro estas disponigita de la subsistemo nf_tables, kiu estis parto de la Linukso-kerno ekde eldono 3.13. La kernnivelo disponigas nur senmarkan protokol-sendependan interfacon kiu disponigas bazajn funkciojn por eltiri datenojn de pakaĵetoj, elfarante datumoperaciojn, kaj fluokontrolon.

La filtraj reguloj mem kaj protokol-specifaj pritraktiloj estas kompilitaj en uzantspacan bajtkodon, post kiu tiu bajtokodo estas ŝarĝita en la kernon uzante la Netlink-interfacon kaj efektivigita en la kerno en speciala virtuala maŝino simila al BPF (Berkeley Packet Filters). Ĉi tiu aliro ebligas signife redukti la grandecon de la filtra kodo funkcianta ĉe la kernnivelo kaj movi ĉiujn funkciojn de analizaj reguloj kaj la logikon labori kun protokoloj en uzantspacon.

Ĉefaj novigoj:

  • Reĝimo pri optimumigo de reguloj estis aldonita, ebligita per la nova opcio "-o" ("--optimize"), kiu povas esti kombinita kun la opcio "--check" por kontroli kaj optimumigi ŝanĝojn al la reguldosiero sen efektive ŝargi ĝin. . Optimumigo permesas kombini similajn regulojn, ekzemple, la regulojn: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 akceptu meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 akceptu ip saddr 1.1.1.1 ip daddr 2.2.2.2. .2.2.2.2 akcepti ip saddr 3.3.3.3 ip daddr XNUMX guto

    estos kombinita en meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, et1 . 1.1.1.2. 2.2.2.5 } akcepti ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : akcepti, 2.2.2.2 . 3.3.3.3 : guto }

    Ekzempla uzado: # nft -c -o -f ruleset.test Kunfandado: 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 akceptu en: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter pakoj 0 bajtoj 0 akcepti

  • La aro-listoj efektivigas la kapablon specifi ip- kaj tcp-opciojn, same kiel sctp-pecojn: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } ĉeno c5 { ip opcio ra valoro @s5 akceptas } ĉeno c7 { sctp chunk init num-inbound-streams @s7 akceptas }
  • Aldonita subteno por TCP-opcioj fastopen, md5sig kaj mptcp.
  • Aldonita subteno por uzi la mp-tcp-subtipo en mapadoj: tcp opcio mptcp-subtipo 1
  • Plibonigita kernflanka filtra kodo.
  • Flowtable nun havas plenan subtenon por la JSON-formato.
  • La kapablo uzi la "malakcepti" agon en Eterretaj kadro-kongruaj operacioj estis disponigita. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 rifuzi

fonto: opennet.ru

Aldoni komenton