paketifiltri vĂ€ljalaskmine , mis areneb vahetus iptables, ip6tables, arptables ja ebtables kaudu, ĂŒhtlustades IPv4, IPv6, ARP ja vĂ”rgu sildade pakettide filtreerimise liideseid. nftables pakett sisaldab kasutusruumi paketifiltri komponente, samas kui tuuma tasemel tĂ€idab tööd nf_tables alamsĂŒsteem, mis on Linuxi tuumas alates versioonist 3.13. NĂ”utud muudatused nftables 0.9.3 tööks on kaasatud tulevasse Linuxi tuuma harusse 5.5.
Tuuma tasandil pakutakse vaid ĂŒldist liidest, mis ei ole sĂ”ltuv konkreetsetest protokollidest ning mis pakub baasfunktsioone andmete paketist vĂ€ljavĂ”tmiseks, andmetega töötamiseks ja voogude haldamiseks. Filtrimise loogika ja protokollispetsiifilised töötlejad kompileeritakse byte-koodiks kasutaja ruumis, seejĂ€rel laaditakse see byte-kood tuumasse Netlinki liidese abil ja seda tĂ€idetakse spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lĂ€henemine vĂ”imaldab mĂ€rkimisvÀÀrselt vĂ€hendada tuumal töötava filtreerimiskoodi suurust ning viia kĂ”ik reeglite analĂŒĂŒsi ja protokollidega töötamise funktsioonid kasutaja ruumi.
PÔhilised uuendused:
- Pakettide ajaga sidumise tugi. Saate mÀÀratleda ajavahemikud ja kuupÀevad, millal reegel kehtib, ning seadistada ka kehtivuse nÀdalapÀevade osas. Uus valik "-T" on samuti lisatud, et vÀljastada ajatempe sekundites.
meta time \»2019-12-24 16:00\» â \»2020-01-02 7:00\»
meta hour \»17:00\» â \»19:00\»
meta day \»Fri\» - SELinuxi (secmark) mÀrkide taastamise ja salvestamise tugi.
ct secmark set meta secmark
meta secmark set ct secmark - Map-listide (synproxy) tugi, mis vĂ”imaldavad mÀÀrata rohkem kui ĂŒhe reegli tagapinnale.
table 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» }
}
} - DĂŒnaamiline elementide eemaldamise vĂ”imalus set-kogumitest pakettide töötlemise reeglitest.
nft add rule ⊠delete @set5 { ip6 saddr . ip6 daddr }
- VLAN-i mÀÀramine vastavalt identifikaatorile ja protokollile, mis on mÀÀratletud vÔrgu silla liidese metaandmetes;
meta ibrpvid 100
meta ibrvproto vlan - Valik â-tâ (ââterseâ) set-kogumite elementide vĂ€listamiseks reeglite kuvamisel. KĂ€ivitamisel ânft -t list rulesetâ kuvatakse:
table ip x {
set y {
type ipv4_addr
}
}Ja kui kasutada ânft list rulesetâ
table ip x {
set y {
type ipv4_addr
elements = { 192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - VĂ”imalus mÀÀrata rohkem kui ĂŒks seade netdev-ahelates (töötab ainult tuuma 5.5-ga) tĂŒĂŒppakettide filtreerimise reeglite ĂŒhendamiseks.
add table netdev x
add chain netdev x y { \
type filter hook ingress devices = { eth0, eth1 } priority 0;
} - VĂ”imalus lisada andmetĂŒĂŒpide kirjeldusi.
# nft describe ipv4_addr
datatype ipv4_addr (IPv4 address) (basetype integer), 32 bits - VÔimalus ehitada CLI-liides linenoise teegi abil libreadline'i asemel.
./configure âwith-cli=linenoise
Allikas: opennet.ru
