lëshimi i filtrit të paketave , që po zhvillohet si zëvendësim për iptables, ip6table, arptables dhe ebtables falë unifikimit të ndërfaqeve të filtrimit të paketave për IPv4, IPv6, ARP dhe urat e rrjetit. Paketa nftables përfshin komponentë të filtrit të paketave që funksionojnë në hapësirën e përdoruesit, ndërsa në nivelin e kernelit funksionimin e siguron nënsistemi nf_tables, i cili është pjesë e kernelit Linux që nga versioni 3.13. Ndryshimet e nevojshme për funksionimin e versionit nftables 0.9.3 janë përfshirë në degën e ardhshme të kernelit Linux 5.5.
Në nivelin e kernelit ofrohet vetëm një ndërfaqe e përgjithshme, e pavarur nga protokolli specifik dhe që siguron funksionet bazë për nxjerrjen e të dhënave nga paketat, kryerjen e operacioneve mbi të dhënat dhe menaxhimin e rrjedhës. Vetë logjika e filtrimit dhe përpunuesit specifikë për protokollet kompilohen në bytecode në hapësirën e përdoruesit, më pas ky bytecode ngarkohet në kernel me anë të ndërfaqes Netlink dhe ekzekutohet në një makinë virtuale të posaçme, të ngjashme me BPF (Berkeley Packet Filters). Kjo qasje mundëson ulje të ndjeshme të madhësisë së kodit të filtrimit që ekzekutohet në nivelin e kernelit dhe zhvendos të gjitha funksionet e analizimit të rregullave dhe logjikën e punës me protokollet në hapësirën e përdoruesit.
Novitetet kryesore:
- MbĂ«shtetje pĂ«r pĂ«rputhjen e paketave sipas kohĂ«s. Mund tĂ« pĂ«rcaktohen si intervale kohe dhe datash, nĂ« tĂ« cilat do tĂ« zbatohet rregulli, ashtu edhe aktivizimi nĂ« ditĂ« tĂ« caktuara tĂ« javĂ«s. ĂshtĂ« shtuar gjithashtu opsioni i ri â-Tâ pĂ«r shfaqjen e kohĂ«s epokale nĂ« sekonda.
meta time \»2019-12-24 16:00\» â \»2020-01-02 7:00\»
meta hour \»17:00\» â \»19:00\»
meta day \»Fri\» - Mbështetje për rikthimin dhe ruajtjen e etiketave SELinux (secmark).
ct secmark set meta secmark
meta secmark set ct secmark - Mbështetje për listat map të synproxy, që lejojnë përcaktimin e më shumë se një rregulli për backend.
tabela ip foo {
synproxy https-synproxy {
mss 1460
wscale 7
timestamp sack-perm
}synproxy other-synproxy {
mss 1460
wscale 5
}chain pre {
type filter hook prerouting priority raw; policy accept;
tcp dport 8888 tcp flags syn notrack
}chain bar {
type filter hook forward priority filter; policy accept;
ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : «https-synproxy», 192.168.2.0/24 : «other-synproxy» }
}
} - Mundësi për fshirjen dinamike të elementeve të grupeve set nga rregullat e përpunimit të paketave.
nft add rule ⊠delete @set5 { ip6 saddr . ip6 daddr }
- Mbështetje për përputhjen e VLAN sipas identifikuesit dhe protokollit, të përcaktuara në metadatat e ndërfaqes së urës së rrjetit;
meta ibrpvid 100
meta ibrvproto vlan - Opsioni «-t» («âterse») pĂ«r tĂ« pĂ«rjashtuar elementet e grupeve set gjatĂ« shfaqjes sĂ« rregullave. Kur ekzekutohet «nft -t list ruleset», do tĂ« shfaqet:
tabela ip x {
grupi y {
type ipv4_addr
}
}Ndërsa me «nft list ruleset»
tabela ip x {
grupi y {
type ipv4_addr
elements = { 192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - Mundësia për të specifikuar më shumë se një pajisje në zinxhirët netdev (funksionon vetëm me kernel 5.5) për të bashkuar rregullat tipike të filtrimit.
add table netdev x
add chain netdev x y { \
type filter hook ingress devices = { eth0, eth1 } priority 0;
} - Mundësia për të shtuar përshkrime të llojeve të të dhënave.
# nft describe ipv4_addr
datatype ipv4_addr (IPv4 address) (basetype integer), 32 bits - Mundësia për të ndërtuar ndërfaqen CLI me bibliotekën linenoise në vend të libreadline.
./configure âwith-cli=linenoise
Burimi: opennet.ru
