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

Ubuntu でファイアウォールを設定する方法を説明する。ファイアウォールは、通信をルールに従って許可または拒否する機能である。

Ubuntu には、コマンドで操作する ufw (Uncomplicated Firewall) と、その画面操作用のツールである Gufw がある。この記事では、両方のツールでの設定手順を説明する。

Linux コマンドの基本を知っていると理解しやすい。

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

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

Ubuntu のシステム更新

ファイアウォールの設定前に、パッケージを最新の状態にする。端末で次のコマンドを実行する。

(Ubuntu のインストールは別ページ »で説明)

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを更新 (依存関係の変更も含めて更新)
sudo apt full-upgrade
# 更新内容を反映させるために再起動
sudo shutdown -r now

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

ufw (Uncomplicated Firewall) は、Ubuntu に標準で入っているファイアウォール設定ツールである。基本的なコマンドを次に示す。

◆ ufw の稼働状況および設定内容の確認
ファイアウォールが有効か無効か、および設定されているルールを確認する。端末で次のコマンドを実行する。

sudo ufw status

デフォルトポリシーやログの設定も表示したいときは、端末で次のコマンドを実行する。

sudo ufw status verbose

◆ ufw を有効にする
ファイアウォールを開始し、次回のシステム起動時にも有効になるように設定する。端末で次のコマンドを実行する。

sudo ufw enable

◆ ufw を無効にする
ファイアウォールを停止し、次回のシステム起動時にも無効のままにする。端末で次のコマンドを実行する。

sudo ufw disable

◆ デフォルトポリシーの設定
ルールに一致しない通信の扱いを決めるのがデフォルトポリシーである。受信 (incoming) を拒否、送信 (outgoing) を許可とするのが ufw の標準の設定である。この設定にするには、端末で次のコマンドを実行する。

sudo ufw default deny incoming
sudo ufw default allow outgoing

受信を拒否に設定すると、次に説明する allow で明示的に許可したポート以外への外部からの接続は遮断される。

◆ 特定ポートの開放 (例: SSH)
外部から特定のサービスへ接続できるようにポートを開放する。SSH (TCP ポート 22) を許可するには、端末で次のコマンドを実行する。

sudo ufw allow 22/tcp

Web サーバの HTTP (80) や HTTPS (443) を許可するときは、端末で次のコマンドを実行する。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

◆ 特定の 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

◆ ルールの削除
ルールを番号付きで一覧表示し、番号を指定して削除する。端末で次のコマンドを実行する。

sudo ufw status numbered
sudo ufw delete 1

◆ 設定変更後の確認
ルールを追加・変更した後は、設定内容を確認する。端末で次のコマンドを実行する。

sudo ufw status verbose

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

Gufw は、ufw の設定を画面操作で行うツールである。設定内容は ufw と共通である。

Gufw のインストール

端末で次のコマンドを実行する。

sudo apt -y install gufw

Gufw のインストール後の端末の画面例は次の通りである。

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

Gufw の起動と設定

インストール後、アプリケーションの一覧 (アクティビティ画面) で「Gufw」または「ファイアウォール設定」を検索して起動する。起動時に管理者パスワードの入力を求められる場合がある。

Gufw 起動画面例

Gufw での設定手順は次の通りである。

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

まとめ

この記事では、Ubuntu でのファイアウォール設定として、コマンドで操作する ufw と、画面操作で設定する Gufw の使い方を説明した。

ufw のオプションの一覧は man ufw で確認できる。次の資料も参照できる。