csomagszűrő kiadása , amely az iptables, ip6tables, arptables és ebtables helyettesítésére fejlődik, a csomagszűrési interfészek egységesítésével IPv4, IPv6, ARP és hálózati hidak számára. Az nftables csomag részeként felhasználói módban működő csomagszűrő komponensek találhatók, míg a kernel szintjén az nf_tables alrendszer biztosítja a működést, amely a Linux 3.13-as kiadásától kezdődően elérhető. Az nftables 0.9.3 kiadásához szükséges változtatások a jövőbeli Linux kernel 5.5-ös verziójának részei.
A kernel szintjén csak egy általános interfész biztosított, amely független a konkrét protokolltól, és alapvető funkciókat nyújt az adatok csomagokból való kinyerésére, az adatokkal való műveletekre és az áramlás kontrollálására. Maguk a szűrési logika és a protokoll-specifikus kezelők a felhasználói térben bytekódra fordulnak, amelyet ezután a Netlink interfész segítségével betölt a kernelbe és egy BPF-hez (Berkeley Packet Filters) hasonló speciális virtuális gépen fut. Ez a megközelítés jelentősen csökkenti a kernel szintjén futó szűrési kód méretét, miközben az összes szabályfeldolgozással és protokollokkal kapcsolatos logikát a felhasználói térbe helyezi.
Főbb újítások:
- Támogatás az időalapú csomagok egyeztetésére. Meghatározhatók olyan időtartamok és dátumok, amikor a szabály érvényes, valamint beállíthatók különböző napok. Új '-T' opció is hozzáadva, amellyel az epoch időt másodpercekben lehet megjeleníteni.
meta time "2019-12-24 16:00" — "2020-01-02 7:00"
meta hour "17:00" — "19:00"
meta day "Fri" - Támogatás az SELinux (secmark) címkék helyreállítására és megőrzésére.
ct secmark set meta secmark
meta secmark set ct secmark - Támogatás a synproxy map-listákhoz, amelyek lehetővé teszik több szabály meghatározását a háttér számára.
tábla ip foo {
synproxy https-synproxy {
mss 1460
wscale 7
timestamp sack-perm
}synproxy other-synproxy {
mss 1460
wscale 5
}chain pre {
típus szűrő horgony prerouting prioritás nyers; politika elfogadása;
tcp dport 8888 tcp flags syn notrack
}lánc bar {
típus szűrő horgony forward prioritás szűrő; politika elfogadása;
ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "other-synproxy" }
}
} - Lehetőség a set-csoportok dinamikus elemeinek eltávolítására a csomagszűrési szabályokból.
nft add rule … delete @set5 { ip6 saddr . ip6 daddr }
- Támogatás VLAN egyeztetésére az azonosító és protokoll alapján, amelyeket a hálózati híd interfész metaadatai határoznak meg;
meta ibrpvid 100
meta ibrvproto vlan - A '-t' ('—terse') opció a set-csoportok elemeinek kizárására a szabályok megjelenítésekor. A "nft -t list ruleset" végrehajtásakor az alábbiak jelennek meg:
table ip x {
set y {
type ipv4_addr
}
}A "nft list ruleset" parancs esetén
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 }
}
} - Lehetőség több eszköz megadására a netdev láncokban (csak 5.5-ös kernellel működik), hogy egyesítsük a típuskénti szűrési szabályokat.
add table netdev x
add chain netdev x y { \
type filter hook ingress devices = { eth0, eth1 } priority 0;
} - Lehetőség adat típusaik leírásának hozzáadására.
# nft describe ipv4_addr
datatype ipv4_addr (IPv4 cím) (basetype integer), 32 bit - CLI interfész összeállításának lehetősége a linenoise könyvtárral a libreadline helyett.
./configure —with-cli=linenoise
Forrás: opennet.ru
