Ursprung av den paketfilterutgÄvan nftables 1.0.5

UtgÄvan av paketfilteret nftables 1.0.5 har publicerats, vilket enhetligar grÀnssnitten för paketfiltrering för IPv4, IPv6, ARP och nÀtverksbryggor (syftar till att ersÀtta iptables, ip6tables, arptables och ebtables). Samtidigt har den relaterade biblioteket libnftnl 1.2.3 publicerats, som erbjuder ett lÄg-nivÄ API för interaktion med nf_tables-systemet.

Paketet nftables innehÄller komponenter för paketfilter som arbetar i anvÀndarrummet, medan nf_tables-systemet pÄ kÀrnnivÄ tillhandahÄller funktionen, vilket har varit en del av Linux-kÀrnan sedan version 3.13. PÄ kÀrnnivÄ tillhandahÄlls endast ett allmÀnt grÀnssnitt, oberoende av protokoll, som ger grundlÀggande funktioner för att extrahera data frÄn paket, utföra operationer med data och styra flödet.

SjÀlva filtreringsreglerna och protokollspecifika hanterare kompileras till bytekod i anvÀndarrummet, som sedan laddas in i kÀrnan via Netlink-grÀnssnittet och utförs i kÀrnan i en speciell en virtuell maskin, liknande BPF (Berkeley Packet Filters). Denna metod gör det möjligt att avsevÀrt minska storleken pÄ den filterkod som körs pÄ kÀrnnivÄ och flytta alla funktioner för tolkning av regler och logik som rör protokoll till anvÀndarrummet.

Huvudsakliga förÀndringar:

  • I regeloptimeraren, som anropas nĂ€r alternativet "-o/--optimize" anges, har problem med att kombinera regler, mapp- och set-listor Ă„tgĂ€rdats. # cat ruleset.nft table ip x { chain y { type nat hook postrouting priority srcnat; policy drop; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 } } # nft -o -c -f ruleset.nft Sammanfogning: ruleset.nft:4:3-52: ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ruleset.nft:5:3-52: ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 till: snat to ip saddr . tcp dport mapp { 1.1.1.1 . 8000 : 4.4.4.4 . 80, 2.2.2.2 . 8001 : 5.5.5.5 . 90 }
  • Vid sammanslagning av ethernet- och vlan-element sĂ€kerstĂ€lls definitionen av en dynamisk set-lista, som fylls baserat pĂ„ paketvĂ€garna. add table netdev x add chain netdev x y { type filter hook ingress device enp0s25 priority 0; } add set netdev x macset { typeof ether daddr . vlan id; flags dynamic,timeout; } add rule netdev x y update @macset { ether daddr . vlan id timeout 60s } add rule netdev x y ether saddr . vlan id { 0a:0b:0c:0d:0e:0f . 42, 0a:0b:0c:0d:0e:0f . 4095 } counter accept
  • Visningen av regler med map-listor som innehĂ„ller masker i grĂ€nssnittens namn har upprĂ€ttats. table inet filter { chain INPUT { iifname vmap { "eth0" : jump input_lan, "wg*" : jump input_vpn } } chain input_lan {} chain input_vpn {} }
  • Regressiva förĂ€ndringar som ledde till felaktig lexikalisk analys av korrekta regler har Ă„tgĂ€rdats.
  • Problem med lĂ„ngsam behandling och automatisk sammanslagning av stora listor med element som definierar vĂ€rdeintervall har lösts.
  • Kraschen vid tillĂ€gg av element till en ogiltig set-lista har Ă„tgĂ€rdats.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster