ufwの使い方について


はじめに

ufwの使い方についてのメモ。

環境

$ hostnamectl status
   Static hostname: ---
         Icon name: computer-vm
           Chassis: vm
        Machine ID: ---
           Boot ID: ---
    Virtualization: kvm
  Operating System: Ubuntu 20.04.2 LTS
            Kernel: Linux 5.4.0-70-generic
      Architecture: x86-64

初期設定

ufwの状態を確認。inactive なら無効、active なら有効。

$ sudo ufw status

Inactive で無効になっている場合は、下記コマンドで有効化。

$ sudo ufw enable

ufw を無効化したい場合は、下記コマンドを実行。

$ sudo ufw disable

ルールを設定

接続を許可するポート番号を指定して実行。

$ sudo ufw allow < Port Number >

アプリケーションの一覧を確認。

$ sudo ufw app list
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

接続を許可するアプリケーションを指定して実行。

$ sudo ufw allow < アプリケーション名 >

例えば
$ sudo ufw allow 'Nginx Full'

特定IPアドレスからの接続を許可する場合。

$ sudo ufw allow from < IP Address > to any port < Port Number >

例えば、118.27.110.243 から 22番ポート(SSH)に接続を許可する場合
$ sudo ufw allow from 118.27.110.243 to any port 22

設定変更を反映させるために実行。

$ sudo ufw reload

状態とルールを確認。

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)

ルールを削除

ルールのナンバーを確認。

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] Nginx Full                 ALLOW IN    Anywhere
[ 3] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] Nginx Full (v6)            ALLOW IN    Anywhere (v6)

削除したいルールのナンバーを指定して実行。

$ sudo ufw delete < Rule Number >