Nftables
nftablesは、パケット/データグラム/フレームのパケットフィルタリングと分類機能を提供するLinuxカーネルのサブシステムである。2014年1月19日に公開されたLinux 3.13以降で利用可能である[2]。 nftablesはNetfilterの特定の部分のみを置き換え、それ以外の部分は維持および再利用することになっている。Netfilterに対するnftablesの利点は、フィルタリングルールを纏めることができる (重複コードを減らすことができる) ことと、スループットが高いことである。nftablesの設定はユーザー空間ユーティリティーの nftablesは、ネットワークスタックへの既存のフック、接続追跡システム、ユーザー空間のキューイングコンポーネント、ログサブシステムなどのNetfilterインフラストラクチャーの構成要素を利用している。 nftコマンドラインの構文宛先のIPアドレスが 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回(IPv4、IPv6、ARPおよびイーサネットブリッジ)呼び出す必要がある。これは、エンジンがプロトコル毎に固有であり、汎用的には使用できないからである[8]。 iptablesに対するnftablesの主な利点は、LinuxカーネルABIの簡素化、重複コードの削減、エラーメッセージの改善およびフィルタリングルールのより効率的な実行、保存および増分変更である。従来使用されていた nftablesは単一のNetlinkトランザクション内で、1つ以上のファイアウォールルールのアトミックな置き換えができるように改良されたユーザー空間APIも提供する。これによって、大きなフィルタリングルールを持つファイアウォール設定の変更が高速化される。また、ルールの変更中に競合が発生することを避けるためにも役立つ。nftablesには以前のファイアウォールからの移行を容易にする互換性機能、iptablesのフィルタリングルールを変換するユーティリティー[9]、バックエンドとしてnftablesを使用している場合のiptablesのフィルタリングルールの互換構文が含まれている[10]。 脚注
関連項目
外部リンク
|
Portal di Ensiklopedia Dunia