utgivning av paketfilter , som utvecklas som ett alternativ till iptables, ip6tables, arptables och ebtables genom att enhetliggöra pakethanteringsgrÀnssnitten för IPv4, IPv6, ARP och nÀtverksbroar. I paketet nftables ingÄr komponenter för pakethantering som arbetar i anvÀndarutrymmet, medan kÀrnnivÄns arbete tillhandahÄlls av nf_tables-subsystemet, som ingÄr i Linux-kÀrnan sedan version 3.13. NödvÀndiga Àndringar för nftables 0.9.3 Àr inkluderade i den kommande kÀrnversionen 5.5.
I kÀrnnivÄn tillhandahÄlls bara ett allmÀnt grÀnssnitt som inte Àr beroende av ett specifikt protokoll och som erbjuder grundlÀggande funktioner för att extrahera data frÄn paket, utföra operationer med data och hantera flöden. SjÀlva filtreringslogiken och protokollspecifika bearbetare kompileras till bytekod i anvÀndarrummet, vilken laddas i kÀrnan via Netlink-grÀnssnittet och körs i en speciell virtuell maskin som pÄminner om BPF (Berkeley Packet Filters). Denna metod möjliggör en betydande minskning av kodstorleken för filtrering som körs pÄ kÀrnnivÄ och flyttar alla funktioner för regelanalys och protokollhantering till anvÀndarrummet.
Huvudsakliga nyheter:
- Stöd för tidsbaserad paketmatchning. Det gÄr att definiera bÄde tidsintervall och datum nÀr regeln ska aktiveras, samt justera aktiveringen för specifika veckodagar. En ny option "-T" har ocksÄ lagts till för att visa epoch-tid i sekunder.
meta time \»2019-12-24 16:00\» â \»2020-01-02 7:00\»
meta hour \»17:00\» â \»19:00\»
meta day \»Fre\» - Stöd för ÄterstÀllning och bevarande av SELinux-etiketter (secmark).
ct secmark set meta secmark
meta secmark set ct secmark - Stöd för map-listor synproxy, vilket möjliggör att definiera mer Àn en regel för backend.
table ip foo {
synproxy https-synproxy {
mss 1460
wscale 7
timestamp sack-perm
}synproxy other-synproxy {
mss 1460
wscale 5
}chain pre {
typ filter hook prerouting prioritet raw; policy accept;
tcp dport 8888 tcp flags syn notrack
}chain bar {
typ filter hook forward prioritet 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» }
}
} - Möjlighet att dynamiskt ta bort element frÄn set-grupper i pakethanteringsregler.
nft add rule ⊠delete @set5 { ip6 saddr . ip6 daddr }
- Stöd för att matcha VLAN enligt identifierare och protokoll, definierade i metadata för nÀtverksbron;
meta ibrpvid 100
meta ibrvproto vlan - Optionen "-t" ("âterse") för att exkludera element frĂ„n set-grupper vid visning av regler. NĂ€r "nft -t list ruleset" körs kommer följande att skrivas ut:
table ip x {
set y {
type ipv4_addr
}
}Och vid "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 }
}
} - Möjlighet att ange mer Àn en enhet i netdev-kedjor (fungerar endast med kÀrna 5.5) för att kombinera typiska filtreringsregler.
add table netdev x
add chain netdev x y { \
type filter hook ingress devices = { eth0, eth1 } priority 0;
} - Möjlighet att lÀgga till beskrivningar av datatyper.
# nft describe ipv4_addr
datatype ipv4_addr (IPv4-adress) (basetype integer), 32 bitar - Möjlighet att bygga CLI-grÀnssnittet med linenoise-biblioteket istÀllet för libreadline.
./configure âwith-cli=linenoise
KĂ€lla: opennet.ru
