Ubuntu: ufw と Gufw を用いたファイアウォール設定入門

Ubuntu オペレーティングシステムにおいて、ファイアウォールを設定するための基本的な方法を解説します。ファイアウォールは、不正なアクセスからシステムを保護するために不可欠なセキュリティ機能です。

Ubuntu には、コマンドラインインターフェース (CLI) で操作する `ufw` (Uncomplicated Firewall) と、そのグラフィカルユーザーインターフェース (GUI) である `Gufw` が用意されています。この記事では、両方のツールを用いた設定手順を紹介します。

基本的な Linux コマンドの知識があると、よりスムーズに理解できます。

  • コマンドによる設定
  • グラフィカルユーザインタフェースによる設定

1. 前準備: システムの更新

Ubuntu のシステム更新

ファイアウォール設定を行う前に、システムのパッケージリストとインストール済みパッケージを最新の状態にしておくことを推奨します。以下のコマンドをターミナルで実行してください。

Ubuntu のインストール自体については、別途解説記事をご参照ください。) (Ubuntu のインストールは別ページ »で説明)

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# 変更をシステム全体に確実に反映させるために再起動
sudo shutdown -r now

2. コマンドライン (ufw) による設定

`ufw` (Uncomplicated Firewall) は、Ubuntu 標準の使いやすいファイアウォール設定ツールです。以下に基本的なコマンドを示します。

◆ ufw の稼働状況及び設定内容の確認
ファイアウォールが有効か無効か、そして現在設定されているルールを確認します。

sudo ufw status

より詳細な情報を表示するには `verbose` オプションを追加します。

sudo ufw status verbose

◆ ufw を有効にする
ファイアウォールを起動し、システム起動時に自動的に有効になるように設定します。

sudo ufw enable

◆ ufw を無効にする
ファイアウォールを停止します。セキュリティ上、特別な理由がない限り無効にすることは推奨されません。

sudo ufw disable

◆ デフォルトポリシーの設定: 受信接続の拒否 (重要)
許可されていない外部からの受信接続をデフォルトで拒否 (DENY) します。これにより、意図しないポートへのアクセスを防ぎます。セキュリティの基本として強く推奨される設定です。

sudo ufw default deny incoming

(注: `sudo ufw default DENY` は古い記述で、現在は `deny incoming` / `allow outgoing` のように指定することが推奨されます。ただし `DENY` も後方互換性のために機能します。送信はデフォルト `allow` が一般的です。)

sudo ufw default allow outgoing

◆ 特定ポートの開放 (例: SSH)
外部から特定のサービスへアクセスできるようにポートを開放します。例えば、SSH接続 (通常ポート22) を許可する場合は以下のようにします。

sudo ufw allow 22/tcp

(WebサーバーのHTTP (80) や HTTPS (443) を許可する場合は sudo ufw allow 80/tcp, sudo ufw allow 443/tcp または sudo ufw allow http, sudo ufw allow https のように指定します。)

◆ 特定の IP アドレス/範囲からの接続許可
特定の送信元からの接続のみを許可する場合に用います。

# 特定のIPアドレス範囲 (例: 133.5.18.0/24) からの全ての接続を許可
sudo ufw allow from 133.5.18.0/24

# 特定のIPアドレス (例: 133.5.18.167) からの全ての接続を許可
sudo ufw allow from 133.5.18.167

# 特定のIPアドレスから特定のポート (例: SSH) への接続を許可
sudo ufw allow from 133.5.18.167 to any port 22 proto tcp

◆ 設定変更後の確認
ルールを追加・変更した後は、必ず `status` コマンドで意図した通りに設定されているか確認しましょう。

sudo ufw status

3. グラフィカルユーザインタフェース (Gufw) による設定

`Gufw` は `ufw` の設定をグラフィカルな画面で行えるようにするツールです。コマンドライン操作に慣れていない場合に便利です。

Gufw のインストール

以下のコマンドで Gufw をインストールします。

sudo apt -y install gufw

Gufw インストール完了後のターミナル表示例 (参考):

Gufw インストールコマンド実行後のターミナル画面例

Gufw の起動と設定

インストール後、アプリケーションメニュー(アクティビティ画面など)から "Gufw" または "ファイアウォール設定" と検索して起動します。起動時に管理者パスワードを求められる場合があります。

Gufw 起動画面例

Gufw を使用したファイアウォールの設定手順は以下の通りです。

  1. 有効化: Gufw のメイン画面で、「状態 (Status)」のスイッチをクリックしてオンにし、ファイアウォールを有効化します。
  2. デフォルトポリシー: 「着信 (Incoming)」を「拒否 (Deny)」、「発信 (Outgoing)」を「許可 (Allow)」に設定することが一般的です。(ufw の `default deny incoming`, `default allow outgoing` に相当します。)
  3. ルールの追加:
    • 「ルール (Rules)」タブを開き、「+」ボタンをクリックします。
    • 「既定 (Preconfigured)」タブでは、一般的なアプリケーション(SSH, HTTP, HTTPS など)のルールを簡単に追加できます。
    • 「シンプル (Simple)」タブでは、ポート番号、プロトコル (TCP/UDP)、許可/拒否を指定してルールを作成できます。
    • 「詳細設定 (Advanced)」タブでは、送信元/宛先の IP アドレスやポートを指定した、より複雑なルールを作成できます。
    • ルールを作成したら「追加 (Add)」ボタンをクリックします。
  4. ルールの確認: 追加されたルールがリストに表示され、意図通りに設定されているか確認します。不要になったルールは選択して「-」ボタンで削除できます。
  5. ルール追加の例 (例: SSH許可): 以下は「既定」タブからSSHを許可するルールを追加した後の画面例です。
    Gufw で SSH 許可ルールを追加した例

まとめ

この記事では、Ubuntu におけるファイアウォール設定の基本として、コマンドラインツール `ufw` と GUI ツール `Gufw` の使い方を紹介しました。

ファイアウォールはシステムセキュリティの重要な要素です。自身の環境に合わせて適切なルールを設定し、定期的に見直すようにしましょう。

より詳細な情報については、Ubuntu 公式の UFW ドキュメントなどを参照してください。