このページには、書きかけの項目が含まれています。
nftables とは
nftablesは、iptablesの置き換えを目的として作られたものです。
Linux kernel 3.13 以上で利用できるようになりました。(まだ開発中です。)
iptables との違い
デフォルトポリシーがなくなりました。(バージョン 0.099 から)
デフォルトポリシーに相当するルールを、必要に応じて付け加える必要があります。
デフォルトの組込フィルタがなくなりました。
デフォルトでは、INPUT、OUTPUT、FORWARDなどのチェーンも存在しません。
色々まとめて、1回の命令で実行できるようになりました。
複数のジャンプ(iptables の-j に相当) 命令が、1コマンドで実行可能になりました。(log とdrop をまとめる など。)
ipsetの機能が組み込まれました
SetやDictionaryなどが使えるようになりました。
コマンドが大幅に変わりました。
コマンドの例 (一部)
| 機能 | iptablesの場合 | nftablesの場合 | 備考 |
| ルールを保存 | iptables-save | nft list ruleset | 標準出力に表示されます。 |
| nft export xml | |||
| nft export json など | |||
| ルールの読込 | iptables-restore < (ファイルの内容) | nft -f (ファイル名) | 要注意 ※1 |
| ルールを表示 | iptables -L | nft list ruleset | |
| iptables -S など | |||
| 全ルールを消去 | iptables -F | nft flush ruleset | |
| 全チェーンを消去 | iptables -X | nft flush ruleset (?) | |
| (またはテーブル毎にflush?) |
※1 nft -f で誤った設定を読み込ませると、カーネルを巻き込んで落ちる場合もあるようです。要注意。
(Segmentation Faultなどが発生し、以降のnftコマンドが反応を返さなくなる場合もあります。)
ルールの保存と読込
ルールの保存
例:(保留)
ルールの読込
運用中のシステムに投入する際は、事前にテスト環境でテストしましょう。
誤った設定を読み込ませると、最悪、システムが落ちる場合があるようです。(他wikiなどの情報)
nft -fでSegmentation Faultを起こした後に、nft list rulesetなどを実行すると、
一切のコマンドを受け付けない(nftコマンドの停止もできない)状態に陥る場合があります。
仮想コンソールを複数開けない環境では、システムの再起動も難しくなりますので、注意しましょう。
例:
nft -f rule.nft
※既存のルールと重複すると、正しく更新されない場合があります。 (全ルールの消去が必要な理由)
"nft -f"は、アトミックな更新(データベースのトランザクションのようなもの)が、 可能という記述と、そうではないという記述があります。
テーブルの操作
テーブルのルールのテンプレート
テンプレートは、/etc/nftablesにあります。
iptablesのfilterテーブルのデフォルト状態(INPUT、FORWARD、OUTPUTが存在する状態)に近い設定にするには、
nft -f /etc/nftables/ipv4-filter
などのコマンドを実行します。
テーブルの追加
テーブルのクリア、削除
チェーンの操作
チェーンの追加
チェーンののクリア、削除
チェーン単体での消去はかなり複雑になっています。
nftのマニュアル(CHAINS: delete)によると、「消去対象のチェーンは、ルールを含んでいないこと、ジャンプのターゲットにされていないこと」が必要となっています。
従って、(ジャンプ元のルールを削除した後、)消したいチェーンをフラッシュ、その後、チェーンを削除という流れになります。
ルールの操作
ルールの追加
ルールのクリア、削除
セット、ディクショナリ
リンク
[[公式ページ:http>//www.netfilter.org/projects/nftables/index.html]]
nftables wiki
ArchWiki - nftables
ArchWiki - nftables (英語)