iptablesとnftablesの違いと基本的な使い方をわかりやすく解説【Linuxのパケットフィルタ入門】

nftables iptables ITインフラ
この記事は約4分で読めます。

この記事の最終更新日: 2025年5月29日

Linuxサーバーのセキュリティ対策として必須の「パケットフィルタリング」。その中心となるのが iptablesnftables です。この記事では、これらの違いや基本的な使い方を、初心者向けにやさしく解説します。

nftables iptables

パケットフィルタとは?

パケットフィルタとは、ネットワークを流れるデータ(パケット)を、特定のルールに基づいて「通す」または「ブロックする」仕組みです。Linuxではこれをカーネルレベルで制御する機能が組み込まれており、その制御のためのツールが iptablesnftables です。


iptablesとは?

特徴

  • Linuxで長年使われてきた標準的なパケットフィルタリングツール
  • ルールを「テーブル」「チェイン」「ルール」の3段階で構成
  • 非常に柔軟で、NAT(アドレス変換)やパケットの記録も可能

テーブルとチェインとは?

  • テーブル:フィルタリングの目的ごとに分かれており、主に「filter」「nat」「mangle」などがあります。
  • チェイン:処理の流れに応じて分かれており、「INPUT」「OUTPUT」「FORWARD」などが存在します。

主なコマンド例

# すべての設定を表示
sudo iptables -L -n -v

# 80番ポート(HTTP)を許可
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# デフォルトポリシーをDROPに設定
sudo iptables -P INPUT DROP

# 設定の保存(ディストリによって方法が異なる)
sudo iptables-save > /etc/iptables/rules.v4


nftablesとは?

特徴

  • iptables に代わる 次世代のパケットフィルタリングツール
  • より効率的な内部構造と柔軟な文法を採用
  • 1つの構成ファイルで複雑な設定も整理可能
  • Fedora、Debian、Ubuntuなど多くの最新Linuxディストリビューションで標準採用されつつある

iptablesとの違い

  • パフォーマンスとメンテナンス性が向上
  • 状態管理やマスカレード処理などが簡潔に記述できる
  • テーブルやチェインの構造は似ているが、文法は独自

主なコマンド例

# 現在の設定を確認
sudo nft list ruleset

# 新しいルールセットの作成
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0; }
sudo nft add rule inet filter input tcp dport 80 accept

# 設定の保存
sudo sh -c 'nft list ruleset > /etc/nftables.conf'


iptablesとnftablesの比較

比較項目iptablesnftables
登場時期古くから利用2014年以降登場(Linux 3.13〜)
構文iptables独自の構文より柔軟な独自構文
パフォーマンス良好だが処理がやや複雑より高速・軽量
保守性スクリプトが複雑化しやすい設定が構造化されていて読みやすい
状態管理の柔軟性限定的より強力
サポート状況将来的に非推奨になる可能性がある各ディストリで標準化が進行中

どちらを使うべき?

既存のシステムで iptables が動いているなら:

急いで nftables に移行する必要はありませんが、将来的なことを見据えて徐々に移行を検討しましょう。

新規システムで導入するなら:

nftables を使うのが推奨されます。構文が一貫しており、拡張性と可読性に優れています。


まとめ

  • iptables は長年使われてきた信頼性あるツールだが、構文が複雑化しやすい
  • nftables は次世代のフィルタツールとして高機能かつ柔軟な設計
  • 新しいシステムでは nftables の採用が推奨される
  • どちらを使うにせよ、自身のLinux環境や用途に合った選択をしましょう

コメント

タイトルとURLをコピーしました