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

Հրապարակվել է փաթեթային ֆիլտրի nftables 1.0.2 թողարկումը, որը միավորում է փաթեթների զտման միջերեսները IPv4, IPv6, ARP և ցանցային կամուրջների համար (նպատակված է փոխարինել iptables, ip6table, arptables և ebtables): Nftables 1.0.2-ի թողարկման համար անհրաժեշտ փոփոխությունները ներառված են Linux միջուկի 5.17-rc-ում:

Nftables փաթեթը ներառում է փաթեթի զտիչ բաղադրիչներ, որոնք աշխատում են օգտագործողի տարածքում, մինչդեռ միջուկի մակարդակի աշխատանքը տրամադրվում է nf_tables ենթահամակարգի կողմից, որը Linux միջուկի մաս է կազմում 3.13-ի թողարկումից ի վեր: Միջուկի մակարդակը ապահովում է միայն ընդհանուր պրոտոկոլից անկախ ինտերֆեյս, որն ապահովում է հիմնական գործառույթները փաթեթներից տվյալներ հանելու, տվյալների գործողություններ կատարելու և հոսքի վերահսկման համար:

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

Հիմնական նորամուծությունները.

  • Ավելացվել է կանոնների օպտիմալացման ռեժիմ, որը միացված է նոր «-o» («--optimize») տարբերակի միջոցով, որը կարող է զուգակցվել «--check» տարբերակի հետ՝ ստուգելու և օպտիմալացնելու կանոնների ֆայլի փոփոխությունները՝ առանց այն փաստացի բեռնելու: . Օպտիմալացումը թույլ է տալիս համատեղել նմանատիպ կանոնները, օրինակ՝ կանոնները. .1 ընդունել ip saddr 1.1.1.1 ip daddr 2.2.2.3 կաթիլ

    կմիավորվի մետա iifname-ի մեջ: ip saddr. ip daddr {eth1. 1.1.1.1. 2.2.2.3, էթ1. 1.1.1.2. 2.2.2.5 } ընդունել ip saddr . ip daddr vmap {1.1.1.1. 2.2.2.2. ընդունել, 2.2.2.2. 3.3.3.3: թողնել }

    Օգտագործման օրինակ՝ # nft -c -o -f ruleset.test Միաձուլում՝ ruleset.nft:16:3-37: ip daddr 192.168.0.1 հաշվիչ ընդունում ruleset.nft:17:3-37: ip daddr 192.168.0.2 հաշվիչ ընդունում ruleset.nft:18:3-37: ip daddr 192.168.0.3 հաշվիչ ընդունել՝ ip daddr {192.168.0.1, 192.168.0.2, 192.168.0.3 } հաշվիչ փաթեթներ 0 բայթ 0 ընդունել

  • Կոմպլեկտների ցուցակներն իրականացնում են ip և tcp տարբերակները, ինչպես նաև sctp հատվածները նշելու հնարավորությունը. set s5 {typof 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 ընդունել } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Ավելացվեց աջակցություն TCP ընտրանքների համար fastopen, md5sig և mptcp:
  • Ավելացվել է mp-tcp ենթատեսակի օգտագործման աջակցություն քարտեզագրումներում. tcp տարբերակ mptcp ենթատեսակ 1
  • Բարելավված միջուկի կողմից զտման կոդը:
  • Flowtable-ն այժմ լիարժեք աջակցություն ունի JSON ձևաչափին:
  • Ապահովված է «մերժել» գործողությունը Ethernet-ի շրջանակների համապատասխանող գործողություններում օգտագործելու հնարավորությունը: եթեր saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 մերժել

Source: opennet.ru

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