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