Pakettfilter nftables 1.0.6 väljaanne

Avalikustatud on nftables 1.0.6 pakettfiltri versioon, mis ühtlustab pakettfiltrite liidesed IPv4, IPv6, ARP ja võrgusildade jaoks (see on suunatud iptables, ip6tables, arptables ja ebtables asendamiseks). Ntfables'i pakett sisaldab kasutajaruumi töötavaid pakettfiltri komponente, samas kui tuumatasemel toetab tööd nf_tables alamsüsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Tuumatasemel pakutakse vaid üldist liidest, mis ei sõltu konkreetsetest protokollerist ning mis tagab andmete väljatoomise, andmetega töötamise ja liikluse juhtimise põhifunktsioonid.

Filtreerimisreeglid ja protokollispetsiifilised töötlejad kompileeritakse kasutusruumis byte-koodiks, seejärel laaditakse see byte-kood tuuma Netlinki liidese abil ja käivitatakse tuumas eraldi virtuaalmasinas, mis tahes BPF (Berkeley Packet Filters). Sarnane lähenemine võimaldab oluliselt vähendada filterkoodi suurust, mis töötab tuuma tasemel, ning viia kõik reeglite parsing'u funktsioonid ja protokollide töötlemise loogika kasutajaruumi.

Peamised muudatused:

  • Reegli optimeerijal, mis kutsutakse esile valiku "-o /—optimize" näitamisel, on automatiseritud reeglite pakendamine läbi nende ühendamise ja transformeerimise map- ja set-loenditeks. 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 } } after executing "nft -o -c -f ruleset.nft" will be transformed as follows: 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 võib samuti teisendada juba lihtsaid set-loendeid kasutavad reeglid kompaktsemaks vormiks, 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 "Me usaldame liiklust, mille me algatame" 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 "nft -o -c -f ruleset.nft" täitmist pakitakse 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, mis puudutab baitkoodi genereerimist intervallide ühendamiseks, kus kasutatakse erineva baitide järjekorra tüüpide vahe, näiteks IPv4 (võrgupoolne baitide järjekord) ja meta mark (süsteemne baitide 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 } }
  • Kohandatud haruldaste protokollide vastavus raw-väljendite kasutamisel, näiteks: meta l4proto 91 @th,400,16 0x0 accept
  • Lahendatud probleemid reeglite sisestamisega intervallide osas: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
  • Parendatud API JSON, mis nüüd toetab väljendeid set- ja map-loendites.
  • Nftables'i python-kirjeldus lubab reeglite komplektide laadimist töötlemiseks kontrollrežiimis («-c») ja toetab muutujate välist määratlemist.
  • Set-loendite elementides on lubatud kommentaaride lisamine.
  • Byte ratelimit'is on lubatud nullväärtuse määramine.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster