(2023.06)レンタルサーバ変更に伴い、ドメイン変更致しました(旧URL:https://i-topics.net)。

【ラズパイ4】ufw(ファイアウォール)の設定

この記事は約6分で読めます。

当サイトでは上の2つのサーバ構築を「原則、コピー&貼り付け」だけで完了を目指しています。
今回から、Raspberry Pi 4(ラズパイ)サーバ構築最初のステップがスタートします。
他のステップは文末をご覧ください

前提

上記DigitalOceanの2記事でufwコマンドの説明は十分だと思います。

ラズパイはOSセットアップ時にsudo権限を有する一般ユーザーを作成しているため、root化せずに一般ユーザーのままufw設定を行っても大丈夫だと思います。
rootで最後まで設定を進めていくと、rootしか変更できない事態に陥る危険性があります[1]出典:GNU/Linux チュートリアル 注記。そうなると、実務的な利便性が低下するため、rootでの作業は最低限に留めます


但し、念の為、本記事では「エッセンシャルなセットアップであるufwの有効化まで」rootアカウントユーザーで行う例を示しています[2]sudo 権限を有する非rootユーザーでもufwコマンドを実行できますが、DigitalOceanやDebian … Continue reading

ufw (ファイアウォール)とは?

ufw とは、Uncomplicated Firewall(複雑でないファイアウォール)の略です。ファイアウォールを設定するコマンド及びプログラムです。
ラズパイをサーバとして使う場合、開放するポートを管理するセキュリティとして機能します。

例えば、ラズパイサーバへのアクセスを家庭内デバイスだけに制限できたり、
特定の接続(SSHなど)だけを許可したりできます。

ufwを設定していないとWWWからラズパイが見えて外部侵入・攻撃されるリスクが高まるので、
必ずインストール・設定してください。
サーバ構築の最初のステップとなります。

家庭内の範囲だけで使うなら、IPv6のポートを開かないほうが、
セキュリティは高まると思います。(IPv6をufw不許可にする方法はこちら

当サイトで許可するufwは、以下の3つのIPv4(家庭内LAN)からのアクセスだけです。

  1. OpenSSH: 別デバイスからラズパイへのSSH接続時に必要
  2. Samba: ファイルサーバメディアサーバ構築で必要
  3. WWW Secure: 家庭内Webサーバ構築で自己署名SSL接続時に必要

ufwのインストール・有効化・状態確認・許可

ufwをインストール

ufw をインストールします。初回インストールはrootで行ってください。
(rootによるコマンド操作では、行頭にsudoを付けません。)

# root化する
sudo su
# ufw をインストール
apt-get install ufw
Install-ufw-as-root

ufwでSSH を許可する

一番最初に、SSHを許可します。
※ufwを有効化する前にSSHを許可しないと、システムからロックアウトされる可能性があります[3]出典:Debian Wiki
※SSHを使用していなければ、このステップはスキップしてください。

# SSH接続を許可
ufw allow OpenSSH

SSHの有効化との違い

SSHの有効化は、ラズパイにSSH機能の拡張を付加することを指します。
一方、ufwでのSSH許可は、サーバ・クライアントPC間のSSH接続によるデータやり取りを、ufw機能が許可することを指します。

そのため、SSH有効化設定を行ってもufwで許可していなければ、サーバに接続できない状況になります。
(SSHだけに限らず、他のサービスにおいても同様です。)

ufw の有効化

ufw を有効化します。このコマンドでラズパイ起動の都度、ufwが稼働します。

# ufw を有効化
ufw enable

ufw の状態確認

  • この段落以降、rootからログオフして一般ユーザーとして入力していきます。

ufw の状態を確認します。「active」ならOKです。

# rootからログオフ
exit
# ufw の状態を確認
sudo ufw status

IPv6からのアクセスを不許可にする

IPv6からのWWW(家庭内LANの外側)アクセスを一律に不許可にします。
/etc/default/ufwファイルをnanoで編集します。

# IPv6 からのWWWアクセスを不許可
sudo nano /etc/default/ufw

下画像赤枠部分を「no」に編集する。

IPV6=no

nano編集を保存します。

この設定で、IPv6用のポートを開かなくなります。

ufw 設定可能サービスを一覧表示する

以下のコマンドで、現在設定可能なプログラムが一覧されます。

# 許可可能なサービスを一覧化
sudo ufw app list

ufwでSSL(HTTPS)を許可する

WordPressのWebサーバ構築のとき、自己署名SSLで接続するので、SSL用のポート開放を許可します。
※今設定しなくても、サーバ構築時に行えばOKです。
※ラズパイやDebianではサービス名が”Apache Secure”ではなく、”WWW Secure”になっています。

# SSL接続だけを許可
sudo ufw allow "WWW Secure"

ufwでSambaを許可する

Sambaサーバ構築のときに、以下の設定が必要となります。
Sambaをインストールしてからでないと、ufw設定はできません。

# Sambaインストール後に行ってください
sudo ufw allow samba

ufwルールの削除

# 許可しているルールに番号を付けます
sudo ufw status numbered
# Firewall許可済のサービスを削除して不許可にする(画像4番Sambaの場合)
sudo ufw delete 4
YesのYキーを叩く。
Rule deleted で削除される。
# 削除の確認
sudo ufw status # 一覧に無ければ削除されています。Samba(v6)はFirewall不許可になりました。
Delete-ufw

ufw の GUI アプリのインストール

以下のコマンドでGUIのufwアプリをインストールできます[4]出典:Debian Wiki
容量約3.5MB。

sudo apt install gufw

Ubuntu 標準のファイアウォールがインストール出来て、少し嬉しい気持ちになります。

メニュー>設定>ファイアウォール設定ツール

メニューのカスタマイズはこちら

今回はサーバ構築で必須となる設定、ufw(ファイアウォール)設定をご紹介しました。
当記事がお役に立てれば、嬉しく思います。

以下の記事も一緒にどうぞ。

  1. ラズパイOS (bullsey) のインストール・セットアップ
  2. LXTerminal のコマンド一覧(最低限)
  3. nano の操作方法(保存)
  4. ラズパイOSセットアップ直後の設定
  5. ラズパイIPアドレスの固定など
  6. ufw(ファイアウォール)設定
  7. SSH接続でラズパイをリモート操作
  8. Sambaサーバを作ってiCloudを解除
  9. ローカルWordPress専用Webサーバ構築(SSL対応)
  10. Raspberry Pi OS Liteのインストール
  11. Raspberry Pi OS LiteでSambaを設定
  12. ラズパイサーバのWordPressを自動でバックアップ
  13. ラズパイSSDブート&起動しないときの対処方法
  14. MyDNSでドメインを無料取得する
  15. NGINXサーバでWordPressサイト(SSL化済)をWWWへ公開

脚注

脚注
1 出典:GNU/Linux チュートリアル 注記
2 sudo 権限を有する非rootユーザーでもufwコマンドを実行できますが、DigitalOceanDebian Wikiでは初期セットアップはrootで行われているため、本記事も則しています。
3 出典:Debian Wiki
4 出典:Debian Wiki

コメント