Utgivningen av paketfiltreringen nftables 1.0.6.

En ny version av paketfiltret nftables 1.0.6 har publicerats, som enhetligar filtreringsgrÀnssnitt för paket för IPv4, IPv6, ARP och nÀtverksbroar (avsedd att ersÀtta iptables, ip6tables, arptables och ebtables). Paketet nftables inkluderar komponenter av paketfiltret som körs i anvÀndarutrymmet, medan kÀrnnivÄns arbete tillhandahÄlls av nf_tables-subsystemet, som ingÄr i Linux-kÀrnan sedan version 3.13. PÄ kÀrnnivÄn tillhandahÄlls endast ett allmÀnt grÀnssnitt oberoende av specifika protokoll som erbjuder grundlÀggande funktioner för att extrahera data frÄn paket, utföra operationer med data och hantera flöden.

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 automatisk packning av regler genom deras sammanfogning och omvandling till map- och set-listor blivit etablerad. Till exempel, reglerna # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; policy drop; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0/24 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0-2.2.4.10 accept meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 accept } } efter att ha kört "nft -o -c -f ruleset.nft" kommer att omvandlas enligt följande: ruleset.nft:4:17-74: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept ruleset.nft:5:17-74: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 accept ruleset.nft:6:17-77: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0/24 accept ruleset.nft:7:17-83: meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0-2.2.4.10 accept ruleset.nft:8:17-74: meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 accept in: iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.4, eth1 . 1.1.1.2 . 2.2.3.0/24, eth1 . 1.1.1.2 . 2.2.4.0-2.2.4.10, eth2 . 1.1.1.3 . 2.2.2.5 } accept
  • Optimeraren kan Ă€ven konvertera regler som redan anvĂ€nder enkla set-listor till en mer kompakt form, till exempel regler: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; policy drop; iifname "lo" accept ct state established,related accept comment "I trafiken vi litar pĂ„ kommer vi" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport 32768-65535 accept iifname "enp0s31f6" ip saddr { 64.59.144.17, 64.59.150.133 } ip daddr 10.0.0.149 udp sport 53 udp dport 32768-65535 accept } } efter att ha kört "nft -o -c -f ruleset.nft" kommer de att packas pĂ„ följande sĂ€tt: ruleset.nft:6:22-149: iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport 32768-65535 accept ruleset.nft:7:22-143: iifname "enp0s31f6" ip saddr { 64.59.144.17, 64.59.150.133 } ip daddr 10.0.0.149 udp sport 53 udp dport 32768-65535 accept till: iifname . ip saddr . ip daddr . udp sport . udp dport { enp0s31f6 . 209.115.181.102 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 . 216.197.228.230 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 . 64.59.144.17 . 10.0.0.149 . 53 . 32768-65535, enp0s31f6 . 64.59.150.133 . 10.0.0.149 . 53 . 32768-65535 } accept
  • Problemet med bytekodsgenerering för sammanfogning av intervall dĂ€r olika ordningar av byte anvĂ€nds, exempelvis IPv4 (nĂ€tverksbyteordning) och meta mark (systembyteordning), har lösts. table ip x { map w { typeof ip saddr . meta mark : verdict flags interval counter elements = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : accept, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : accept, } } chain k { type filter hook input priority filter; policy drop; ip saddr . meta mark vmap @w } }
  • Det har etablerats matchningar för sĂ€llsynta protokoll vid anvĂ€ndning av raw-uttryck, till exempel: meta l4proto 91 @th,400,16 0x0 accept
  • Problem med att inkludera regler med intervall har lösts: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
  • API:et för JSON har förbĂ€ttrats, vilket nu stöder uttryck i set- och map-listor.
  • I tillĂ€gg till python-biblioteket nftables har laddning av regeluppsĂ€ttningar för behandling i testlĂ€ge ("-c") tillĂ„tits, och extern definition av variabler har introducerats.
  • Det har blivit möjligt att lĂ€gga till kommentarer i elementen för set-listor.
  • I byte ratelimit tillĂ„ts angivande av nollvĂ€rde.

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