GNU/Linux >> Linux の 問題 >  >> Linux

こんにちはnftables、さようならiptables

Linuxでのファイアウォールが刷新されました。

はい、正しくお読みください。カーネル2.4がカーネルv4.9以降、nftablesを優先して段階的に廃止されて以来、嫌われているか愛されてきたファイアウォールツール。

Iptablesは当面は引き続き利用できますが、今こそnftablesの新しい構文を学ぶときです。 Nftablesは、 netfilterの略です。 テーブル。 Nftablesはnetfilterスイートの一部です。netfilterスイートは、「LinuxのNAT、ファイアウォール、パケットマングリング」の実行を特に担当するカーネルコントリビューターのチームです。 netfilterチームは、私たちにiptablesをもたらしたのと同じ作者であるため、前のipchainsやipfwと同じように、iptablesを置き換えるのに最適な場所です。

新機能

Nftablesは、iptablesでは利用できない新機能を提供し、カーネル3.13以降で利用可能になっています(完全に安定しているわけではありませんが)。カーネルモジュール自体に加えて、他の3つのコンポーネントがnftablesを構成します。これらは次のとおりです。

  • libmnl:最小限のNetlinkライブラリ
  • libnftnl:低レベルのnetlinkユーザースペースライブラリ
  • nft:コマンドラインツール。

新しいツールセットには、iptablesに比べて次の利点があります。

  • 高性能 マップと連結を介して:線形ルールセット検査はスケールアップしません。マップと連結を使用すると、ルールセットを構造化して、ルール検査の数を減らし、パケットに対する最終的なアクションを最小限に抑えることができます。
  • 統一された一貫性のある構文 不整合に満ちていることがよく知られているxtablesユーティリティとは異なり、すべてのサポートプロトコルファミリに対して。
  • ネットワーク固有の仮想マシン nft コマンドラインツールは、ルールセットをネットリンク形式のVMバイトコードにコンパイルし、nftablesNetlinkAPIを介してこれをカーネルにプッシュします。ルールセットを取得すると、ネットリンク形式のVMバイトコードが逆コンパイルされて元のルールセット表現に戻ります。つまり、 nft コンパイラと逆コンパイラの両方として動作します。
  • カーネルの更新やカーネルコードベースの縮小は必要ありません :インテリジェンスはユーザースペースに配置されます nft コマンドラインツールは、コードベースの点でiptablesよりもかなり複雑ですが、途中で、カーネルをアップグレードすることなく、ユーザースペースコマンドラインツールをアップグレードすることで新しい機能を提供できる可能性があります。

iptablesルールをnftに簡単に変換できますか?

かなり簡単です。次のように機能する変換ツールがあります。
% 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

  • iptablesからnftablesへの移行の詳細については、netfilterチームによるこの役立つwikiページをご覧ください。

Linuxディストリビューションはいつ公開されますか?

Debian 9安定版から、nftablesフレームワークがインストールされ、すぐに使用できるようになります。現在、Debian開発(Stretch)のパッケージインストールを通じて利用できます。aptitude install nftables.

Debian安定版へのリリースは、近い将来、Ubuntuなどの他のすべての主要なDebianベースのディストリビューションへのリリースをほぼ確実に下流に流します。 CentOS 7 / RHEL 7ユーザーは、今日、yumを使用して公式のRedHatEPELリポジトリからnftablesをインストールできます。これを書いている時点で、CentOSはバージョン0.6とDebian0.7を出荷しています。 Ubuntu 16.04 LTSには古いバージョン(0.5)がありますが、新しいバージョンを待つことをお勧めします。

詳細

詳細については、netfilterのWebサイトにアクセスしてください。非常に優れたドキュメントがあります:

  • nftablesのハウツー:http://wiki.nftables.org
  • nftablesホームページ
  • Debianとnftablesのアップデート(2017年5月)

Linux
  1. さようなら、Linux Journal

  2. IPtablesコマンドのチートシート

  3. iptablesの紹介

  1. CentOS/RHEL 8 で既存の Iptables ルールを Nftables に移行する方法

  2. マクロカーネルを揃える

  3. iptables の変更を元に戻す

  1. trace-cmdを使用したカーネルトレース

  2. 「カーネルパニック」?

  3. Linux –カーネル:名前空間のサポート?