A kernelszint csak egy általános, protokoll-független interfészt biztosít, amely alapvető funkciókat biztosít az adatok csomagokból történő kinyeréséhez, adatműveletek végrehajtásához és az áramlásvezérléshez. Magát a szűrési logikát és a protokoll-specifikus kezelőket a felhasználói térben bájtkódba fordítják, majd ezt a bájtkódot a Netlink interfész segítségével betöltik a kernelbe, és egy speciális, BPF-re (Berkeley Packet Filters) emlékeztető virtuális gépen hajtják végre. Ez a megközelítés lehetővé teszi a kernel szintjén futó szűrőkód méretének jelentős csökkentését, és a protokollokkal való munkavégzéshez szükséges elemzési szabályok és logikák összes funkciójának áthelyezését a felhasználói térbe.
Főbb újítások:
- Támogatás a csomagok idő szerinti egyeztetéséhez. Meghatározhatja az idő- és dátumtartományokat is, amelyekben a szabály aktiválásra kerül, és beállíthatja az aktiválást a hét egyes napjain. Szintén hozzáadott egy új "-T" opciót az epochális idő másodpercekben történő megjelenítéséhez.
meta idő \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
meta óra \"17:00\" - \"19:00\"
meta nap \"Péntek\" - Támogatás a SELinux jelek helyreállításához és mentéséhez (secmark).
ct secmark set meta secmark
meta secmark set ct secmark - A synproxy leképezési listák támogatása, amely lehetővé teszi egynél több szabály meghatározását háttérrendszerenként.
table ip foo {
synproxy https-synproxy {
mss 1460
wskála 7
időbélyeg zsák-perm
}synproxy other-synproxy {
mss 1460
wskála 5
}lánc pre {
típusú filter hook prerouting priority raw; szabályzat elfogadása;
tcp dport 8888 tcp flags syn notrack
}láncrúd {
típusú szűrő hook forward priority szűrő; szabályzat elfogadása;
ct állapot érvénytelen, nyomon nem követett synproxy név ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "egyéb-synproxy" }
}
} - Lehetőség a halmazelemek dinamikus eltávolítására a csomagfeldolgozási szabályokból.
nft szabály hozzáadása ... törlés @set5 { ip6 saddr . ip6 apa}
- A VLAN-leképezés támogatása a hálózati híd interfész metaadataiban meghatározott azonosító és protokoll alapján;
meta ibrpvid 100
meta ibrvproto vlan - A "-t" ("--terse") opció a halmazkészletek elemeinek kizárásához szabályok megjelenítésekor. Az "nft -t list rulet" futtatása a következőt fogja eredményezni:
táblázat ip x {
set y {
írja be az ipv4_addr
}
}És az „nft lista szabályaival”
táblázat ip x {
set y {
írja be az ipv4_addr
elemek = { 192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - Egynél több eszköz megadása a netdev láncokban (csak az 5.5-ös rendszermaggal működik) a közös szűrési szabályok kombinálása érdekében.
netdev x tábla hozzáadása
lánc hozzáadása netdev x y { \
típusú szűrő horog bemeneti eszközök = { eth0, eth1 } prioritás 0;
} - Lehetőség adattípusok leírásának hozzáadására.
# nft írja le az ipv4_addr
adattípus ipv4_addr (IPv4 cím) (alaptípus egész szám), 32 bit - Lehetőség CLI interfész felépítésére a linenoise könyvtárral a libreadline helyett.
./configure --with-cli=linenoise
Forrás: opennet.ru