nftables packet filter 1.0.6 rilaxx

Ġie ppubblikat ir-rilaxx tal-packet filter nftables 1.0.6, li jgħaqqad l-interfaces tal-filtrazzjoni tal-pakketti għall-IPv4, IPv6, ARP u pontijiet tan-netwerk (immirati biex jissostitwixxu iptables, ip6table, arptables u ebtables). 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 handlers speċifiċi għall-protokoll huma kkompilati f'bytecode tal-ispazju tal-utent, u wara dan il-bytecode jitgħabba fil-kernel bl-użu tal-interface Netlink u eżegwit fil-kernel f'magna virtwali speċjali li tixbaħ BPF (Berkeley Packet Filters). Dan l-approċċ jagħmilha possibbli li jitnaqqas b'mod sinifikanti d-daqs tal-kodiċi tal-filtrazzjoni li jaħdem fil-livell tal-qalba u l-funzjonijiet kollha tar-regoli tal-parsing u l-loġika tal-ħidma bi protokolli jitmexxew fl-ispazju tal-utent.

Bidliet ewlenin:

  • L-ottimizzatur tar-regoli, imsejjaħ meta tiġi speċifikata l-għażla "-o/—ottimizza", għandu ippakkjar awtomatiku tar-regoli billi jgħaqqadhom u jikkonvertihom f'listi ta 'mapep u settijiet. Per eżempju, regoli # cat ruleset.nft tabella ip x { katina y { tip filtru hook input filtru prijoritarju; tnaqqis fil-politika; 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.4 jaċċetta meta iifname eth1 ip saddr 1.1.1.2 ip meta daddr 2.2.3.0 eth24 ip daddr 1 eth1.1.1.2. .2.2.4.0 ip daddr 2.2.4.10-2 accept meta iifname eth1.1.1.3 ip saddr 2.2.2.5 ip daddr 4 accept } } wara li tesegwixxi "nft -o -c -f ruleset.nft" se tiġi kkonvertita għal kif ġej: ruleset .nft:17:74-1: meta iifname eth1.1.1.1 ip saddr 2.2.2.3 ip daddr 5 accept ruleset.nft:17:74-1: meta iifname eth1.1.1.2 ip saddr 2.2.2.4 ip daddr 6 accept ruleset.nft : 17:77-1: meta iifname eth1.1.1.2 ip saddr 2.2.3.0 ip daddr 24/7 accept ruleset.nft:17:83-1: meta iifname eth1.1.1.2 ip saddr 2.2.4.0 ip daddr 2.2.4.10-8. accept ruleset.nft:17:74-2: meta iifname eth1.1.1.3 ip saddr 2.2.2.5 ip daddr 1 accept into: iifname . ip saddr. ip daddr { eth1.1.1.1 . 2.2.2.3. 1, eth1.1.1.2 . 2.2.2.4. 1, eth1.1.1.2 . 2.2.3.0. 24/1, eth1.1.1.2 . 2.2.4.0. 2.2.4.10-2, eth1.1.1.3. 2.2.2.5. XNUMX } jaċċetta
  • L-ottimizzatur jista 'wkoll jikkonverti regoli li diġà jużaw listi ta' sett sempliċi f'forma aktar kompatta, pereżempju r-regoli: # cat ruleset.nft table ip filter { chain input { type filter hook input filtru prijoritarju; tnaqqis fil-politika; iifname "lo" jaċċetta l-istat ct stabbilit, relatat jaċċetta kumment "Fit-traffiku aħna oriġinaw, aħna nafdaw" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 isport 123 ud32768 udp 65535-0 ddp 31 d iifname "enp6s64.59.144.17f64.59.150.133" ip saddr { 10.0.0.149, 53 } ip daddr 32768 udp sport 65535 udp dport 6-22 jaċċetta } } wara li tesegwixxi r-regoli tal-pakkett "segwu. : ruleset.nft:149:0-31: iifname "enp6s209.115.181.102f216.197.228.230" ip saddr { 10.0.0.149, 123 } ip daddr 32768 udp sport 65535 udp 7:-22 udp:-rls:-143. 0 : iifname "enp31s6f64.59.144.17" ip saddr { 64.59.150.133, 10.0.0.149 } ip daddr 53 udp sport 32768 udp dport 65535-0 accept into: iifname . ip saddr. ip daddr. sport udp. udp dport { enp31s6f209.115.181.102 . 10.0.0.149. 123. 32768. 65535-0, enp31s6f216.197.228.230. 10.0.0.149. 123. 32768. 65535-0, enp31s6f64.59.144.17. 10.0.0.149. 53. 32768. 65535-0, enp31s6f64.59.150.133. 10.0.0.149. 53. 32768. 65535-XNUMX } jaċċetta
  • Problema solvuta bil-ġenerazzjoni ta 'bytecode għall-għaqda ta' intervalli li jużaw tipi b'ordni ta 'byte differenti, bħal IPv4 (ordni ta' byte tan-netwerk) u meta mark (ordni ta 'byte tas-sistema). tabella ip x { mappa w { tip ta ' ip saddr . meta mark: verdict flags intervall counter elements = {127.0.0.1-127.0.0.4. 0x123434-0xb00122 : aċċetta, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : taċċetta, } } katina k { filtru ta 'prijorità tad-dħul tal-filtru tat-tip ganċ; tnaqqis fil-politika; ip saddr. meta mark vmap @w } }
  • Tqabbil imtejjeb ta' protokolli rari meta jintużaw espressjonijiet mhux ipproċessati, pereżempju: meta l4proto 91 @th,400,16 0x0 accept
  • Ġew solvuti problemi bir-regoli tal-abilitazzjoni f'intervalli: daħħal ir-regola xy tcp sport { 3478-3497, 16384-16387 } counter accept
  • L-API JSON ġiet imtejba biex tinkludi appoġġ għall-espressjonijiet f'listi ta' sett u mapep.
  • L-estensjonijiet tal-librerija nftables python jippermettu t-tagħbija ta 'settijiet ta' regoli għall-ipproċessar fil-mod ta 'validazzjoni ("-c") u jżidu appoġġ għal definizzjoni esterna ta' varjabbli.
  • Iż-żieda ta' kummenti hija permessa f'elementi ta' lista stabbiliti.
  • Byte ratelimit jippermetti li jiġi speċifikat valur żero.

Sors: opennet.ru

Żid kumment