Ubuntu Server 標準ファイアウォール ufw の設定方法を紹介します。
Ubuntu 22.04
Ubuntu 22.04 LTS での記事は下記になります。(20.04 より内容を追加され、22.04 でufwを試した記事となっています。
確認環境
- Ubuntu Server 20.04.2 LTS 最小構成インスト-ル状態
ufw 状態確認および起動停止
ufwはインストール直後では停止した状態となっています。
ufw 状態確認( ufw status )
ufw status コマンド状態を確認できます。 active が有効 inactive と表示されていたら停止状態
1 2 3 |
test@ubuntu:~$ sudo ufw status Status: active test@ubuntu:~$ |
1 2 3 |
test@ubuntu:~$ sudo ufw status Status: inactive test@ubuntu:~$ |
詳細表示方法および番号リスト付きのファイアウォールのルールの表示として下記オプションがあります。
- sudo ufw status verbose
- sudo ufw status numbered
ufw 起動 ( enable )
ufw の起動方法
1 2 3 |
test@ubuntu:~$ sudo ufw enable Firewall is active and enabled on system startup test@ubuntu:~$ |
ufw 停止 ( disable )
ufw の停止方法
1 2 3 |
test@ubuntu:~$ sudo ufw disable Firewall stopped and disabled on system startup test@ubuntu:~$ |
ufw ファイアウォール初期動作の確認および変更方法
ufw ファイアウォールは起動した状態では外部(incoming)からのパケットをdeny ( 廃棄 ) 状態となっています。
1 2 3 4 5 6 |
test@ubuntu:~$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip test@ubuntu:~$ |
これらの状態を変更には ufw default で変更することができます。
- deny (廃棄)
- reject (拒絶)
- allow (許可)
が選択できます。デフォルトでは incoming が変更されますが outgoing なども指定可能です
1 2 3 4 5 6 7 8 9 10 |
test@ubuntu:~$ sudo ufw default reject Default incoming policy changed to 'reject' (be sure to update your rules accordingly) test@ubuntu:~$ test@ubuntu:~$ sudo ufw status verbose Status: active Logging: on (low) Default: reject (incoming), allow (outgoing), disabled (routed) New profiles: skip test@ubuntu:~$ |
この設定方式を変更することで 基本廃棄で必要なパケットだけを許可する方式(ホワイトリスト) から 基本許可で不要なパケットを記載する方式(ブラックリスト)に変更することが可能です。
ufw ルールの追加、削除
TCP/UDP 両方のポート番号許可 ルール追加
プロトコルを記載しない場合 TCP / UDP 両方が設定されます。 下記はポート53 (TCP/UDP)が設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
test@ubuntu:~$ sudo ufw allow 53 Rule added Rule added (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 53 ALLOW Anywhere 22/tcp (v6) DENY Anywhere (v6) 53 (v6) ALLOW Anywhere (v6) test@ubuntu:~$ |
TCP / UDP 両方のポート番号許可 ルール削除
上記で設定した TCP/DUP ポート番号 53 のルールの削除
1 2 3 4 5 6 7 8 9 10 11 12 |
test@ubuntu:~$ sudo ufw delete allow 53 Rule deleted Rule deleted (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
TCPのみポート番号許可 ルール追加
TCPプロトコルを指定した上で特定のポート番号を許可 下記は 80/tcp の設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
test@ubuntu:~$ sudo ufw allow 80/tcp Rule added Rule added (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 80/tcp ALLOW Anywhere 22/tcp (v6) DENY Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) test@ubuntu:~$ |
TCPのみポート番号許可 ルール削除
TCPプロトコルを指定した上で特定のポート番号を削除
1 2 3 4 5 6 7 8 9 10 11 12 |
test@ubuntu:~$ sudo ufw delete allow 80/tcp Rule deleted Rule deleted (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
UDPのみポート番号許可 ルール追加
UDPプロトコルを指定した上で特定のポート番号の許可 下記は ポート番号 51820 プロトコル UDP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
test@ubuntu:~$ sudo ufw allow 51820/udp Rule added Rule added (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 51820/udp ALLOW Anywhere 22/tcp (v6) DENY Anywhere (v6) 51820/udp (v6) ALLOW Anywhere (v6) test@ubuntu:~$ |
UDPのみポート番号許可 ルール削除
UDPプロトコルを指定した特定のポート番号のルール削除
1 2 3 4 5 6 7 8 9 10 11 12 |
test@ubuntu:~$ sudo ufw delete allow 51820/udp Rule deleted Rule deleted (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
連続したポート番号許可 ルール追加
連続したポート番号でルールの追加 今回の例は 10500-10599 連続したポート番号 かつ TCP の許可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
test@ubuntu:~$ sudo ufw allow 10500:10599/tcp Rule added Rule added (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 10500:10599/tcp ALLOW Anywhere 22/tcp (v6) DENY Anywhere (v6) 10500:10599/tcp (v6) ALLOW Anywhere (v6) test@ubuntu:~$ |
連続したポート番号許可 ルール削除
連続したポート番号でルールの削除
1 2 3 4 5 6 7 8 9 10 11 12 |
test@ubuntu:~$ sudo ufw delete allow 10500:10599/tcp Rule deleted Rule deleted (v6) test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
アドレス指定での許可 ルール追加
指定アドレス(ネットワーク)を許可するルールの追加 下記は 192.168.0.0/16 からのパケットは許可します。
1 2 3 4 5 6 7 8 9 10 11 12 |
test@ubuntu:~$ sudo ufw allow from 192.168.0.0/16 Rule added test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere Anywhere ALLOW 192.168.0.0/16 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
アドレス指定での許可 ルール削除
指定アドレス(ネットワーク)を許可したルールの削除
1 2 3 4 5 6 7 8 9 10 11 |
test@ubuntu:~$ sudo ufw delete allow from 192.168.0.0/16 Rule deleted test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp DENY Anywhere 22/tcp (v6) DENY Anywhere (v6) test@ubuntu:~$ |
ufw 番号に基づくルール編集
ルールの番号確認 ufw status numbered
上記では番号を意識しないで追加、削除を実施しましたが内部でそれぞれのルールに番号が付与されています。
確認するには ufw status numbered で確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
test@ubuntu:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 53 ALLOW IN Anywhere [ 4] 51820/udp ALLOW IN Anywhere [ 5] Anywhere ALLOW IN 192.168.0.0/16 [ 6] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53 (v6) ALLOW IN Anywhere (v6) [ 9] 51820/udp (v6) ALLOW IN Anywhere (v6) test@ubuntu:~$ |
ルールの左に[ number] が番号になります。 上記の例では 番号2 は 443/tcp がルールになります。
ルール番号からの削除 ufw delete 番号
上記で確認したルール番号から該当のルールを削除することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
test@ubuntu:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 53 ALLOW IN Anywhere [ 4] 51820/udp ALLOW IN Anywhere [ 5] Anywhere ALLOW IN 192.168.0.0/16 [ 6] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53 (v6) ALLOW IN Anywhere (v6) [ 9] 51820/udp (v6) ALLOW IN Anywhere (v6) test@ubuntu:~$ test@ubuntu:~$ sudo ufw delete 3 Deleting: allow 53 Proceed with operation (y|n)? y Rule deleted test@ubuntu:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 51820/udp ALLOW IN Anywhere [ 4] Anywhere ALLOW IN 192.168.0.0/16 [ 5] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 53 (v6) ALLOW IN Anywhere (v6) [ 8] 51820/udp (v6) ALLOW IN Anywhere (v6) test@ubuntu:~$ |
上記の例は ポート53の許可するルールを削除した時のログ
番号の任意箇所にルールの追加
ルールは小さい番号から評価して処理が決定されます。通常のルール設定では、番号の最終行に追加されます。番号を指定することで任意の場所にルールを追加することが可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
test@ubuntu:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 51820/udp ALLOW IN Anywhere [ 4] Anywhere ALLOW IN 192.168.0.0/16 [ 5] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 53 (v6) ALLOW IN Anywhere (v6) [ 8] 51820/udp (v6) ALLOW IN Anywhere (v6) test@ubuntu:~$ test@ubuntu:~$ sudo ufw insert 4 allow 25/tcp Rule inserted Rule added (v6) test@ubuntu:~$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 80/tcp ALLOW IN Anywhere [ 2] 443/tcp ALLOW IN Anywhere [ 3] 51820/udp ALLOW IN Anywhere [ 4] 25/tcp ALLOW IN Anywhere [ 5] Anywhere ALLOW IN 192.168.0.0/16 [ 6] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 7] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53 (v6) ALLOW IN Anywhere (v6) [ 9] 51820/udp (v6) ALLOW IN Anywhere (v6) [10] 25/tcp (v6) ALLOW IN Anywhere (v6) test@ubuntu:~$ |
上記は番号4にルールを追加したログになります。
ufw reset ( 初期化 および ファイアウォール停止 )
設定したufwのルールおよびファイアウォールを無効を reset コマンドで実行できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
test@ubuntu:~$ sudo ufw status Status: active To Action From -- ------ ---- 443/tcp ALLOW Anywhere 443/tcp (v6) ALLOW Anywhere (v6) test@ubuntu:~$ sudo ufw reset Resetting all rules to installed defaults. This may disrupt existing ssh connections. Proceed with operation (y|n)? y Backing up 'user.rules' to '/etc/ufw/user.rules.20210801_055439' Backing up 'before.rules' to '/etc/ufw/before.rules.20210801_055439' Backing up 'after.rules' to '/etc/ufw/after.rules.20210801_055439' Backing up 'user6.rules' to '/etc/ufw/user6.rules.20210801_055439' Backing up 'before6.rules' to '/etc/ufw/before6.rules.20210801_055439' Backing up 'after6.rules' to '/etc/ufw/after6.rules.20210801_055439' test@ubuntu:~$ sudo ufw status Status: inactive test@ubuntu:~$ |
参考サイト
スポンサーリンク
Ubuntu 20.04 LTS Server 記事一覧
Ubuntu 20.04 LTS Server インストール
Ubuntu 20.04 LTS Server 設定記事一覧
- タイムゾーンを日本時間(JST)に変更
- ネットワークの設定 ( IPv4アドレス、DNS(resolve) 、デフォルトゲートウェイ、static route )
- シリアルからコンソールに接続する設定
- ファイアウォール ufw の設定方法