linux security firewall devops sysadmin

モダン Linux ファイアウォール設定ガイド:Iptables から Nftables へ

モダンな Linux ファイアウォール設定をマスターしましょう。nftables 規則ジェネレーター、firewalld 規則ジェネレーターの使用方法と、インフラの保護について学びます。

2026-04-12

モダン Linux ファイアウォール設定ガイド

Linux セキュリティの世界において、ファイアウォールは最初の防衛線です。数十年にわたり、iptables はパケットフィルタリングの誰もが認める王者でした。しかし、Linux カーネルは進化し、それに伴いネットワークトラフィックを管理するためのツールも進化しました。今日、nftables が iptables に代わる推奨バックエンドとなり、firewalld のような上位レベルのツールによって複雑な設定がより身近なものになりました。

このガイドでは、モダンな Linux ファイアウォールの状況を概説し、レガシーなコマンドからモダンで高性能なルールセットへの移行を支援します。


1. 進化:Iptables から Nftables へ

iptables は依然として広く使用されていますが、大規模なルールセットの更新が遅く、拡張が難しいといった構造的な制限がいくつかあります。

Nftables 規則ジェネレーター

nftables はこれらの問題を解決するために設計されました。よりクリーンな構文を使用し、IPv4 と IPv6 の両方に単一のフレームワークを提供します。nftables 規則ジェネレーター は、新しい構文を暗記することなく高性能なルールを構築するための優れた方法です。

nftables の主な利点:

  • パフォーマンス: アトミックな更新と高速なマッチングエンジン。
  • 統合されたルール: iptablesip6tables コマンドを別々に使用する必要がありません。
  • セットとマップ: 単一のルールで数千の IP アドレスを効率的に処理できます。

SSH を許可する nftables ルールの例:

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        tcp dport 22 accept
    }
}

2. 動的なファイアウォール管理:Firewalld

多くのディストリビューション(RHEL、Fedora、CentOS など)では、firewalld がデフォルトの管理ツールです。これは動的でゾーンベースのファイアウォール管理アプローチを提供します。

Firewalld 規則ジェネレーター

変更を適用するためにフルリロードが必要な(既存の接続が切断される)従来のファイアウォールとは異なり、firewalld は動的な更新を可能にします。firewalld 規則ジェネレーター は、以下の管理を支援します。

  • ゾーン (Zones): インターフェースを異なる信頼レベル(例:publicinternaldmz)に割り当てます。
  • サービス: httphttpsssh などの定義済みサービスを有効にします。
  • リッチルール (Rich Rules): レート制限や特定のトラフィックのロギングなど、より複雑なルールを作成します。

一般的な firewalld コマンド:

  • firewall-cmd --get-active-zones
  • firewall-cmd --zone=public --add-service=https --permanent
  • firewall-cmd --reload

3. モダンファイアウォールのベストプラクティス

どのツールを選択しても、特定のセキュリティ原則は共通しています。

  1. デフォルト拒否 (Default Deny): すべての入力トラフィックを破棄するポリシーから始め、必要なものだけを明示的に許可します。
  2. 最小権限 (Least Privilege): 可能な限り、特定のサービスへのアクセスを特定の IP アドレスに制限します(例:オフィスの VPN からのみ SSH を許可する)。
  3. ステートフルインスペクション: ファイアウォールが接続の状態を追跡するようにします(例:「関連」および「確立」されたトラフィックを許可する)。
  4. ロギングと監査: 攻撃や誤設定の診断に役立てるため、破棄されたパケットをログに記録します。
  5. IPv6 への対応: ファイアウォールルールが IPv4 と IPv6 の両方のスタックをカバーしていることを確認します。

4. まとめ:適切なツールの選択

  • Nftables を使用する: 最高のパフォーマンスが必要な場合、ルーター/ゲートウェイを構築している場合、またはクリーンでスクリプト可能な構文を好む場合。
  • Firewalld を使用する: Red Hat 系のシステムを使用していて、動的更新をサポートするユーザーフレンドリーなゾーンベースの管理インターフェースが必要な場合。
  • UFW (Uncomplicated Firewall) を使用する: Ubuntu または Debian を使用していて、いくつかのオープンポートを管理する最もシンプルな方法が必要な場合。

モダンな nftables および firewalld 規則ジェネレーター を活用することで、壊れやすいレガシースクリプトから脱却し、Linux インフラストラクチャに対して堅牢でスケーラブルなセキュリティ体制を構築できます。