Lëshimi i filtrit të paketave nftables 1.1.0

Lëshimi i versionit të filtrit të paketave nftables 1.1.0, i cili unifikon ndërfaqet për filtrimin e paketave për IPv4, IPv6, ARP dhe urat rrjetës (synon të zëvendësojë iptables, ip6tables, arptables dhe ebtables). Ndryshimi i konsiderueshëm i numrit të versionit nuk lidhet me ndryshime të rëndësishme, por është thjesht një vazhdimësi e numërimit në sistemin decimal (versioni e mëparshëm ishte 1.0.9). Njëkohësisht është lëshuar versioni i bibliotekës përkatëse libnftnl 1.2.7, që ofron një API të nivelit të ulët për ndërveprimin me nën-sistemin nf_tables.

Paketat nftables përfshijnë komponentët e filtrit të paketave që punojnë në hapësirën e përdoruesit, ndërsa në nivelin e bërthamor, funksionin e realizon nën-sistemi nf_tables, i pranishëm në bërthamën Linux që nga lëshimi 3.13. Në nivelin e bërthamor ofrohet vetëm një ndërfaqe e përgjithshme, e pavarur nga protokolli konkret dhe që ofron funksione bazike për nxjerrjen e të dhënave nga paketat, realizimin e operacioneve me të dhëna dhe menaxhimin e fluksit.

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Ă« shprehjet map Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r variablat: define dst_map = { ::1234 : 5678 } tabela ip6 nat { mapa dst_map { lloji ip6 daddr : tcp dport; elementet = $dst_map } zinxhir prerouting { ip6 nexthdr tcp redirect to ip6 daddr map @dst_map } }
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r VLAN: ip saddr 10.1.1.1 icmp lloji echo-request vlan id set 321 # ngarkesa ether lloji 8021ad vlan id 10 lloji 8021q vlan id 100 lloji ip prano
  • PĂ«r shprehjet "log" Ă«shtĂ« angazhuar njĂ« preprocessori i ri i vargjeve me mbĂ«shtetje pĂ«r variablat: define message="test" log prefix "my $message"
  • NĂ« llogaritjen e vlerĂ«s sĂ« shprehjes "meta hour" Ă«shtĂ« realizuar trajtimi i offset-it negativ nĂ« zonĂ«n e kohĂ«s, tĂ« caktuar pĂ«rmes variablit mjedisor TZ: TZ=UTC-4 nft add rule x y meta hour "22:00"
  • ËshtĂ« siguruar konvertimi i rendit tĂ« bajtĂ«ve gjatĂ« pĂ«rdorimit tĂ« shprehjeve ct dhe meta, si dhe nĂ« operacionet e bashkimit dhe pĂ«rcaktimin e intervaleve nĂ« set-grupet. mapa mapv6 { lloji ip6 dscp : meta mark; } meta mark set ip6 dscp map @map1 do tĂ« merret kod i bajtĂ«ve: [ ngarkesa e ngarkesĂ«s 2b @ krye rrjeti + 0 => reg 1 ] [ bitwise reg 1 = ( reg 1 & 0x0000c00f ) ^ 0x00000000 ] [ byteorder reg 1 = ntoh(reg 1, 2, 2) ] [ bitwise reg 1 = ( reg 1 > 0x00000006 ) ] [ lookup reg 1 set mapv6 dreg 1 ] [ meta set mark me reg 1 ]
  • ËshtĂ« rinisur mbĂ«shtetja pĂ«r komandĂ«n "replace rule". replace rule ip t1 c1 handle 3 ‘jhash ip protocol . ip saddr mod 170 vmap { 0-94 : goto wan1, 95-169 : goto wan2, 170-269 }’
  • ËshtĂ« rinisur mundĂ«sia pĂ«r tĂ« shtuar pajisje rrjeti nĂ« ekzistuese flowtable: create flowtable inet filter f1 { hook ingress priority 0; counter } add flowtable inet filter f1 { devices = { dummy1 } ; }
  • JanĂ« zgjidhur problemet gjatĂ« pĂ«rdorimit tĂ« komandĂ«s "create set": define ip-block-4 = { 1.1.1.1 } create set netdev filter ip-block-4-test { lloji ipv4_addr flamuj interval auto-merge elementet = $ip-block-4 }
  • JanĂ« zgjidhur problemet gjatĂ« pĂ«rdorimit tĂ« paraqitjes numerike tĂ« opsioneve tcp: tcp option 254
  • JanĂ« zgjidhur problemet gjatĂ« pĂ«rdorimit tĂ« shprehjeve meta dhe ct me set-grupet: meta mark set vlan id map { 1 : 0x00000001, 4095 : 0x00004095 }
  • NĂ« shprehjet payload dhe concat, Ă«shtĂ« e ndaluar tĂ« specifikohen tĂ« dhĂ«na mĂ« tĂ« mĂ«dha se 512 byte.
  • Kur ekzekutohet komanda «nft describe», Ă«shtĂ« implementuar mbajtja e vlerave nga skedarĂ«t group, rt_mark dhe rt_realms, tĂ« vendosur nĂ« katalogĂ«t /etc/iproute2/ dhe /use/share/iproute2/. # nft describe meta rtclassid meta shprehja, tipi i tĂ« dhĂ«nave realm (sfera e rrugĂ«s) (tipi bazĂ« integer), 32 bits konstantet simbolike tĂ« paracaktuara nga /etc/iproute2/rt_realms (nĂ« decimal): cosmos 0 Refuzoni deklaratĂ«n me gamĂ« meta mark set 0-100
  • Operacioni i listimit tĂ« tabelave Ă«shtĂ« pĂ«rshpejtuar. ËshtĂ« implementuar mbĂ«shtetje pĂ«r opsionin -t/—terse pĂ«r tĂ« pĂ«rshpejtuar komandat «list table» dhe «list set».
  • ËshtĂ« siguruar transformimi i shprehjeve meter nĂ« sete dinamike: add rule t c tcp dport 80 meter m size 128 { ip saddr timeout 2s limit rate 10/second } do tĂ« transformohet nĂ« set m { tipi ipv4_addr madhĂ«sia 128 flamuj dinamik, timeout } tcp dport 80 pĂ«rditĂ«so @m { ip saddr timeout 2s limit rate 10/second burst 5 paketa }
  • NĂ« paraqitjen nĂ« formatin JSON Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r objektet synproxy dhe setet e harta me tĂ« dhĂ«na tĂ« bashkuara.
  • NĂ« setet e caktuara nĂ« formatin JSON, Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r flamurin auto-merge.
  • Kur pĂ«rdoret paraqitja nĂ« formatin JSON, lejohet specifikimi i disa pajisjeve nĂ« bllokun «chain».
  • Kur pĂ«rdoren opsionet -f/—filename, Ă«shtĂ« siguruar procesimi i rrugĂ«ve nĂ« raport me katalogun e skedarit aktual.
  • Kur pĂ«rdoren opsionet -I/—include, enumerimi i rrugĂ«ve tani bĂ«het nga fundi i listĂ«s.
  • ËshtĂ« ndihmuar funksionimi i opsioneve -o/—optimize me shprehjet qĂ« pĂ«rmbajnĂ« numĂ«rues vlerash: # nft -c -o -f ruleset.nft Bashkimi: ruleset.nft:5:17-45: ct state invalid counter drop ruleset.nft :6:17-59: ct state established,related counter accept nĂ«: ct state vmap { invalid counter : drop, established counter : accept, related counter : accept } Bashkimi: ruleset.nft:7:17-43: tcp dport 80 counter accept ruleset.nft:8:17-44: tcp dport 123 counter accept nĂ«: tcp dport { 80, 123 } counter accept Bashkimi: ruleset.nft:9:17-64: ip saddr 1.1.1.1 ip daddr 2.2.2.2 counter accept ruleset.nft:10:17-62: ip saddr 1.1.1.2 ip daddr 3.3.3.3 counter drop nĂ«: ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 counter : accept, 1.1.1.2 . 3.3.3.3 counter : drop }
  • ËshtĂ« rikthyer kompatibiliteti me dump-et e elementeve set, tĂ« krijuara nĂ« nftables para versionit 0.9.8.

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