nftables փաթեթային ֆիլտր 1.0.6 թողարկում

Հրապարակվել է nftables 1.0.6 փաթեթային ֆիլտրի թողարկումը, որը միավորում է փաթեթների զտման միջերեսները IPv4, IPv6, ARP և ցանցային կամուրջների համար (նպատակված է փոխարինել iptables, ip6table, arptables և ebtables): Nftables փաթեթը ներառում է փաթեթի զտիչ բաղադրիչներ, որոնք աշխատում են օգտագործողի տարածքում, մինչդեռ միջուկի մակարդակը տրամադրվում է nf_tables ենթահամակարգի կողմից, որը Linux միջուկի մաս է կազմում 3.13-ի թողարկումից ի վեր: Միջուկի մակարդակում տրամադրվում է միայն ընդհանուր պրոտոկոլից անկախ ինտերֆեյս, որն ապահովում է հիմնական գործառույթները՝ փաթեթներից տվյալներ հանելու, տվյալների վրա գործողություններ կատարելու և հոսքը վերահսկելու համար:

Ինքնին զտման կանոնները և պրոտոկոլի հատուկ մշակիչները կազմվում են օգտագործողի տարածության բայթկոդի մեջ, որից հետո այս բայթկոդը բեռնվում է միջուկում՝ օգտագործելով Netlink ինտերֆեյսը և գործարկվում միջուկում հատուկ վիրտուալ մեքենայի մեջ, որը նման է BPF-ին (Berkeley Packet Filters): Այս մոտեցումը հնարավորություն է տալիս զգալիորեն նվազեցնել միջուկի մակարդակով աշխատող զտիչ կոդի չափը և վերլուծության կանոնների բոլոր գործառույթները և արձանագրությունների հետ աշխատելու տրամաբանությունը տեղափոխել օգտվողի տարածք:

Խոշոր փոփոխություններ.

  • Կանոնների օպտիմիզատորում, որը կոչվում է «-o/--optimize» տարբերակը նշելիս, ստեղծվել է կանոնների ավտոմատ փաթեթավորում՝ դրանք համադրելով և դրանք փոխակերպելով քարտեզների և հավաքածուների ցուցակների: Օրինակ՝ կանոններն են # cat ruleset.nft աղյուսակ ip x { chain y { type filter hook input priority filter; քաղաքականության անկում; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 ընդունել meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 ընդունել meta iifname eth1 ip saddr 1.1.1.2 ընդունել meta iifname eth2.2.3.0 ip saddr 24. ip saddr 1 .1.1.1.2 ip daddr 2.2.4.0-2.2.4.10 ընդունել meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 ընդունել } } «nft -o -c -f ruleset.nft»-ից հետո կվերածվի հետևյալի. nft:4:17-74: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 ընդունել կանոններ.nft:5:17-74: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4. ընդունում կանոններ. 6:17-77. meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0/24 ընդունել կանոնները.nft:7:17-83: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0/2.2.4.10 ընդունել կանոնները.nft:8:17-74: ruleset.nft:2:1.1.1.3-2.2.2.5. meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 ընդունել՝ iifname: ip sadr. ip daddr {eth1. 1.1.1.2. 2.2.2.4, էթ1. 1.1.1.2. 2.2.3.0, էթ24. 1. 1.1.1.2/2.2.4.0, eth2.2.4.10. 2. 1.1.1.3-2.2.2.5, ethXNUMX. XNUMX. XNUMX } ընդունել
  • Օպտիմիզատորը կարող է նաև խտացնել կանոնները, որոնք արդեն օգտագործում են պարզ հավաքածուների ցուցակները ավելի կոմպակտ ձևի մեջ, ինչպիսին է. քաղաքականության անկում; iifname «lo» ընդունում է ct վիճակը հաստատված, առնչվող ընդունել մեկնաբանություն «Երթևեկության մեջ մենք ծագում ենք, մենք վստահում ենք» iifname «enp0s31f6» ip saddr {209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149ud123p32768p65535 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-6 run «այս կընդունի -nft-ի պես կանոնները - 22-ից հետո: Ruleset.nft:149:0-31. iifname «enp6s209.115.181.102f216.197.228.230» ip saddr {10.0.0.149, 123 } ip daddr 32768 udp65535 սպորտ 7 udp 22ftn 143: 0։31-6 64.59.144.17 iifname «enp64.59.150.133s10.0.0.149f53» ip saddr {32768, 65535 } ip daddr 0 udp sport 31 udp dport 6-209.115.181.102 ընդունել: ip sadr. ip daddr. udp սպորտ. udp dport {enp10.0.0.149s123f32768. 65535. 0 . 31 . 6-216.197.228.230, enp10.0.0.149s123f32768: 65535 . 0 . 31 . 6-64.59.144.17, enp10.0.0.149s53f32768: 65535. 0 . 31 . 6-64.59.150.133, enp10.0.0.149s53f32768: 65535. XNUMX . XNUMX . XNUMX-XNUMX } ընդունել
  • Լուծվել է բայթկոդի ստեղծման հետ կապված խնդիր՝ միաձուլման ընդմիջումներով, որոնք օգտագործում են տարբեր էնդիանականությամբ տեսակներ, ինչպիսիք են IPv4 (ցանցային էնդիան) և մետա նշանը (համակարգի էնդիան): սեղան ip x { map w {typof ip saddr . մետա նշան. դատավճռի դրոշներ միջակայքի հաշվիչի տարրեր = {127.0.0.1-127.0.0.4. 0x123434-0xb00122՝ ընդունել, 192.168.0.10-192.168.1.20: 0x0000aa00-0x0000aaff՝ ընդունել, } } chain k {type filter hook input priority filter; քաղաքականության անկում; ip sadr. մետա նշան vmap @w } }
  • Բարելավված հազվագյուտ արձանագրությունների քարտեզագրում հում արտահայտություններ օգտագործելիս, օրինակ՝ meta l4proto 91 @th,400,16 0x0 ընդունում
  • Շտկվել են ընդմիջումներով միացնելու կանոնների հետ կապված խնդիրները. ներդիր կանոն xy tcp sport { 3478-3497, 16384-16387 } հաշվիչ ընդունում
  • JSON API-ն բարելավվել է՝ փաթեթների և քարտեզների ցուցակներում արտահայտություններն աջակցելու համար:
  • Nftables python գրադարանի ընդլայնումներում կանոնների հավաքածուները թույլատրվում են բեռնել ստուգման ռեժիմում մշակման համար («-c») և ավելացվել է արտաքին փոփոխականի սահմանման աջակցություն:
  • Սահմանված ցուցակների տարրերում թույլատրվում է մեկնաբանություններ ավելացնել:
  • Թույլատրվում է զրոյական արժեք նշել բայթի արագության սահմանաչափում:

Source: opennet.ru

Добавить комментарий