lëshimi i filtrit të paketave , që zhvillohet si një zëvendësim për iptables, ip6tables, arptables dhe ebtables përmes unifikimit të interfeseve të filtrimit të paketave për IPv4, IPv6, ARP dhe urat rrjetë. 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 punon nënsistemi nf_tables, i cili bëhet pjesë e bërthamës Linux duke filluar nga lëshimi 3.13. Ndryshimet e nevojshme për funksionimin e lëshimit nftables 0.9.2 janë përfshirë në bërthamën Linux 5.3.
Në nivelin e bërthamës, ofrohet vetëm një ndërfaqe e përgjithshme, që nuk varet nga një protokoll i caktuar dhe ofron funksione bazike për nxjerrjen e të dhënave nga paketat, kryerjen e operacioneve me të dhëna dhe menaxhimin e rrjedhës. Logjika e filtrimit dhe trajtuesit specifikë për protokollet kompilohet në kod byte në hapësirën e përdoruesit, pas së cilës ky kod byte ngarkohet në bërthamë përmes ndërfaqes Netlink dhe ekzekutohet në një makinë virtuale speciale, e ngjashme me BPF (Berkeley Packet Filters). Ky 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.
TĂ« rejat kryesore:
- Mundësia për të verifikuar numrin e portit nga titulli i paketës në nivelin e transportit, pa marrë parasysh llojin e protokollit të nivelit 4:
shto rregull x y ip protokoll { tcp, udp } th dport 53
- Mbështetje për rinovimin e kohës së jetës së një grupi elementesh:
shto element ip x y { 1.1.1.1 kohë skadimi 30s skadon 15s }
- Mundësia për të verifikuar opsionet e veçanta (lsrr, rr, ssrr dhe ra) nga paketat IPv4:
shto rregull x y ip opsion rr ekziston hiq
Për opsionet e ruterimit, është e mundur të kontrolloni fushat tip, ptr, gjatësi dhe addr:
shto rregull x y ip opsion rr tipi 1 hidhi
- Tani është e lejueshme të përcaktohen prefikset rrjet dhe diapazonet e adresave në shprehje:
iifname ens3 snat te 10.0.0.0/28
iifname ens3 snat te 10.0.0.1-10.0.0.15 - Mbështetje për përdorimin e variablave në definicionet e zinxhirëve:
përcakto default_policy = prano
shto zinxhir ip foo bar { tipi filtri lidhni hyrjen përparësi filtri; politika $default_policy } - Tani është e mundur të përcaktohet përparësia e zinxhirit si në formë numerike ashtu edhe në formë simbolike:
përcakto prio = filtri
përcakto prionum = 10
pĂ«rcakto prioffset = «filtri â 150»shto tavolinĂ« ip foo
shto zinxhir ip foo bar { tipi filtri lidhni hyrjen përparësi $prio; }
shto zinxhir ip foo ber { tipi filtri lidhni hyrjen përparësi $prionum; }
shto zinxhir ip foo bor { tipi filtri lidhni hyrjen përparësi $prioffset; } - Implementuar mbështetje për modul synproxy. Për shembull, për të vendosur portin TCP 8888 nën mbrojtjen e synproxy, mund të përdorni grupin e rregullave:
tavolinë ip x {
chain y {
tipi filtri lidhni paralajmërimin përparësi të papërpunuar; politika prano;
tcp dport 8888 tcp flags syn notrack
}zinxhir z {
tipi filtri lidhni përpara përparësi filtri; politika prano;
tcp dport 8888 ct gjendje të pavlefshme, të papërcjellur synproxy mss 1460 \
wscale 7 timestamp sak-perm ct gjendje të pavlefshme hidhi
}
} - Për të përcaktuar në tabelën conntrack lidhjet e lidhura me lidhjen aktuale të lidhjeve të tjera të pritshme, të cilat përdoren në protokollet dhe skenaret që kërkojnë vendosjen e disa lidhjeve, tani është e mundur të përcaktohen politikat përmes grupeve standarde të rregullave. Për shembull, për të përcaktuar lidhjet e pritshme pas lidhjeve në portin TCP 8888 për lidhjet e mëvonshme në portin 5432, mund të tregoni rregullat e mëposhtme:
table x {
ct expectation myexpect {
protocol tcp
dport 5432
timeout 1h
size 12
l3proto ip
}chain input {
type filter hook input priority 0;
ct state new tcp dport 8888 ct expectation set myexpect
ct state established,related counter accept
}
}
Burimi: opennet.ru
