Nftables - Nftables
Původní autoři | Projekt Netfilter |
---|---|
Vývojáři | Projekt Netfilter |
Stabilní uvolnění | 0.9.7[1] / 27. října 2020 |
Náhled verze | |
Úložiště | ![]() |
Napsáno | C |
Operační systém | Linux |
Plošina | Netfilter |
Typ | filtrování paketů |
Licence | GPLv2 |
webová stránka |
nftables je subsystém Linuxové jádro poskytování filtrování a klasifikace síťové pakety / datagramy / rámečky. Je k dispozici od vydání linuxového jádra 3.13 dne 19. ledna 2014.[2]
nftables nahrazuje starší části iptables z Netfilter. Mezi výhody nftables oproti iptables patří menší duplikace kódu a snazší rozšíření o nové protokoly. nftables se konfiguruje přes uživatelský prostor nástroj nft, zatímco starší nástroje se konfigurují pomocí obslužných programů iptables, tabulky ip6, arptables a ebtables rámce.
nftables využívá stavební kameny Netfilter infrastruktura, například existující háčky do síťového zásobníku, systém sledování připojení, součást fronty uživatelského prostoru a podsystém protokolování.
nft
Syntaxe příkazového řádku
Příkaz k zahození všech paketů s cílovou IP adresou 1.2.3.4
:
nft přidat pravidlo ip filtr výstup ip daddr 1.2.3.4 pokles
Všimněte si, že nová syntaxe se výrazně liší od syntaxe iptables, ve kterých by bylo napsáno stejné pravidlo:
iptables -A VÝSTUP -d 1.2.3.4 -j DROP
Nová syntaxe může vypadat podrobněji, ale je také mnohem flexibilnější. nftables zahrnuje pokročilé datové struktury jako jsou slovníky, mapy a zřetězení, která neexistují s iptables. Jejich použití může významně snížit počet řetězců a pravidel potřebných k vyjádření daného návrhu filtrování paketů.
The iptables-translate
nástroj lze použít k překladu mnoha stávajících pravidel iptables na ekvivalentní pravidla nftables.[3][4] Debian 10 (Buster), mimo jiné Linuxové distribuce, používá nftables spolu s iptables-translate
jako výchozí back-end filtrování paketů.[5]
Dějiny
Projekt byl poprvé veřejně představen na Netfilter Workshopu 2008 Patrickem McHardym z týmu Netfilter Core.[6] První předběžné vydání implementace jádra a uživatelského prostoru bylo vydáno v březnu 2009.[7] Přestože se tomuto nástroji říká „největší změna v linuxovém firewallu od zavedení iptables v roce 2001“, získal malou pozornost tisku.[8] Pozoruhodný hacker Fjodor Vaskovič (Gordon Lyon) uvedl, že se „těší na její všeobecné vydání v hlavním proudu Linuxové jádro ".[8]
Projekt zůstal ve fázi alfa a oficiální web byl odstraněn v roce 2009. V březnu 2010 e-maily od autora ze seznamů adresátů projektu ukázaly, že projekt je stále aktivní a blíží se beta verzi,[9][10] ale ten nebyl nikdy oficiálně odeslán. V říjnu 2012 navrhl Pablo Neira Ayuso vrstvu kompatibility pro iptables[11] a oznámil možné zahrnutí projektu do hlavního proudu jádra.
Dne 16. října 2013 předložil Pablo Neira Ayuso jádro nftables vytáhnout požadavek do Hlavní linka linuxového jádra strom.[12] To bylo sloučeno do hlavní řady jádra dne 19. ledna 2014, s vydáním linuxového jádra verze 3.13.[2]
Přehled
Jádro jádra nftables přidává jednoduché virtuální stroj do linuxového jádra, které je schopno vykonávat bytecode, aby zkontrolovalo síťový paket a rozhodovalo o tom, jak s tímto paketem zacházet. Operace implementované tímto virtuálním strojem jsou záměrně provedeny základní. Může získávat data ze samotného paketu, podívat se na přidružená metadata (například příchozí rozhraní) a spravovat data pro sledování připojení. Pro rozhodování na základě těchto dat lze použít aritmetické, bitové a porovnávací operátory. Virtuální stroj je také schopen manipulovat se sadami dat (obvykle IP adresami), což umožňuje nahradit více operací porovnání jediným vyhledáním sady.[13]
Výše popsaná organizace je v rozporu s firewallingovým kódem iptables, který má povědomí o protokolu zabudováno tak hluboko do logiky, že kód musel být replikován čtyřikrát - pro IPv4, IPv6, ARP a Ethernet přemostění —Jelikož jsou brány firewall příliš specifické pro konkrétní protokol, než aby mohly být použity obecně.[13]
Hlavními výhodami nftables oproti iptables je zjednodušení linuxového jádra ABI, snížení o duplikace kódu, vylepšeno hlášení chyb a efektivnější provádění, ukládání a přírůstkové změny pravidel filtrování. Tradičně se používá , , a (pro IPv4, IPv6, ARP a přemostění Ethernetu) mají být nahrazeny jako jediná unifikovaná implementace poskytující konfiguraci brány firewall na vrcholu virtuálního stroje v jádře.
nftables také nabízí vylepšené API uživatelského prostoru, které umožňuje atomový nahrazení jednoho nebo více pravidel brány firewall v rámci jednoho Netlink transakce. To zrychluje změny konfigurace brány firewall u instalací s velkými sadami pravidel; může také pomoci vyhnout se závodním podmínkám během provádění změn pravidel. nftables také obsahuje funkce kompatibility usnadňující přechod z předchozích bran firewall, nástroje příkazového řádku pro převod pravidel ve formátu iptables,[14] a verze příkazů iptables kompatibilní s syntaxí, které používají back-end nftables.[15]
Reference
- ^ "Novinky projektu netfilter / iptables". netfilter.org. 2020-10-27. Citováno 2020-11-22.
- ^ A b „nftables, nástupce iptables“. Linux 3.13. kernelnewbies.org. 2014-01-19. Citováno 2016-03-04.
- ^ https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables
- ^ https://wiki.nftables.org/wiki-nftables/index.php/List_of_available_translations_via_iptables-translate_tool
- ^ https://wiki.debian.org/nftables
- ^ „Uživatelský denní program - NFWS2008“. workshop.netfilter.org. 2008-10-03. Citováno 2014-02-22.
- ^ první oznámení o vydání.
- ^ A b Gray, Patrick (26. března 2009). „NOVINKY: Linux získává nový firewall“. Risky.biz.
- ^ "Linux Netfilter Devel - Re: Aktuální stav nftables". Spinics.net. Citováno 2014-01-20.
- ^ "Linux Netfilter Devel - Re: Aktuální stav nftables". Spinics.net. Citováno 2014-01-20.
- ^ „Linux Netfilter Devel - [RFC] zpět na nf_tables (plus vrstva kompatibility)“. Spinics.net. Citováno 2014-01-20.
- ^ „[PATCH 00/17] aktualizace netfilteru: požadavek na vytažení nf_tables“. Marc.info. Citováno 2014-01-20.
- ^ A b Jonathan Corbet (2013-08-20). "Návrat nftables". LWN.net. Citováno 2013-10-22.
- ^ Neira Ayuso, Pablo. "nftables - nástroj příkazového řádku nft". git.netfilter.org. Citováno 24. ledna 2019.
- ^ Arturo, Ral. „Souhrn Netfilter Workshop 2018 v Berlíně“. ral-arturo.org. Citováno 24. ledna 2019.
externí odkazy
- Oficiální webové stránky
- nftables Úložiště zdrojových kódů Git
- nftables HOWTO dokumentace
- První vydání nftables (2009-03-18)
- Pablo Neira Ayuso: [RFC] zpět na nf_tables (plus vrstva kompatibility)
- nftables rychlé JAK
- sekce nftables v ArchWiki a Gentoo Wiki
- Corbet, Jonathan (2009-03-24). „nftables: nový modul filtrování paketů“. LWN.net.
- McHardy, Patrick (30. 9. 2008). nftables - nástupce iptables, ip6tables, ebtables a arptables (ODP ). Workshop Netfilter 2008.
- nft_compat rozšířen o podporu rozšíření ebtables (sloučeno v Linux kernel 4.0)