はじめに
Ubuntuには、UFW(Uncomplicated FireWall)というファイアウォールを設定する機能があります。UFWは、Ubuntuをインストールしたパソコンへの外部からのアクセスを遮断したり、アクセスを許可するポート番号やIPアドレスを設定するソフトウェアです。
このUFWは、通常はCUI(キャラクター・ユーザー・インターフェース)と呼ばれる文字列の命令文(コマンド)で操作します。CUIは、真っ黒のウインドウに命令文を打ち込んで操作するので、慣れないと難しいと感じるかもしれません。
しかし、Ubuntuデスクトップには、UFWをGUI(グラフィカル・ユーザー・インターフェース)で操作するツールをインストールすることができます。GUIは、一般的なソフトウェアのようにキーボードとマウスでソフトウェアを操作するものなので、WindowsやMacを使ってきた人にも簡単に扱うことができます。
今回は、UFWをGUIで操作するツールである「GUFW」をUbuntuデスクトップにインストールして使ってみたいと思います。
GUFWのインストール
UbuntuデスクトップにGUFWをインストールする前に、端末アプリを開いてUbuntuをアップデートします。
$ sudo apt update && sudo apt -y upgrade
GUFWのインストールは、aptコマンドで可能です。端末アプリに以下のコマンドを入力してEnterを押します。
$ sudo apt install -y gufw
GUFWの起動とファイアウォールの有効化
GUFWのインストールが完了したら、アプリ一覧から「ファイアウォール設定ツール」を起動します。

「ファイアウォール設定ツール」を起動すると下の画面が表示されます。下の画面では、「Status」のところがOFFになっているので、ファイアーウォールが無効になっています。

「Status」をONにすると、ファイアウォールが有効になります。

GUFWでファイアウォールを操作
プロファイルの切り替え

上の画面では、プロファイル、Incoming、Outgoingが設定できます。
- プロファイル:デフォルトで自宅、会社、パブリックが設定されています。自分でプロファイルを作ることもできます。プロファイルで設定を保存して、パソコンを使用する場所によってプロファイルを切り替えることができます。
- Incoming:外部からUbuntuデスクトップへのアクセスの制御です。デフォルトではDenyになっていますので、あとで説明するルールに何も設定していなければ、外部からの通信を拒否しています。
- Outgoing:Ubuntuデスクトップから外部へのアクセスの制御です。デフォルトではAllowになっていますので、Ubuntuデスクトップから外部へのアクセスは可能です。ここが許可されていないとインターネットを利用できません。
ルールの追加
ファイアウォールのルールの設定方法には、「サービス」「簡易」「詳細」の3つの方法があります。
サービス
「サービス」は、様々なアプリケーションで必要となるポート番号などの設定が、あらかじめ用意されており、ユーザーは、リストから使用するアプリケーションを選べば設定できるようになっています。非常に多くのアプリケーションの設定が用意されているため、「カテゴリー」や「サブカテゴリー」でリストを絞り込むことができます。

簡易
簡易設定の画面では、指定したポート番号に対するファイアウォールを設定します。任意の名前をつけられるので、あとから見たときに何のための設定なのかがわかりやすくて良いですね。
ポリシーの「Deny」と「Reject」は似たような感じで分かりづらいのですが、「Deny」は拒否というよりも破棄という意味で、外部からの通信を遮断した際に、通信してきた側に何も返さずに遮断します。一方で、「Reject」は通信してきた側に拒否したことを送信します。セキュリティ的には通信を遮断する場合は「Deny」を選択するほうが良いです。
- ポリシー:Allow、Deny、Reject、Limitから選択します。
- 方向:In(Incoming)、Out(Outgoing)、両方から選択します。
- プロトコル:TCP、UDP、両方から選択します。

詳細
詳細設定では、さらに細かい項目を設定することができます。今回、この詳細設定について詳しく解説することはしませんが、ポートへのアクセスについて、特定のIPアドレスからの通信、あるいは特定のIPアドレスへの通信を個別に許可、破棄することも可能です。

おわりに
Ubuntuのファイアウォールは、コマンドによる設定も可能ですが、GUIのほうが操作しやすいという方は、このGUFWをおすすめします。ただ、GUIになったといっても、ポート番号や、アクセスの許可・破棄・拒絶など、ある程度の知識がないとファイアウォールって難しく感じますよね。
筆者は、Ubuntuデスクトップを他のパソコンからSSHで操作するために22番ポート、リモートログインで操作するために3389番ポート、リモートデスクトップで操作するために3390番ポートを開けていますが、特に必要なければ、外部からの通信リクエストであるIncomingは、すべてDeny(破棄)にしておけばセキュリティ上は安心です。
それでは、また