Pakettide tulemüür nftables 1.0.6 väljalaskmine.

Välja on avaldatud paketifiltri nftables 1.0.6, mis ühtlustab paketifiltreerimise liideseid IPv4, IPv6, ARP ja võrgu sillade jaoks (mille eesmärk on asendada iptables, ip6tables, arptables ja ebtables). Pakett nftables sisaldab kasutajasüsteemis töötavaid paketifiltri komponente, samas kui tuumatasemel tagab selle toimimise nf_tables süsteem, mis on osa Linuxi kernelist alates versioonist 3.13. Tuumatasemel pakutakse vaid üldist liidest, mis ei sõltu konkreetsest protokollist ja mis võimaldab andmete väljavõtmise, andmetega toimimise ja voolu juhtimise põhifunktsioone.

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 muudatused:

  • Reeglite optimeerijas, mida kutsutakse, kui on määratud valik "-o/—optimize", on automatiseeritud reeglite pakkimine nende ühendamise ja map- ja set-loenditeks muutmise kaudu. Näiteks reeglid # 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 } } pärast "nft -o -c -f ruleset.nft" käivitamist muudetakse järgmiselt: 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 into: 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
  • Optimeerija suudab ka muuta reeglid kompaktsemaks vormiks, kus juba kasutatakse lihtsaid set-nimekirju, näiteks reeglid: # 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 "Usaldame liiklust, mille me genereerime" 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 } } pärast käsku „nft -o -c -f ruleset.nft” pakatakse need järgmiselt: 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 sisse: 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
  • Lahendatud probleem bajtkoodi genereerimisega vahemike ühendamise jaoks, kus kasutatakse erineva baitide järjekorraga tüüpe, näiteks IPv4 (verkkjärjekorra bait) ja meta mark (süsteemne järjekord). 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 } }
  • Haruldaste protokollide seostamine raw-väljendite kasutamisel on toimingud, näiteks: meta l4proto 91 @th,400,16 0x0 accept
  • Probleemide lahendamine reeglite sisestamisega vahemikes: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
  • Parandatud JSON API, milles lisandunud toimetuste toimetamine set- ja map-nimekirjades.
  • Python nftables teekide laiendustes lubatud reeglikogude laadimine kontrollrežiimis ("-c") ja lisatud support välistatud muutujate määramiseks.
  • Set-nimekirjade elementides on lubatud kommentaaride lisamine.
  • Byte ratelimitis on lubatud nullväärtuse määramine.

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