Arch Linux向けファイアウォール徹底比較:ufw vs firewalld vs iptables

Arch Linuxで使えるファイアウォールツールufw、firewalld、iptablesを比較。各ツールの概要、設定方法、長所短所を解説し、初心者から上級者までのおすすめを紹介します。

Arch Linuxファイアウォールufwfirewalldiptablesセキュリティ2026/5/25

はじめに

Arch Linuxは軽量でカスタマイズ性の高いディストリビューションですが、セキュリティは自力で設定する必要があります。特にファイアウォールは基本中の基本です。本記事では、Arch Linuxで利用可能な主要なファイアウォールツール「ufw」「firewalld」「iptables」を比較し、それぞれの特徴や使い方を解説します。

各ツールの概要

iptables

iptablesはLinuxカーネルのNetfilterフレームワークを操作する伝統的なファイアウォールツールです。ルールベースでパケットフィルタリングを行い、非常に細かい制御が可能です。Arch Linuxではデフォルトでインストールされており、iptablesパッケージで提供されます。設定はコマンドラインから直接ルールを追加するか、iptables-save/iptables-restoreで永続化します。

ufw (Uncomplicated Firewall)

ufwはiptablesのフロントエンドとして動作する、シンプルなファイアウォール管理ツールです。Ubuntuで標準採用されており、初心者にも扱いやすいコマンド体系が特徴。Arch Linuxではufwパッケージをインストールして使用します。

firewalld

firewalldは動的ファイアウォール管理デーモンで、ゾーンとサービス単位でルールを管理します。FedoraやRHEL系で標準ですが、Arch Linuxでもfirewalldパッケージで利用可能。D-Bus経由で設定を動的に変更でき、NetworkManagerとの統合も強力です。

比較表

項目iptablesufwfirewalld
設定の難易度難しい(ルール記述)簡単(コマンド数少)中程度(ゾーン概念)
動的設定不可(再起動でリセット)可能(即時反映)可能(Runtime/Permanent)
ルール管理手動でルールチェーン編集シンプルな許可/拒否ゾーンとサービス
永続化iptables-save/restoreufw enableで自動systemdサービス
デフォルト設定すべて許可(未設定時)デフォルト拒否デフォルト拒否(publicゾーン)
ログ機能豊富(ログルール追加)簡易(有効/無効)詳細(ゾーン別ログ)
対応パッケージiptablesufwfirewalld
Arch Linuxでの利用標準、最小構成追加インストール追加インストール

長所と短所

iptables

長所
  • 細かい制御が可能(特定のポート、IP、プロトコル、ステートフルルールなど)
  • 軽量で依存関係が少ない
  • シェルスクリプトで自動化しやすい
  • 他のツールの基盤として動作
  • 短所

  • ルール記述が複雑で学習コストが高い
  • 動的な変更が難しく、再起動でリセットされる(永続化には別途設定が必要)
  • ルールの順序管理が煩雑
  • ufw

    長所
  • コマンドが直感的で覚えやすい(ufw allow 22/tcpなど)
  • デフォルトで拒否ポリシーが適用されるため、すぐに安全
  • 初心者でも簡単に設定可能
  • 短所

  • iptablesの全機能を使えない(高度なルールは直接iptablesを編集する必要あり)
  • 大量のルールがあると管理が煩雑になる
  • ログ機能が限定的
  • firewalld

    長所
  • ゾーン概念により、ネットワークインターフェースごとに異なるポリシーを適用できる
  • 動的な設定変更が可能で、Runtime/Permanentを分けて管理
  • NetworkManagerと統合され、ネットワーク変更時に自動でゾーン切り替え
  • サービス定義が豊富で、firewall-cmd --add-service=httpのように簡単
  • 短所

  • ゾーンやサービスの概念に慣れが必要
  • iptablesに比べてオーバーヘッドがある
  • 複雑なルール(カスタムモジュールなど)は直接iptablesを併用する必要がある
  • おすすめの選び方

    初心者・簡単にセキュリティを高めたい場合 → ufw

    コマンドが少なく、すぐに使い始められます。デフォルト拒否のポリシーで安全。SSHやWebサーバーなど、必要なサービスだけ許可する設定が簡単です。

    ネットワーク環境が頻繁に変わる場合 → firewalld

    ノートPCなど、異なるネットワークに接続する場合に便利。ゾーン(home, public, workなど)を自動切り替えでき、各環境に応じたルールを適用できます。

    サーバー運用・細かい制御が必要な場合 → iptables

    軽量で、カスタムルールを自由に記述できます。特定のIPのみ許可、レート制限、ログ出力など、高度な設定が必要なサーバー向け。

    中級者・バランス重視 → firewalld

    ゾーン機能を活かしつつ、iptablesの直接編集も併用することで、柔軟性と管理容易性を両立できます。

    インストールと基本設定例

    iptablesの基本設定

    <h1>インストール(通常はデフォルトでインストール済み)</h1>
    sudo pacman -S iptables
    

    <h1>現在のルールを表示</h1> sudo iptables -L -n -v

    <h1>SSH(22/tcp)を許可するルールを追加</h1> sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    <h1>デフォルトポリシーをDROPに設定(注意:SSH許可後に実行)</h1> sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT

    <h1>ルールを永続化</h1> sudo iptables-save > /etc/iptables/iptables.rules sudo systemctl enable iptables.service sudo systemctl start iptables.service

    ufwの基本設定

    <h1>インストール</h1>
    sudo pacman -S ufw
    

    <h1>デフォルトポリシーを設定(拒否)</h1> sudo ufw default deny

    <h1>SSHを許可</h1> sudo ufw allow ssh

    <h1>ファイアウォールを有効化</h1> sudo ufw enable

    <h1>ステータス確認</h1> sudo ufw status verbose

    firewalldの基本設定

    <h1>インストール</h1>
    sudo pacman -S firewalld
    

    <h1>サービスを有効化・起動</h1> sudo systemctl enable firewalld.service sudo systemctl start firewalld.service

    <h1>デフォルトゾーンを確認</h1> sudo firewall-cmd --get-default-zone

    <h1>SSHサービスを許可</h1> sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload

    <h1>ゾーンを変更(例:publicからhomeへ)</h1> sudo firewall-cmd --set-default-zone=home


    *この記事はArch Linuxを実機で日常運用しているSioが、実際のインストール・設定経験に基づいてAI生成コンテンツをレビュー・補完しています。btrfsサブボリュームとLUKS暗号化環境で検証済みです。*

    まとめ

    Arch Linuxでファイアウォールを選ぶ際は、用途とスキルレベルに応じて最適なツールを選びましょう。初心者にはufw、ネットワーク切り替えが多いモバイル環境にはfirewalld、サーバーで細かい制御が必要ならiptablesがおすすめです。どのツールもArch Linuxのリポジトリから簡単にインストールでき、コミュニティの情報も豊富です。まずはufwかfirewalldから始めて、必要に応じてiptablesに移行するのも良いでしょう。

    セキュリティは常に最新の状態を保つことが重要です。定期的にルールを見直し、不要なポートは閉じるように心がけてください。