GNU/Linux >> Znalost Linux >  >> Linux

Ahoj nftables, sbohem iptables

Firewalling pod Linuxem byl přepracován.

Ano, čtete správně. Firewallový nástroj, který byl buď nenáviděn, nebo milován, od doby, kdy jádro 2.4 bylo postupně vyřazováno z jádra v4.9 a dále ve prospěch nftables.

Iptables budou v dohledné době stále dostupné, ale nyní je čas naučit se novou syntaxi nftables. Nftables, což je zkratka pro netfilter  tabulky. Nftables je součástí sady netfilter, což je tým přispěvatelů jádra, kteří mají za úkol provádět „NAT, Firewalling a mandlování paketů pro Linux“. Tým netfilter jsou stejní autoři, kteří nám přinesli iptables, takže mají pravděpodobně nejlepší pozici k nahrazení iptables, stejně jako předtím ipchainy a ipfw.

Nové funkce

Nftables nabízí novou funkcionalitu nedostupnou v iptables a je dostupná (i když ne zcela stabilní) od jádra 3.13. Kromě samotného modulu jádra tvoří nftables tři další komponenty. Jsou to:

  • libmnl:minimalistická knihovna Netlink
  • libnftnl:nízkoúrovňová síťová knihovna uživatelského prostoru
  • nft:nástroj příkazového řádku.

Nová sada nástrojů nabízí oproti iptables následující výhody:

  • Vysoký výkon prostřednictvím map a zřetězení:Kontrola lineární sady pravidel se nezvětšuje. Pomocí map a zřetězení můžete strukturovat svou sadu pravidel, abyste snížili počet kontrol pravidel za účelem nalezení konečné akce s paketem na naprosté minimum.
  • Jednotná a konzistentní syntaxe pro každou rodinu protokolů podpory, na rozdíl od nástrojů xtables, o kterých je dobře známo, že jsou plné nekonzistencí.
  • Virtuální počítač specifický pro síť :nft nástroj příkazového řádku zkompiluje sadu pravidel do bajtového kódu VM ve formátu netlink a poté to vloží do jádra přes nftables Netlink API. Při načítání sady pravidel je bajtový kód virtuálního počítače ve formátu netlink dekompilován zpět do své původní reprezentace sady pravidel. Takže nft chová se jako kompilátor i dekompilátor.
  • Není potřeba aktualizací jádra a menší kódová základna jádra :Inteligence je umístěna v uživatelském prostoru nft nástroj příkazového řádku, který je podstatně složitější než iptables, pokud jde o kódovou základnu, nicméně uprostřed běhu nám to potenciálně umožní poskytovat nové funkce prostřednictvím upgradu nástroje příkazového řádku uživatelského prostoru bez nutnosti upgradů jádra.

Mohu svá pravidla iptables snadno převést na nft?

Poměrně snadno. Existuje konverzní nástroj, který funguje následovně:
% iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
nft add rule ip filter INPUT tcp dport 22 ct state new counter accept


% ip6tables-translate -A FORWARD -i eth0 -o eth3 -p udp -m multiport --dports 111,222 -j ACCEPT
nft add rule ip6 filter FORWARD iifname eth0 oifname eth3 meta l4proto udp udp dport {111,222} counter accept

  • Další informace o přechodu z iptables na nftables najdete na této užitečné wiki stránce od týmu netfilter.

Kdy to přijde do mé distribuce Linuxu?

Počínaje stabilní verzí Debianu 9 je nainstalovaný framework nftables, připravený k použití. Je k dispozici prostřednictvím instalace balíčku v Debian development (Stretch) právě teď, jednoduše zadejte aptitude install nftables.

Vydání do stabilní verze Debianu téměř jistě v blízké budoucnosti zajistí vydání navazující na všechny ostatní hlavní distribuce založené na Debianu, jako je Ubuntu. Uživatelé CentOS 7/RHEL 7 mohou instalovat nftables z oficiálního repozitáře Red Hat EPEL pomocí yum již dnes. V době psaní tohoto článku CentOS dodává verzi 0.6 a Debian 0.7. Ubuntu 16.04 LTS má starší verzi (0.5), nicméně doporučuji počkat na novější verzi.

Další informace

Chcete-li získat další informace, přejděte na webovou stránku netfilter, mají opravdu dobrou dokumentaci:

  • návod na nftables:http://wiki.nftables.org
  • domovská stránka nftables
  • Aktualizace Debianu a nftables (květen 2017)

Linux
  1. "Panika jádra"?

  2. Linux – Kernel IP Forwarding?

  3. Linux – poskvrněné jádro v Linuxu?

  1. Sbohem, Linux Journal

  2. Linux OS Service „iptables“

  3. Vrátit zpět modifikaci iptables

  1. Trasování jádra pomocí trace-cmd

  2. Cheat sheet příkazů IPtables

  3. Linux – Kernel:Podpora jmenných prostorů?