【ラズパイ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 (bullseye) のインストール・セットアップ
  2. LXTerminal のコマンド一覧(最低限)
  3. nano の操作方法(保存)
  4. ラズパイOSセットアップ直後の設定
  5. ラズパイIPアドレスの固定など
  6. ufw (ファイアーウォール)の設定:この記事
  7. SSH接続でラズパイをリモート操作
  8. Sambaサーバを構築
  9. ローカルWordPress専用Webサーバ構築(SSL対応)

現在位置を把握頂くと、進みやすくなると思います。
当記事がお役に立てれば、嬉しく思います。

脚注

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

コメント