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
