nftables paketni filter 0.9.9 izdanje

Objavljen je paketni filter nftables 0.9.9. On objedinjuje interfejse za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove (namijenjene kao zamjena za iptables, ip6table, arptables i ebtables). Istovremeno je objavljena i prateća biblioteka libnftnl 1.2.0, koja pruža API niskog nivoa za interakciju sa podsistemom nf_tables. Promjene potrebne za nftables 0.9.9 uključene su u kernel. Linux 5.13-rc1.

Paket nftables sadrži komponente filtera paketa koje rade u korisničkom prostoru, dok rad na nivou kernela obezbjeđuje podsistem nf_tables, koji je dio kernela. Linux Od verzije 3.13, na nivou kernela dostupan je samo generički protokolno-nezavisni interfejs, koji pruža osnovnu funkcionalnost za izdvajanje podataka iz paketa, obavljanje operacija s podacima i kontrolu protoka.

Sama pravila filtriranja i specifični protokoli za obradu se kompajliraju u bajtkod u korisničkom prostoru, nakon čega se ovaj bajtkod učitava u kernel pomoću Netlink interfejsa i izvršava u kernelu u posebnom... virtuelna mašina, što podsjeća na BPF (Berkeley Packet Filters). Ovaj pristup omogućava značajno smanjenje veličine koda za filtriranje koji se izvršava na nivou kernela i premješta svu analizu pravila i logiku protokola u korisnički prostor.

Glavne inovacije:

  • Implementirana je mogućnost premještanja obrade tablice protoka na stranu mrežnog adaptera, omogućena korištenjem oznake 'offload'. Flowtable je mehanizam za optimizaciju putanje preusmjeravanja paketa, u kojem se kompletan prolaz svih lanaca obrade pravila primjenjuje samo na prvi paket, a svi ostali paketi u toku se prosljeđuju direktno. tablica ip global { flowtable f { filter prioriteta ulaska u zakačicu + 1 uređaji = { lan3, lan0, wan } zastavice istovariti } lanac naprijed { tip filter zakačiti prioritetni filter naprijed; prihvatiti politiku; ip protokol { tcp, udp } tok dodaj @f } lanac post { type nat hook prioritetni filter za postrouting; prihvatiti politiku; oifname "wan" maskenbal } }
  • Dodata podrška za pričvršćivanje vlasničke zastavice na tablicu kako bi se osiguralo ekskluzivno korištenje tablice od strane procesa. Kada se proces završi, tabela povezana s njim se automatski briše. Informacije o procesu se prikazuju u dumpu pravila u obliku komentara: tabela ip x { # ime programa nft zastavice vlasnički lanac y { tip filter zakačivanje filter prioriteta unosa; prihvatiti politiku; brojač paketa 1 bajt 309 } }
  • Dodata podrška za IEEE 802.1ad specifikaciju (VLAN stacking ili QinQ), koja definiše sredstvo za zamjenu više VLAN oznaka u jedan Ethernet okvir. Na primjer, da biste provjerili tip vanjskog Ethernet okvira 8021ad i vlan id=342, možete koristiti konstrukciju ... ether type 802.1ad vlan id 342 da provjerite vanjski tip Ethernet okvira 8021ad/vlan id=1, ugniježđeni 802.1 q/vlan id=2 i daljnja enkapsulacija IP paketa: ... eter tip 8021ad vlan id 1 vlan tip 8021q vlan id 2 vlan tip ip brojač
  • Dodata podrška za upravljanje resursima pomoću objedinjene hijerarhije cgroups v2. Ključna razlika između cgroups v2 i v1 je upotreba zajedničke hijerarhije cgroups za sve vrste resursa, umjesto zasebnih hijerarhija za dodjelu CPU resursa, za regulaciju potrošnje memorije i za I/O. Na primjer, da biste provjerili da li se prednik utičnice na prvom nivou cgroupv2 podudara sa maskom “system.slice”, možete koristiti konstrukciju: ... socket cgroupv2 nivo 1 “system.slice”
  • Добавлена возможность проверки составных частей пакетов SCTP (необходимая для работы функциональность появится в ядре Linux 5.14). Например, для проверки наличия в пакете chunk-а с типом ‘data’ и полем ‘type’: … sctp chunk data exists … sctp chunk data type 0
  • Izvršenje operacije učitavanja pravila je ubrzano za otprilike dva puta pomoću oznake “-f”. Izlaz liste pravila je također ubrzan.
  • Obezbijeđen je kompaktni obrazac za provjeru da li su bitovi zastavice postavljeni. Na primjer, da provjerite da snat i dnat status bitovi nisu postavljeni, možete specificirati: ... ct status ! snat,dnat za provjeru da li je sin bit postavljen u bitmasku syn,ack: ... tcp zastavice syn / syn,ack za provjeru da fin i rst bit nisu postavljeni u bitmask syn,ack,fin,rst: ... tcp zastavice = fin,rst / syn,ack,fin,rst!
  • Dozvolite ključnu riječ "verdict" u definicijama tipa set/map: dodajte mapu xm { typeof iifname . ip protokol th dport : presuda ;}

izvor: opennet.ru

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster