

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
nftablesとは何か
nftablesとは、Linuxのファイアウォール設定を管理する新しい世代のツールです。従来のiptablesの後継として登場し、パケットの許可・拒否を決めるルールを、わかりやすく整理して扱えるように設計されています。nftablesはカーネルのネットワーク機能であるnetfilterと連携して動作しますが、ルールセットを構造的に表現できる新しい言語風の書き方を提供します。これにより、複雑な設定でも読みやすく保つことが可能です。
基本概念
テーブルはルールの集合を格納する入れ物で、ファミリには inet、ip、ip6、arp などがあります。inetファミリを使えばIPv4とIPv6を同時に扱えるため、設定を一本化できます。
チェーンはルールの順序とフックの場所を表します。入力・転送・出力といった役割に応じたチェーンを作り、根本の処理の流れを決めます。ルールは条件とアクションの組み合わせで成り立ち、許可・拒否・ログ出力などを指定します。
セットは、複数の値をまとめて扱う集合体です。IPアドレスの集合やポート番号の集合などを作って、ルールの条件として使うと、ルールをすっきりと書くことができます。
実例
実際の運用は、テーブルを作成し、チェーンとルールを順番に追加するという流れで行います。以下はごく簡単な例です。
nft add table inet filter;
nft add chain inet filter input { type filter hook input priority 0; policy accept; }
nft add rule inet filter input iifname lo accept
nft add rule inet filter input ip saddr 192.168.0.0/16 drop
メリットと注意点
メリットは、読みやすい表現と階層的な管理、IPv4・IPv6を統合して扱える点、そして Sets を使った柔軟なルール作成が挙げられます。注意点としては、初期設定を間違えると思わぬ通信遮断が起きる可能性があるため、実機の前に仮想環境やバックアップを用意して試すことが重要です。
nftablesとiptablesの比較
| 特徴 | nftables | iptables |
|---|---|---|
| 設計思想 | 統一的で拡張性が高い | 古い設計、複雑化しやすい |
| 構文の読みやすさ | 統一的な表現、セットの利用 | 連続するルールの集まりが多い |
| 管理の一元化 | テーブル・チェーン・ルールを階層的に整理 | 個別ルールが増えやすい |
| 移行・サポート | 新規導入に適している | 旧方式のサポートは安定しているが複雑 |
まとめ
この記事では nftables の基本的な考え方と、実際の設定方法の入口を紹介しました。inet ファミリの活用や、テーブル・チェーン・ルールの基本構造を理解すると、日常の通信をより安全に管理できます。iptables からの移行を検討している人にも、段階的な学習が可能な入門ガイドとして役立つでしょう。
nftablesの関連サジェスト解説
- nftables.service とは
- nftables.service とは? Linuxのファイアウォールを管理する新しい仕組みである nftables は、iptables の後継として使われることが多い安全で柔軟なファイヤウォール機能です。nftables でルールは nft コマンドを使って作成します。nftables.service は systemd のサービスで、サーバーを起動したときにこのルールセットを自動で読み込んで適用してくれます。つまり、再起動後も firewall がすぐに正しく動作する点が大きなメリットです。設定ファイルは通常 /etc/nftables.conf に置き、nft list ruleset で現在の設定を確認できます。初心者向けに使い方をざっくり説明します。まずテキストエディタで /etc/nftables.conf を作成します。以下はよく使われる基本形の例です。#!/usr/sbin/nft -ftable inet filter { chain input { type filter hook input priority 0; iifname \"lo\" accept ct state established,related accept tcp dport 22 accept # SSHは自分の利用に合わせて開放 policy drop } chain forward { type filter hook forward priority 0; ct state established,related accept policy drop } chain output { type filter hook output priority 0; policy accept }}この例では、ループバックは許可、既に確立した接続は許可、SSH の場合だけ開放、その他は全て拒否という基本形です。実際の運用では自分の使うサービスに合わせてポートを追加します。設定を反映させるには、まず手元で nft -f /etc/nftables.conf を実行して正しく読み込めるかを確認します。問題なければ systemctl enable nftables.service で起動時自動適用を有効にし、systemctl start nftables.service で今すぐ適用します。動作確認は systemctl status nftables.service や nft list ruleset で行います。もし SSH で接続が切れた場合は、物理アクセスや別の管理手段で修正してから再起動してください。
nftablesの同意語
- nf_tables
- Linuxカーネル内のファイアウォール機能を提供する正式名称。iptablesの後継となる新世代の表現系で、テーブル・チェーン・ルールを管理する基盤。
- nft
- nftablesのコマンドラインツールの名称。ルールの作成や表示、適用を行うコマンド(nft)。
- nftables
- Linuxの新世代ファイアウォールフレームワークの正式名称。Netfilterの nf_tables サブシステムを使い、iptables の代替として機能する。
- iptablesの後継
- 従来のiptablesの機能を置き換える、nf_tablesベースのファイアウォール機構を指す表現。
- nf_tablesサブシステム
- Linuxカーネルの nf_tables と呼ばれるサブシステム。テーブル・チェーン・ルールを管理する核となる部分。
- nf_tablesカーネルモジュール
- nf_tablesを提供するカーネルのモジュール。実際のルール適用機構を担う。
- Netfilterの新世代ファイアウォールフレームワーク
- Netfilterフレームワークの新しい実装として nftables を指す言い回し。
- Linuxファイアウォールの新しい規格
- Linux上のファイアウォールの新規格・標準として nftables を説明する表現。
- nf_tablesベースのファイアウォール
- nftables を根拠とするファイアウォールの総称。
- nftコマンド
- nftables の CLI。ルールの追加・表示・削除などを行うコマンド。
- nf_tables API
- nf_tablesを操作するアプリケーション向けのプログラミングインターフェース。テーブル/チェーン/ルールの操作を可能にする。
- Linuxカーネルのファイアウォール管理機構
- Linuxカーネルが提供するファイアウォール関連機能の総称。nftablesを含む機構を指す。
nftablesの対義語・反対語
- iptables
- nftablesの対義語・反対語としてよく挙げられる、古い世代のパケットフィルタ設定ツール。netfilterの従来実装で、ルールの記述方法はnftablesよりも直感的で柔軟性に欠けるとされる点が対比のポイントです。
- iptables-legacy
- 旧版のiptables。nftablesに対する歴史的・技術的な対極として扱われることが多く、現在は別パッケージとして並存していることがある。
- firewalld
- 動的にファイアウォールルールを管理するフロントエンド。nftablesが直接ルールを書き換えるスタイルと異なる運用アプローチを示す対義語的存在です。
- ufw
- 簡易なユーザーインターフェースでiptablesを操るフロントエンド。nftablesの高度な機能性に比べて手軽さを優先する点が対比のポイントです。
- pf
- BSD系の別のパケットフィルタ実装。nftablesとは別の実装系で、対抗的な存在として挙げられることがあります。
- no-firewall
- ファイアウォールを使用しない運用。防御機能の観点からnftablesの役割と真っ向から対立するイメージを与えます。
nftablesの共起語
- iptables
- 以前主流だったLinuxのファイアウォールツール。nftablesの前任で、移行対象になることが多い。
- netfilter
- Linuxカーネルのパケット処理フレームワーク。nftablesはこの上へ規則を設定する仕組み。
- テーブル
- nftablesの規則を格納する大枠。ファミリとタイプで分けて管理する。
- チェーン
- テーブル内で規則を適用する順序を定義する要素。
- ルール
- 条件とアクションの組み合わせ。パケットがどう扱われるかを決める最小単位。
- セット
- IPアドレスやポート番号などの値の集合を表すデータ構造。
- マップ
- キーと値の組を管理するデータ構造。条件による参照に使われる。
- ルールセット
- テーブル内の全規則の集合。ルールの総称。
- nftコマンド
- nftコマンドラインツール。設定を作成・変更するための操作手段。
- libnftnl
- nftables用の低レベルライブラリ。CLIなどが内部で利用する。
- netlink
- ユーザー空間とカーネル空間を結ぶ通信の仕組み。nftablesはnetlinkで設定を送る。
- inetファミリ
- IPv4とIPv6の両方を扱えるファミリ。広く使われる設定単位。
- ipファミリ
- IPv4のみを扱うファミリ。伝統的な設定で名前が残ることがある。
- ip6ファミリ
- IPv6のみを扱うファミリ。
- NAT変換
- Network Address Translationのこと。アドレス変換を適用する規則を定義する。
- フィルタテーブル
- パケットを許可/拒否する判定を行う規則の集まりを格納するテーブル。
- ログ
- 規則マッチ時にイベントを記録するアクション。デバッグや監視に使われる。
- カウンター
- マッチ回数を数える機能。計測・統計に役立つ。
- 許可
- 規則にマッチしたときにパケットを通過させるアクション(ACCEPTに相当)。
- 拒否
- 規則にマッチしたときにパケットを破棄するアクション(DROP/REJECTに相当)。
- コネクション追跡
- 通信の状態を追跡する機能。状態に応じて判断を行う。
- JSONエクスポート/インポート
- 規則セットをJSON形式で出力・読み込みできる機能。
- IPv4/IPv6対応
- nftablesがIPv4とIPv6を一つの設定で扱えることを指す総称。
nftablesの関連用語
- nftables
- Linuxのパケットフィルタリングフレームワークの総称。iptablesの後継として使われる。
- nf_tables
- nftablesが使うカーネル側のコアフレームワーク。テーブル・チェーン・ルールの構造を提供する。
- netfilter
- Linuxカーネル内のパケット処理の基盤。ファイアウォール・NAT・マーク付けなどを統括する枠組み。
- iptables
- nf_tablesの前身となる従来のパケットフィルタリングツール。現在は互換レイヤーも存在。
- libnftnl
- nftablesとカーネルを結ぶためのユーザー空間ライブラリ。netlink経由で設定を送る。
- libmnl
- netlinkメッセージの組み立てを支援する低レベルライブラリ。
- nft
- nftablesのコマンドラインツール。ルールセットの作成・表示・適用を行う。
- table
- ルールを組織化する最上位の単位。inet/ ip/ ip6などのファミリーを指定して作成する。
- chain
- テーブル内のルールの並びを定義するユニット。デフォルトポリシーを設定できる場合がある。
- rule
- 条件の照合と処理を定義する最小単位。実際のフィルタや NAT の処理を記述する。
- set
- 照合に使う要素の集合。IPアドレス、ポート、プロトコルなどを格納することができる。
- map
- キーと値の対応を定義するデータ構造。値の取得や動的なルール変更に使われる。
- expression (表現言語)
- nftablesでルールを記述するための言語。meta, payload, cmp などの要素を組み合わせて照合を作る。
- meta
- パケットのメタ情報を取得・照合する表現。例: source/destination/入出力インタフェースなど。
- payload
- パケットのボディやヘッダーのデータを照合する表現。
- counter
- ルールにヒットしたパケット数やバイト数を数える機能。
- log
- ルールのヒットをログとして記録する機能・アクション。
- ct (connection tracking)
- 接続追跡機能。状態に応じた照合が可能になる。
- hook
- netfilterの処理段階を指す概念。PREROUTING/INPUT/FORWARD/OUTPUT/POSTROUTING など。
- family (ファミリー)
- 照合対象のアドレス族。ip / ip6 / inet など。
- nat (NAT関連アクション)
- アドレス変換やポート転送を行う機能。masquerade/redirectなど。
- policy (デフォルトポリシー)
- チェーンのデフォルト動作。acceptやdropなどを設定する。
- verdict (判定)
- ルール適用後の処理決定。accept / drop / reject など。
- comment
- ルールにコメントを付けて説明を加える機能。
- compatibility (互換性)
- iptables のルールを nftables で利用するための互換レイヤー。
- nft list ruleset
- 現在の全ルールセットを表示するコマンド。バックアップにも使える。
- systemd (nftables.service)
- nftables を起動・管理するシステムデーモン。systemd ユニットとして提供される。



















