【エヌエフテーブルズ】
nftables(パケットフィルタ) とは?
最終更新:
💡 Linuxの通信ルールを管理するパケット処理基盤
Linuxのパケット処理基盤とnftコマンドによるルール管理の仕組み。テーブル・チェーン・ルール、hook、acceptとdropの意味、設定確認と移行の注意点を解説します。
📌 このページのポイント
テーブルとチェーンは、何をするの?
テーブルはルール群を整理する入れ物で、チェーンはルールを並べる入れ物だ。通信の処理位置に接続したベースチェーンと、ほかのチェーンから呼ばれる通常チェーンがある。名前だけで通信に接続されるわけではない。
inputという名前なら、受信を守れる?
ベースチェーンには種類、hook、priorityが必要だ。hookは入力などの処理位置、priorityは同じ位置での順番を指定する。未判定のパケットをどうするかはpolicyで決める。チェーン名だけでは足りないよ。
iptablesの設定を、そのまま使える?
設定する前に、何を見ればいい?
nft list rulesetで現在のルールを確認できる。nft -c -f rules.nftは、変更を適用せずコマンドの妥当性を確認する例だ。ただし検査に通ることと、必要な通信が実際に通ることは別だ。接続を失わない確認手順も用意しよう。
もっと詳しく知りたい人へ
acceptが出たら、必ずアプリへ届く?
保証ではありません。公式マニュアルでは、acceptは現在のベースチェーンの評価を終えますが、後続のチェーンでdropされる可能性があります。ほかのネットワーク設定で破棄される場合もあるため、ルール全体と実際の通信を確認します。
table→chain→ruleの順に、パケットが流れる?
これは整理の階層です。パケットはネットワークのhookに接続したベースチェーンで評価されます。テーブルを作っただけではフィルタリングの入口になりません。図でも、入れ物の関係をパケットの処理矢印と混同しないようにしています。
📖 おまけ:英語の意味
「nftables」 = Netfilterのパケット処理・ルール管理の仕組み
💬 公式プロジェクトは、カーネル内のパケット分類基盤と、新しいnftコマンドを提供すると説明しています。