機雷がなんだ! 全速前進!

SEというかプログラマというか、日々のエンジニア生活の中で体験したことなどを中心に書き残しています。

Ubuntu の Firewallツール (UFW:Uncomplicated firewall)を触ってみた

Ubuntu の Firewallツール (UFW:Uncomplicated firewall)で試してみる。

Wikipedia から引用

Uncomplicated Firewall(UFW)は、簡単に使用できるように設計された、netfilter(英語版)ファイアウォールの管理プログラムである。少数のシンプルなコマンドからなるコマンドラインインターフェイスを使用する。内部の設定には、iptablesを使用している。UFWは、8.04 LTS以降のすべてのUbuntuインストールでデフォルトで使用可能である。


はじめに

今回の試行条件は下記のとおりです。

試行環境

今回試した環境は以下(※一応記録しておく)

cat /etc/os-release

実行結果

NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

初期状態

初期状態はインアクティブになっている。

systemctl status ufw

実行結果

● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:ufw(8)

FW設定変更

下記のとおり軽く設定を変更してみる。

TCP接続を許可する

SSH通信用にTCP接続を許可する。

ufw allow 22/tcp

実行結果

Rules updated
Rules updated (v6)

接続を許可する

任意の通信用にTCP/UDP接続を許可する。

ufw allow 80

実行結果

Rules updated
Rules updated (v6)

特定IPからの接続を許可する

特定IP(135.22.65.0/24)から9090ポートへのTCP通信を全て許可する。

ufw allow from 135.22.65.0/24 to any port 9090 proto tcp

実行結果

Rules updated

特定IP(135.22.65.0/24)から9091ポートへのTCP通信を全て許可する。

ufw allow from 135.22.65.0/24 to any port 9091 proto tcp

実行結果

Rules updated

FW有効化

ファイアウォールを有効にして、システム起動時に自動実行されるようにする。

ufw enable

実行結果

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

ファイアウォールはアクティブかつシステムの起動時に有効化されます。

FW実行/停止

手動で実行する

systemctl start ufw

特に何も表示されないため、以下のコマンドでステータスを確認する。

systemctl status ufw

実行結果

● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2023-03-31 22:14:06 EDT; 2s ago
       Docs: man:ufw(8)
    Process: 21145 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
   Main PID: 21145 (code=exited, status=0/SUCCESS)

Mar 31 22:14:06 node01 ufw-init[21149]: Firewall already started, use 'force-reload'

手動で停止する

systemctl stop ufw

特に何も表示されないため、以下のコマンドでステータスを確認する。

systemctl status ufw

実行結果

● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Fri 2023-03-31 22:19:12 EDT; 2s ago
       Docs: man:ufw(8)
    Process: 21145 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
    Process: 21953 ExecStop=/lib/ufw/ufw-init stop (code=exited, status=0/SUCCESS)
   Main PID: 21145 (code=exited, status=0/SUCCESS)

Mar 31 22:14:06 node01 ufw-init[21149]: Firewall already started, use 'force-reload'

参考