VĂ€ljaanne pakettifiltri nftables 0.9.9

Avaldatud pakettifiltri nftables 0.9.9, mis ĂŒhtlustab pakettide filtreerimise liideseid IPv4, IPv6, ARP ja vĂ”rgu sillade jaoks (suunatud iptables, ip6tables, arptables ja ebtables asendamisele). Samuti on avaldatud seotud teegi libnftnl 1.2.0, mis pakub madala taseme API-d nf_tables alamsĂŒsteemiga suhtlemiseks. vajalikud muudatused nftables 0.9.9 versiooni tööks on sisse ehitatud Linuxi tuuma 5.13-rc1.

Nftables'i paketti kuuluvad kasutajaruumi töötavad pakettfilteri komponendid, samas kui tuuma tasemel tagab töö nf_tables sĂŒsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Tuuma tasemel pakutakse vaid ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete vĂ€ljavĂ”tmiseks pakettidest, andmetega töötamiseks ja voogude haldamiseks.

Filtreerimise reeglid ja protokollile spetsiifilised töötlejad kompileeritakse kasutajaruumi baidikoodiks, seejÀrel laaditakse see baidikood tuuma Netlink liidese abil ja tÀidetakse tuumas spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lÀhenemine vÔimaldab oluliselt vÀhendada tuuma tasemel töötava filtreerimiskoodi suurust ja viia kÔik reeglite tÔlgendamise ja protokollidega töötamise funktsioonid kasutajaruumi.

Peamised uuendused:

  • Rakendatud on vĂ”imalus viia flowtable töötlemine vĂ”rguadapteri poole, mida saab aktiveerida ‘offload’ lippu kasutades. Flowtable on pakettide suunamise optimeerimise mehhanism, kus kĂ”iki reegli töötlemise ahela etappe rakendatakse tĂ€ielikult ainult esimese paketi puhul, samas kui kĂ”ik teised voos olevad paketid suunatakse otse. table ip global { flowtable f { hook ingress priority filter + 1 devices = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; policy accept; ip protocol { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; policy accept; oifname «wan» masquerade } }
  • Lisatud on lipu toetamine tabelite kĂŒlge kinnitamiseks, mis vĂ”imaldab tagada tabeli eksklusiivset kasutamist protsessi poolt. Protsessi lĂ”petamisel eemaldatakse sellele seotud tabel automaatselt. Teave protsessi kohta kuvatakse reeglite dump'is kommentaarina: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; policy accept; counter packets 1 bytes 309 } }
  • Lisatud on toetamine IEEE 802.1ad (VLAN stacking vĂ”i QinQ) spetsifikatsioonile, mis mÀÀratleb vahendid mitme VLAN-sildi asendamiseks ĂŒhes Etherneti raamid. NĂ€iteks, et kontrollida vĂ€lise Etherneti raami 8021ad tĂŒĂŒpi ja vlan id=342, saab kasutada konstruktsiooni 
 ether type 802.1ad vlan id 342 vĂ€lise Etherneti raami 8021ad/vlan id=1, sissepoole asetatud 802.1q/vlan id=2 ja IP-paketi edasise kapseldamise kontrollimiseks: 
 ether type 802.1ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
  • Lisatud toimetamisressursside haldamise tugi ĂŒhtse cgroupsi v2 hierarhia abil. Peamine erinevus cgroup v2-l vĂ”rreldes v1-ga on koondatud cgroupsi hierarhia rakendamine kĂ”igi ressursitĂŒĂŒpide jaoks, selle asemel, et eraldi hierarhiad CPU ressursside ja mĂ€lu tarbimise reguleerimiseks ning sisend-/vĂ€ljundresursside haldamiseks. NĂ€iteks, et kontrollida, kas sokli esiisa esimesel tasemel cgroupv2 vastab maskile «system.slice», saab kasutada konstruktsiooni: 
 sokkel cgroupv2 tase 1 «system.slice»
  • Lisatud vĂ”imalus kontrollida SCTP pakettide koostisosade olemasolu (vajalik funktsionaalsus on saadaval Linuxi tuumas 5.14). NĂ€iteks, et kontrollida, kas chunk-is, mille tĂŒĂŒp on 'data', on vĂ€li 'type': 
 sctp chunk data exists 
 sctp chunk data type 0
  • Reeglite laadimisoperatsioonide tĂ€itmist kiirendati umbes kaks korda flagi «-f» abil. Samuti kiiratati reeglite loendi vĂ€ljundit.
  • Pakutakse kompaktne vorm bitide seadistuse kontrollimiseks lippudes. NĂ€iteks, et kontrollida, kas snat ja dnat olekud ei ole seadistatud, saab mĂ€rkida: 
 ct status ! snat,dnat, ning et kontrollida, kas bit syn on seadistatud bitmaskis syn,ack: 
 tcp flags syn / syn,ack, et kontrollida, kas bitid fin ja rst ei ole seadistatud bitmaskis syn,ack,fin,rst: 
 tcp flags != fin,rst / syn,ack,fin,rst
  • Lubatud on kasutada vĂ”tmesĂ”na «verdict» typeof mÀÀratlemisel set/map: add map x m { typeof iifname . ip protocol . th dport : verdict; }

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster