Ubuntu 18.04: UFWでファイアウォール制御

UFWでファイアウォールを制御する手順を記載します。

1 UFWのインストール

ufwパッケージをインストールします。

$ sudo apt install -y ufw
$ sudo systemctl enable ufw
$ sudo systemctl restart ufw

2 ロギング

ロギングを有効化することで/var/log/ufw.logにログが残ります。

$ sudo ufw logging on

ロギングを無効化するには以下を実行します。

$ sudo ufw logging off

3 ルールの追加

ufw allowでポートを指定してポート開放します。

$ sudo ufw allow 22/tcp

/etc/servicesのサービス名も指定できます。

$ sudo ufw allow ssh

各種アプリケーション向けのポートを記述した設定ファイルが用意されています。sambaのように複数のポートを使うサービスもあるので、こちらを利用すると良いでしょう。

$ ls /etc/ufw/applications.d/
cups  openssh-server  samba
$ cat /etc/ufw/applications.d/openssh-server
[OpenSSH]
title=Secure shell server, an rshd replacement
description=OpenSSH is a free implementation of the Secure Shell
protocol.
ports=22/tcp

この記事では設定ファイルを使用します。

$ sudo ufw allow OpenSSH

同様に特定のポートを拒否する場合はufw denyを使います。

$ sudo ufw deny <port>

4 ルールの表示

ufw statusで現在の許可・拒否したポートの一覧が表示されます。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

5 ルールの削除

ufw deleteで許可・拒否したポートを削除します。

$ sudo ufw delete allow <port>
$ sudo ufw delete deny <port>

6 UFWの有効化

有効化すると許可したポート以外は拒否されるようになります。 OpenSSHを許可していない場合、以降のSSHセッションは拒否されるので注意が必要です。

$ yes | sudo ufw enable

yesコマンドで以下の応答に答えています。

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

7 gufwでGUIでファイアウォール制御

gufwはGUIでufwを実行します。

$ sudo apt install -y gufw

gufw起動時にユーザのパスワードを求められます。

0001_Authentication.png

gufwが起動します。すでにufwを有効にしているのでStatusはONになっています。

0002_gufw.png

Rulesのタブを表示して、画面下部の"+"を押してルールを追加します。 PreconfiguredのタブのApplicationから許可するアプリケーションのルールを選択します。SAMBAの場合は137,138/udpと139,445/tcpが許可されます。 Simpleのタブからだとポート番号を指定した許可が可能です。

0003_AddAFirewallRule.png