Arch Linux向けファイアウォール徹底比較:ufw vs firewalld vs iptables
Arch Linuxで使えるファイアウォールツールufw、firewalld、iptablesを比較。各ツールの概要、設定方法、長所短所を解説し、初心者から上級者までのおすすめを紹介します。
はじめに
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との統合も強力です。
比較表
| 項目 | iptables | ufw | firewalld |
|---|---|---|---|
| 設定の難易度 | 難しい(ルール記述) | 簡単(コマンド数少) | 中程度(ゾーン概念) |
| 動的設定 | 不可(再起動でリセット) | 可能(即時反映) | 可能(Runtime/Permanent) |
| ルール管理 | 手動でルールチェーン編集 | シンプルな許可/拒否 | ゾーンとサービス |
| 永続化 | iptables-save/restore | ufw enableで自動 | systemdサービス |
| デフォルト設定 | すべて許可(未設定時) | デフォルト拒否 | デフォルト拒否(publicゾーン) |
| ログ機能 | 豊富(ログルール追加) | 簡易(有効/無効) | 詳細(ゾーン別ログ) |
| 対応パッケージ | iptables | ufw | firewalld |
| Arch Linuxでの利用 | 標準、最小構成 | 追加インストール | 追加インストール |
長所と短所
iptables
長所短所
ufw
長所ufw allow 22/tcpなど)短所
firewalld
長所firewall-cmd --add-service=httpのように簡単短所
おすすめの選び方
初心者・簡単にセキュリティを高めたい場合 → 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に移行するのも良いでしょう。
セキュリティは常に最新の状態を保つことが重要です。定期的にルールを見直し、不要なポートは閉じるように心がけてください。