Ubuntu: ufw と Gufw を用いたファイアウォール設定入門
Ubuntu でファイアウォールを設定する方法を説明する。ファイアウォールは、通信をルールに従って許可または拒否する機能である。
Ubuntu には、コマンドで操作する ufw (Uncomplicated Firewall) と、その画面操作用のツールである Gufw がある。この記事では、両方のツールでの設定手順を説明する。
Linux コマンドの基本を知っていると理解しやすい。
- コマンドによる設定
- グラフィカルユーザインタフェースによる設定
1. 前準備: システムの更新
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 での設定手順は次の通りである。
- 有効化: メイン画面の「状態 (Status)」のスイッチをクリックしてオンにし、ファイアウォールを有効にする。
- デフォルトポリシー: 「着信 (Incoming)」を「拒否 (Deny)」、「発信 (Outgoing)」を「許可 (Allow)」に設定する。これは ufw の
default deny incoming、default allow outgoingと同じ設定である。 - ルールの追加:
- 「ルール (Rules)」タブを開き、「+」ボタンをクリックする。
- 「既定 (Preconfigured)」タブでは、SSH, HTTP, HTTPS などのアプリケーション名を選んでルールを追加できる。
- 「シンプル (Simple)」タブでは、ポート番号、プロトコル (TCP/UDP)、許可・拒否を指定してルールを作成できる。
- 「詳細設定 (Advanced)」タブでは、送信元・宛先の IP アドレスやポートを指定したルールを作成できる。
- 指定した後、「追加 (Add)」ボタンをクリックする。
- ルールの確認と削除: 追加したルールが一覧に表示されるので、設定内容を確認する。不要なルールは選択して「-」ボタンで削除する。
- ルール追加の例 (SSH の許可): 「既定」タブから SSH を許可するルールを追加した後の画面例は次の通りである。
まとめ
この記事では、Ubuntu でのファイアウォール設定として、コマンドで操作する ufw と、画面操作で設定する Gufw の使い方を説明した。
sudo ufw enableでファイアウォールを有効にし、sudo ufw default deny incomingで受信のデフォルトポリシーを拒否に設定する。- SSH や HTTP など必要なサービスのポートを
sudo ufw allowで開放する。 - Gufw を使うと、同じ設定を画面操作で行える。
ufw のオプションの一覧は man ufw で確認できる。次の資料も参照できる。