Publikimi i filtrit të paketave nftables 1.0.6

ËshtĂ« publikuar njĂ« version i filtrit tĂ« paketave nftables 1.0.6, i cili unifikon ndĂ«rfaqet e filtrimit tĂ« paketave pĂ«r IPv4, IPv6, ARP dhe urat rrjetĂ«sore (i destinuar pĂ«r tĂ« zĂ«vendĂ«suar iptables, ip6tables, arptables dhe ebtables). Paketa nftables pĂ«rfshin komponentĂ«t e filtrit tĂ« paketave qĂ« funksionojnĂ« nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit, ndĂ«rsa nĂ« nivelin e bĂ«rthamĂ«s, menaxhimin e siguron nĂ«n-sistemi nf_tables, i cili Ă«shtĂ« pjesĂ« e bĂ«rthamĂ«s Linux qĂ« nga versioni 3.13. NĂ« nivelin e bĂ«rthamĂ«s ofrohet vetĂ«m njĂ« ndĂ«rfaqe e pĂ«rgjithshme, e cila nuk varet nga protocol specifik dhe ofron funksione bazĂ« pĂ«r nxjerrjen e tĂ« dhĂ«nave nga paketat, kryerjen e operacioneve me tĂ« dhĂ«na dhe menaxhimin e fluksit.

Rregullat për filtrimin 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ë mënyrë të veçantë, që i ngjan BPF (Filtrat e Paketa Berkeley). Ky qasje lejon të reduktohet ndjeshëm madhësia e kodit të filtrimit që operon në nivelin e bërthamës dhe të transferohet të gjitha funksionet e përpunimit të rregullave dhe logjikës së punës me protokollet në hapësirën e përdoruesit. makinën virtuale, që ngjan me BPF (Berkeley Packet Filters). Ky qasje lejon reduktimin e ndjeshëm të madhësisë së kodit të filtrimit që operon në nivelin e bërthamës dhe nxjerrjen e të gjitha funksioneve për të analizuar rregullat dhe logjikën e punës me protokollet në hapësirën e përdoruesit.

Ndryshimet kryesore:

  • NĂ« optimizuesin e rregullave, i cili aktivizohet kur tregoni opsionin "-o/--optimize", Ă«shtĂ« vendosur paketimi automatik i rregullave pĂ«rmes bashkimit dhe transformimit tĂ« tyre nĂ« lista map dhe set. 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 tĂ« "nft -o -c -f ruleset.nft" do tĂ« transformohen 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
  • Optimizuesi gjithashtu mund tĂ« konvertojĂ« nĂ« njĂ« formĂ« mĂ« tĂ« kompaktĂ« rregullat, nĂ« tĂ« cilat tashmĂ« pĂ«rdoren lista tĂ« thjeshta set-esh, pĂ«r shembull rregullat: # cat ruleset.nft tabela ip filter { zinxhir input { lloji filter hook input prioritet filter; politika 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 tĂ« «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
  • Problemi me gjenerimin e kodit tĂ« bajtĂ«ve pĂ«r bashkimin e intervaleve, nĂ« tĂ« cilat aplikohen tipe me renditje tĂ« ndryshme bajtĂ«sh, pĂ«r shembull IPv4 (renditja e bajtĂ«ve nĂ« rrjet) dhe meta mark (renditja e bajtĂ«ve sistemike), Ă«shtĂ« zgjidhur. tabela ip x { harta w { lloji ip saddr . meta mark : verdikti flamuj interval kontatori elemente = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : accept, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : accept, } } zinxhiri k { lloji filter hook input prioritet filter; politika drop; ip saddr . meta mark vmap @w } }
  • Korrigjimi i pĂ«rputhjes sĂ« protokolleve tĂ« rralla kur pĂ«rdoren shprehje raw, pĂ«r shembull: meta l4proto 91 @th,400,16 0x0 accept
  • Problemet me pĂ«rfshirjen e rregullave me intervale janĂ« zgjidhur: insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
  • API JSON Ă«shtĂ« pĂ«rmirĂ«suar, duke introduktuar mbĂ«shtetje pĂ«r shprehjet nĂ« set- dhe map-lista.
  • NĂ« shtesat e bibliotekĂ«s python pĂ«r nftables Ă«shtĂ« lejuar ngarkimi i grupeve tĂ« rregullave pĂ«r procesim nĂ« modin e verifikimit («-c») dhe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rcaktimin e jashtĂ«m tĂ« variablave.
  • NĂ« elementet e set-listave Ă«shtĂ« lejuar shtimi i komenteve.
  • NĂ« byte ratelimit Ă«shtĂ« lejuar specifikimi i njĂ« vlerĂ« zero.

Burimi: opennet.ru

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