(Translated by https://www.hiragana.jp/)
nftables - Wikipedia コンテンツにスキップ

nftables

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
nftables
作者さくしゃ The Netfilter project
開発元かいはつもと The Netfilter project
最新さいしんばん
0.9.4 / 2020ねん4がつ1にち (4ねんまえ) (2020-04-01)[1]
リポジトリ ウィキデータを編集
プログラミング
言語げんご
C
対応たいおうOS Linux
種別しゅべつ パケットフィルタリング
ライセンス GNU GPL v2
公式こうしきサイト netfilter.org/projects/nftables/ ウィキデータを編集
テンプレートを表示ひょうじ
tc英語えいごばんLinuxカーネルのパケットスケジューラーにたいして、Netfilter英語えいごばんたいするiptablesや、nftablesにたいするnftのような関係かんけいのツールである。これらはすべてLinuxカーネルサブシステムを構成こうせいするために使用しようされるユーザー空間くうかんユーティリティーである。

nftablesは、パケット/データグラム/フレームパケットフィルタリング分類ぶんるい機能きのう提供ていきょうするLinuxカーネルのサブシステムである。2014ねん1がつ19にち公開こうかいされたLinux 3.13以降いこう利用りよう可能かのうである[2]

nftablesはNetfilter英語えいごばん特定とくてい部分ぶぶんのみをえ、それ以外いがい部分ぶぶん維持いじおよびさい利用りようすることになっている。Netfilterにたいするnftablesの利点りてんは、フィルタリングルールをまとめることができる (重複じゅうふくコードらすことができる) ことと、スループットたかいことである。nftablesの設定せっていユーザー空間くうかんユーティリティーnftかいしておこなうが、Netfilterではiptablesip6tablesarptables英語えいごばんおよびebtablesフレームワークをかいして設定せっていおこなう。

nftablesは、ネットワークスタックへの既存きそんのフック、接続せつぞく追跡ついせきシステム、ユーザー空間くうかんのキューイングコンポーネント、ログサブシステムなどのNetfilterインフラストラクチャーの構成こうせい要素ようそ利用りようしている。

コマンドラインの構文こうぶん

[編集へんしゅう]

宛先あてさきIPアドレス1.2.3.4のパケットを破棄はきするnftのコマンドは、つぎのようにける。

nft add rule ip filter output ip daddr 1.2.3.4 drop

iptablesのコマンドの構文こうぶんはnftとはことなり、つぎのようになる。

iptables -A OUTPUT -d 1.2.3.4 -j DROP

また、互換ごかんレイヤーが提供ていきょうされており、バックエンドとしてnftablesを使用しようしている場合ばあいでも、従来じゅうらいのiptablesのフィルタリングルールの構文こうぶんでパケットフィルタリングをおこなうことができる。

歴史れきし

[編集へんしゅう]

このプロジェクトは、NetfilterのコアチームのPatrick McHardyによってNetfilter Workshop 2008で公開こうかいされた[3]カーネルおよびユーザー空間くうかん実装じっそう最初さいしょのプレビューばんは2009ねん3がつ公開こうかいされた[4]。nftablesは「2001ねんにiptablesが導入どうにゅうされて以降いこう、Linuxのファイアウォールでの最大さいだい変更へんこうてん」とばれているが、ほとんど報道ほうどうされていない[5]著名ちょめいハッカーであるFyodor Vaskovich英語えいごばん(Gordon Lyon)は「メインストリームのLinuxカーネルで公開こうかいされることをたのしみにしている。」とべている[5]

2012ねん10がつ、Pablo Neira Ayusoがiptablesの互換ごかんレイヤーを提案ていあん[6]、プロジェクトをメインストリームのLinuxカーネルにふくめる可能かのうせい発表はっぴょうした。

2013ねん10がつ26にち、Pablo Neira Ayusoは、nftablesの中核ちゅうかく部分ぶぶんをメインストリームのLinuxカーネルにマージするためのプルリクエストを提出ていしゅつした[7]。このプルリクエストは2014ねん1がつ19にちにマージされ、Linux 3.13として公開こうかいされた[2]

概要がいよう

[編集へんしゅう]

nftablesカーネルエンジンはLinuxカーネルに単純たんじゅん仮想かそう機械きかい追加ついかする。この仮想かそう機械きかいバイトコード実行じっこうして、パケットを検査けんさすることで、パケットの処理しょり方法ほうほう決定けっていすることができる。この仮想かそう機械きかいによっておこなわれる操作そうさ実装じっそう意図いとてき基本きほんてきなものになっている。この仮想かそう機械きかいはパケットからデータを取得しゅとくし、関連かんれんするメタデータ (インバウンドインタフェースなど) を確認かくにんし、接続せつぞく追跡ついせきデータを管理かんりすることができる。算術さんじゅつ演算えんざん、ビット単位たんい演算えんざんおよび比較ひかく演算えんざん使用しようして、そのデータにもとづいて決定けっていくだすことができる。また、仮想かそう機械きかいはデータセット (通常つうじょうはIPアドレス) を操作そうさできるので、複数ふくすう比較ひかく操作そうさ単一たんいつのフィルタリングルールにえることができる[8]

上記じょうき内容ないようは、iptablesのフィルタリングルールにはんしている。iptablesのフィルタリングルールではプロトコルを識別しきべつする機能きのう仕組しくみの奥深おくふかくにまれているので、フィルタリングルールを4かいIPv4IPv6ARPおよびイーサネットブリッジ必要ひつようがある。これは、エンジンがプロトコルごと固有こゆうであり、汎用はんようてきには使用しようできないからである[8]

iptablesにたいするnftablesのおも利点りてんは、LinuxカーネルABI簡素かんそ重複じゅうふくコードの削減さくげんエラーメッセージ改善かいぜんおよびフィルタリングルールのより効率こうりつてき実行じっこう保存ほぞんおよび増分ぞうぶん変更へんこうである。従来じゅうらい使用しようされていたiptables(8)ip6tables(8)arptables(8)およびebtables(8)(それぞれIPv4、IPv6、ARPおよびイーサネットブリッジよう)は、単一たんいつ実装じっそうとしてnft(8)えられる予定よていであり、カーネルない仮想かそう機械きかいじょうにファイアウォール設定せってい提供ていきょうする。

nftablesは単一たんいつNetlink英語えいごばんトランザクションないで、1つ以上いじょうのファイアウォールルールのアトミックなえができるように改良かいりょうされたユーザー空間くうかんAPI提供ていきょうする。これによって、おおきなフィルタリングルールをつファイアウォール設定せってい変更へんこう高速こうそくされる。また、ルールの変更へんこうちゅう競合きょうごう発生はっせいすることをけるためにも役立やくだつ。nftablesには以前いぜんのファイアウォールからの移行いこう容易よういにする互換ごかんせい機能きのう、iptablesのフィルタリングルールを変換へんかんするユーティリティー[9]、バックエンドとしてnftablesを使用しようしている場合ばあいのiptablesのフィルタリングルールの互換ごかん構文こうぶんふくまれている[10]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ nftables Release of the netfilter/nftables project”. The Netfilter project. 2020ねん5がつ22にち閲覧えつらん
  2. ^ a b 末岡すえおか洋子ようこ (2014ねん1がつ21にち). “Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良かいりょうなどが特徴とくちょう”. OSDN Magazine. 2019ねん10がつ8にち閲覧えつらん
  3. ^ User day program - NFWS2008”. The Netfilter project. 2017ねん6がつ30にち時点じてんオリジナルよりアーカイブ。2019ねん10がつ8にち閲覧えつらん
  4. ^ McHardy, Patrick (18 March 2009). "First release of nftables". linux-netdev (Mailing list). 2019ねん10がつ8にち閲覧えつらん
  5. ^ a b Patrick Gray (2009ねん3がつ26にち). “NEWS: Linux Gets New Firewall”. Risky Business. 2019ねん10がつ8にち閲覧えつらん
  6. ^ Pablo Neira Ayuso (25 October 2012). "back on nf_tables (plus compatibility layer)". netfilter-devel (Mailing list). 2019ねん10がつ8にち閲覧えつらん
  7. ^ Pablo Neira Ayuso (14 October 2013). "netfilter updates: nf_tables pull request". netfilter-devel (Mailing list). 2019ねん10がつ8にち閲覧えつらん
  8. ^ a b Jonathan Corbet (2013ねん8がつ20日はつか). “The return of nftables”. LWN.net. 2019ねん10がつ8にち閲覧えつらん
  9. ^ Pablo Neira Ayuso (2016ねん7がつ13にち). “src: add xt compat support”. 2019ねん10がつ8にち閲覧えつらん
  10. ^ Arturo Borrero Gonzalez (2018ねん6がつ16にち). “Netfilter Workshop 2018 Berlin summary”. 2019ねん10がつ8にち閲覧えつらん

関連かんれん項目こうもく

[編集へんしゅう]
  • firewalld - バージョン0.6.0以降いこうでnftablesをデフォルトのバックエンドとして使用しようしている

外部がいぶリンク

[編集へんしゅう]