Några dagar sedan den nya versionen av paketfiltret nftables 0.9.3 släpptes, vilken utvecklas som ersättning för iptables, ip6table, arptables och ebtables på grund av föreningen av paketfiltreringsgränssnitt för IPv4, IPv6, ARP och nätverksbryggor.
Nftables-paketet använder strukturella delar av Netfilter-infrastrukturen, som anslutningsspårningssystem (anslutningsspårningssystem) eller delsystemet för registrering. Ett kompatibilitetsskikt tillhandahålls också för att översätta befintliga iptables-brandväggsregler till motsvarande i nftables.
Om Nftables
nftables innehåller paketfilterkomponenter som fungerar i användarutrymme, medan delsystemet är på kärnnivå nf_tables tillhandahåller en del av Linux-kärnan sedan version 3.13.
På kärnnivå tillhandahålls endast ett gemensamt gränssnitt vilket är oberoende av ett specifikt protokoll och tillhandahåller grundläggande funktioner för att extrahera data från paket, utföra datahantering och kontrollera flödet.
Själva filtreringslogiken och de protokollspecifika processorerna sammanställs till en bytkod i användarutrymmet, varefter denna bytkod laddas i kärnan med Netlink-gränssnittet och körs i en speciell virtuell maskin som ser ut som BPF (Berkeley Packet Filters).
Det här tillvägagångssättet gör att du kan minska storleken på filtreringskoden som körs på kärnnivå avsevärt och eliminera all analyseringsfunktionalitet och logiken att arbeta med protokoll i användarutrymmet.
De viktigaste fördelarna med nftables är:
- Arkitektur som är inbäddad i kärnan
- En syntax som konsoliderar IPtables-verktyg till ett enda kommandoradsverktyg
- Ett kompatibilitetslager som tillåter användning av IPtables-regel-syntax.
- En ny lättlärd syntax.
- Förenklad process för att lägga till brandväggsregler.
- Förbättrad felrapportering.
- Minskning av kodreplikering.
- Bättre övergripande prestanda, lagring och stegvisa förändringar av regelfiltrering.
Vad är nytt i nftables 0.9.3?
I den här nya versionen av nftables 0.9.3 lagt till stöd för matchande paket över tiden. Med detta kan du definiera tids- och datumintervall där regeln kommer att aktiveras och konfigurera aktiveringen på enskilda veckodagar. Har också lagt till ett nytt "-T" -alternativ för att visa epoketid i sekunder.
En annan av de förändringar som sticker ut är stöd för att återställa och spara SELinux-taggar (secmark), ja liksom stöd för synproxy-kartlistor, så att du kan definiera mer än en regel per backend.
Av de andra förändringarna som sticker ut från den här nya versionen:
- Möjlighet att dynamiskt ta bort uppsättningselement från paketbehandlingsregler.
- Stöd för VLAN-mappning med identifierare och protokoll definierat i metadata för nätverksbrogränssnittet
- Alternativ "-t" ("–terse") för att utesluta set-set-element när regler visas. När du kör "nft -t list ruleset" kommer det att visa:
- Nft lista regeluppsättning.
- Möjligheten att ange mer än en enhet i netdev-strängar (fungerar endast med kärna 5.5) för att kombinera vanliga filterregler.
- Möjlighet att lägga till datatypbeskrivningar.
- Möjlighet att bygga ett CLI-gränssnitt med linenoise-biblioteket istället för libreadline.
Hur installerar jag den nya versionen av nftables 0.9.3?
För att få den nya versionen just nu kan endast källkoden kompileras på ditt system. Även om de kompilerade binära paketen inom några dagar kommer att finnas tillgängliga inom de olika Linux-distributionerna.
Förutom det de ändringar som krävs för att nftables 0.9.3 ska fungera ingår i den framtida Linux-kärngrenen 5.5. För att kompilera måste du därför ha följande beroenden installerade:
Dessa kan sammanställas med:
./autogen.sh
./configure
make
make install
Och för nftables 0.9.3 laddar vi ner det från följande länk. Och sammanställningen görs med följande kommandon:
cd nftables
./autogen.sh
./configure
make
make install