nftables pakešu filtra izlaišana 0.9.9

Ir izlaists pakešu filtrs nftables 0.9.9. Tas apvieno pakešu filtrēšanas saskarnes IPv4, IPv6, ARP un tīkla tiltiem (paredzēts kā iptables, ip6table, arptables un ebtables aizstāšana). Vienlaikus ir izlaista arī pievienotā libnftnl 1.2.0 bibliotēka, kas nodrošina zema līmeņa API mijiedarbībai ar nf_tables apakšsistēmu. Izmaiņas, kas nepieciešamas nftables 0.9.9, ir iekļautas kodolā. Linux 5.13-rc1.

Nftables pakotnē ir pakešu filtra komponenti, kas darbojas lietotāja telpā, savukārt kodola līmeņa darbu nodrošina nf_tables apakšsistēma, kas ir daļa no kodola. Linux Kopš 3.13 laidiena kodola līmenī ir nodrošināta tikai vispārēja, no protokola neatkarīga saskarne, kas nodrošina pamatfunkcionalitāti datu ieguvei no paketēm, datu operāciju veikšanai un plūsmas kontrolei.

Paši filtrēšanas noteikumi un protokolam specifiskie apstrādātāji tiek apkopoti baitkodā lietotāja telpā, pēc tam šis baitkods tiek ielādēts kodolā, izmantojot Netlink saskarni, un izpildīts kodolā īpašā veidā. virtuālā mašīna, kas atgādina BPF (Berkeley Packet Filters). Šī pieeja ļauj ievērojami samazināt kodola līmenī darbojošā filtrēšanas koda izmēru un pārvietot visu noteikumu parsēšanu un protokola loģiku lietotāja telpā.

Galvenie jauninājumi:

  • Ir ieviesta iespēja pārvietot plūsmas tabulas apstrādi uz tīkla adaptera pusi, iespējota, izmantojot karogu “izkraušana”. Flowtable ir mehānisms pakešu novirzīšanas ceļa optimizēšanai, kurā visu noteikumu apstrādes ķēžu pilnīga pāreja tiek piemērota tikai pirmajai paketei, bet visas pārējās plūsmas paketes tiek pārsūtītas tieši. table ip global { flowtable f { hook ingress priority filter + 1 devices = { lan3, lan0, wan } flags offload } chain forward { type filter hook forward priority filter; pieņemt politiku; ip protokols { tcp, udp } flow add @f } chain post { type nat hook postrouting priority filter; pieņemt politiku; oifname "wan" maskarāde } }
  • Pievienots atbalsts īpašnieka karoga pievienošanai tabulai, lai nodrošinātu ekskluzīvu tabulas izmantošanu procesā. Kad process beidzas, ar to saistītā tabula tiek automātiski dzēsta. Informācija par procesu tiek parādīta noteikumu dump komentāra veidā: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; pieņemt politiku; skaitītāju paketes 1 baiti 309 } }
  • Pievienots atbalsts IEEE 802.1ad specifikācijai (VLAN stacking vai QinQ), kas definē līdzekļus vairāku VLAN tagu aizstāšanai vienā Ethernet rāmī. Piemēram, lai pārbaudītu ārējā Ethernet rāmja tipu 8021ad un vlan id=342, varat izmantot konstrukcijas ... ether type 802.1ad vlan id 342, lai pārbaudītu Ethernet rāmja ārējo tipu 8021ad/vlan id=1, ligzdots 802.1. q/vlan id=2 un turpmāka IP pakešu iekapsulēšana: ... ētera tips 8021ad vlan id 1 vlan tips 8021q vlan id 2 vlan tips ip skaitītājs
  • Pievienots atbalsts resursu pārvaldībai, izmantojot vienotās hierarhijas cgroups v2. Galvenā atšķirība starp cgroups v2 un v1 ir kopējas cgroups hierarhijas izmantošana visu veidu resursiem, nevis atsevišķas hierarhijas CPU resursu piešķiršanai, atmiņas patēriņa regulēšanai un I/O. Piemēram, lai pārbaudītu, vai ligzdas priekštecis pirmajā līmenī cgroupv2 atbilst maskai “system.slice”, varat izmantot konstrukciju: ... ligzda cgroupv2 1. līmenis “system.slice”
  • Pievienota iespēja pārbaudīt SCTP pakešu komponentus (darbībai nepieciešamā funkcionalitāte parādīsies kodolā) Linux 5.14). Piemēram, lai pārbaudītu, vai paketē ir fragments ar tipu “data” un lauku “type”: … sctp fragmenta dati pastāv … sctp fragmenta datu tips 0
  • Noteikumu ielādes darbības izpilde ir paātrināta aptuveni divas reizes, izmantojot karogu “-f”. Ir paātrināta arī noteikumu saraksta izvade.
  • Ir nodrošināta kompakta forma, lai pārbaudītu, vai ir iestatīti karoga biti. Piemēram, lai pārbaudītu, vai snat un dnat statusa biti nav iestatīti, varat norādīt: ... ct status ! snat,dnat, lai pārbaudītu, vai sin bits ir iestatīts bitmaskā syn,ack: ... tcp karodziņi syn / syn,ack, lai pārbaudītu, vai fin un pirmie biti nav iestatīti bitmaskā syn,ack,fin,rst: ... tcp karogi! = fin,rst / syn,ack,fin,rst
  • Atļaut atslēgvārdu "spriedums" set/map typeof definīcijās: add map xm { typeof iifname . ip protokols th dport: spriedums ;}

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster