Lëshimi i filtrit të paketave nftables 1.0.6

ËshtĂ« publikuar lĂ«shimi i filtrit tĂ« paketave nftables 1.0.6, qĂ« unifikon ndĂ«rfaqet e filtrimit tĂ« paketave pĂ«r IPv4, IPv6, ARP dhe urat rrjetĂ«s (nĂ« synimin pĂ«r tĂ« zĂ«vendĂ«suar iptables, ip6tables, arptables dhe ebtables). Paketa nftables pĂ«rfshin komponentĂ« tĂ« filtrit tĂ« paketave qĂ« punojnĂ« nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, ndĂ«rsa nĂ« nivelin e bĂ«rthamĂ«s funksionin e siguron nĂ«n-sistemi nf_tables, i pranishĂ«m nĂ« bĂ«rthamĂ«n Linux qĂ« prej lĂ«shimit 3.13. NĂ« nivelin e bĂ«rthamĂ«s ofrohet vetĂ«m njĂ« ndĂ«rfaqe e pĂ«rgjithshme, e pavarur nga protokolli konkret dhe qĂ« siguron funksione thelbĂ«sore pĂ«r nxjerrjen e tĂ« dhĂ«nave nga paketat, realizimin e operacioneve me tĂ« dhĂ«nat dhe menaxhimin e rrjedhave.

Rregullat e filtrimit dhe trajtuesit specifik për protokollet kompilohet në kodin e bytes në hapësirën e përdoruesit, pas së cilës ky kod bytes ngarkohet në bërthamë përmes ndërfaqes Netlink dhe ekzekutohet në bërthamë në një mjedis të veçantë. makinën virtuale, i ngjan Berkley Packet Filters (BPF). Qashtu, kjo qasje lejon të reduktohet ndjeshëm madhësia e kodit të filtrimit që funksionon në nivelin e bërthamës dhe të nxirren të gjitha funksionet e analizës së rregullave dhe logjikës së punës me protokollet në hapësirën e përdoruesit.

Ndryshimet kryesore:

  • NĂ« optimizatorin e rregullave, i cili thirret kur specifikohet opsioni "-o/--optimize", Ă«shtĂ« vendosur paketa automatike e rregullave pĂ«rmes bashkimit dhe transformimit nĂ« lista tĂ« map-ave dhe set-ave. PĂ«r shembull, rregullat # 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 } } pas ekzekutimit "nft -o -c -f ruleset.nft" do tĂ« shndĂ«rrohen si mĂ« poshtĂ«: 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 nĂ«: 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
  • Optimizatori gjithashtu mund tĂ« transformojĂ« nĂ« njĂ« formĂ« mĂ« kompakte rregullat, nĂ« tĂ« cilat janĂ« pĂ«rdorur tashmĂ« lista tĂ« thjeshta set-esh, pĂ«r shembuj rregullat: # 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 "NĂ« trafikun qĂ« ne origjinojmĂ«, ne besojmĂ«" 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 } } pas ekzekutimit "nft -o -c -f ruleset.nft" do tĂ« paketohen si mĂ« poshtĂ«: 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 nĂ«: 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
  • ËshtĂ« zgjidhur problemi me gjenerimin e kodit tĂ« bajtĂ«ve pĂ«r bashkimin e intervaleve, ku aplikohen tipe me renditje tĂ« ndryshme bajtĂ«sh, pĂ«r shembull IPv4 (renditje nĂ« rrjet tĂ« bajtĂ«ve) dhe meta mark (renditje sistemike e bajtĂ«ve). 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 } }
  • ËshtĂ« realizuar mapimi i protokolleve tĂ« rralla kur pĂ«rdoren shprehjet raw, pĂ«r shembull: meta l4proto 91 @th,400,16 0x0 accept
  • JanĂ« zgjidhur problemet me futjen e rregullave me intervuale: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
  • API JSON Ă«shtĂ« pĂ«rmirĂ«suar, duke pĂ«rfshirĂ« mbĂ«shtetje pĂ«r shprehjet nĂ« set- dhe map-lista.
  • NĂ« shtesa pĂ«r bibliotekĂ«n python nftables, Ă«shtĂ« lejuar ngarkimi i grupeve tĂ« rregullave pĂ«r pĂ«rpunim nĂ« modalitetin e verifikimit ("-c") dhe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r definimin e jashtĂ«m tĂ« variablave.
  • NĂ« elementĂ«t e listave set Ă«shtĂ« lejuar shtimi i komenteve.
  • NĂ« byte ratelimit Ă«shtĂ« lejuar specifikimi i vlerĂ«s zero.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster