Raspberry Pi 5Bでの試み

機器構成
Raspberry Pi 5B(4G)
SSD(USB接続) SSD-PST250U3BA/N 250GB Buffalo

ソフトウェア
OS:Raspberry Pi OS(64bit)
Ubuntu Server22.04LTS(64bit)

Raspberry Pi 5Bで試みたことは、
1.USB-SSDからのRaspberry Pi起動…Raspberry Pi OS
2.USB-SSDからのRaspberry Pi起動…Ubuntu Server
3.NextCloudのインストール
である。

ここでは、Nextcloudサーバーの再構築について記載する。

Nextcloudサーバーの再構築

************************************************************************************************************
ポイント:
NextcloudサーバーのHTTPS化不成功の原因は、既にWebサーバー(Apache2)が存在していたから
************************************************************************************************************

Raspberry Pi 5Bは、USB-SSDにインストールしたUbuntu Server22.04LTS(64bit)で起動している。
USB-SSDによるRaspberry Piの起動に関しては、”ラズパイ応用”を参照ください。

1.IPアドレスの固定
1-1 IPアドレスの確認と変更・固定
NetworkManagerを使用して、IPアドレスを固定します。
・NetworkManagerのインストール・実行
・nmcliコマンドにより、アクセスポイント追加、IPアドレスの固定
を実行します。
手順の詳細は、IPアドレス固定2を参照ください。

1-2 固定したIPアドレスの確認
$ sudo nmcli connection show
[sudo] password for takashi6:
NAME UUID TYPE DEVICE
eth0 42f5a5b9-9341-4df0-b1ae-cf094653e0a6 ethernet eth0
lo 9a28b7dd-adaa-4a8a-847b-b673d8c6da53 loopback lo

$ ip a
1: lo:
inet 127.0.0.1/8 scope host lo
2: eth0:
inet 192.168.0.**/24 brd 192.168.0.255
3: wlan0:
inet 192.168.0.2/24

2.Nextcloudのインストール
2-1 snapのインストール…コマンド実行後の表示は省略
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install snapd

$ sudo snap install core
core 16-2.61.2 from Canonical? installed

2-2 nextcloudのsnapインストール
$ sudo snap install nextcloud
nextcloud 27.1.6snap1 from Nextcloud? installed

2-3nextcloudの動作確認
$ sudo snap start nextcloud
Run service command "start" for services ["apache" "logrotate" "mysql" "nextcloud-cron" "nextcloud-fixer" "php-fpm" "redis-server" "renew-c

3.nextcloudへのアクセス
Window端末のブラウザにて、http://<RaspberryPiのIPアドレス(192.168.0.**)> にアクセスする。
管理者アカウントを作成し、ログイン
推奨アプリインストール…Calender,Contacts,Mail,Nextcloud Office,Notes,Talk

4.信頼できるドメインの設定
・現在の設定確認
$ sudo nextcloud.occ config:system:get trusted_domains
192.168.0.**
・信頼できるドメインの追加と確認
$ sudo nextcloud.occ config:system:set trusted_domains 2 --value=fujilaotour.shop:81
[sudo] password for takashi6:
System config value trusted_domains => 2 set to string fujilaotour.shop:81
$ sudo nextcloud.occ config:system:set trusted_domains 3 --value=fujitako.mydns.jp:81
System config value trusted_domains => 3 set to string fujitako.mydns.jp:81

$ sudo nextcloud.occ config:system:get trusted_domains
192.168.0.**
fujilaotour.shop:81
fujitako.mydns.jp:81

*信頼できるドメインに追加した上記のドメインは、当然DDNSに設定追加している。

5.ファイアーウォール設定
サーバーへのアクセス制御を行う。
但し、現在Webサーバーを公開しているため、port80,443は使用している。Nextcloud用として、port81,444を使うことを考える。
$ sudo ufw allow 22,80,81,443,444,3389/tcp
Rules updated
Rules updated (v6)
$ sudo ufw status
Status: inactive
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y …sshで作業中のため y を入力する
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active

To Action From
-- ------ ----
22,80,81,443,444,3389/tcp ALLOW Anywhere
22,80,81,443,444,3389/tcp (v6) ALLOW Anywhere (v6)

6.ポート開放、ポート変更処理
ルーターでport81、444をNextcloudサーバーに開放します。…詳細省略

Nextcloudサーバーの接続ポート変更の処理…標準では、port80、443に設定されているため、変更が必要
$ sudo snap set nextcloud ports.http=81 ports.https=444

7.各種端末からのアクセステスト(HTTP接続)
設定した信頼できるドメインを使用して、各種端末からの接続テストを実行する。

7-1 Windows端末…NextCloudサーバーと同じLAN内からの接続(HTTP)
信頼できるドメインにブラウザからアクセスする。
ログイン画面が表示されるため、管理者ユーザーとしてログインできることを確認する。

7-2 スマートフォンからのアクセス…NextCloudサーバーと異なるネットからの接続(HTTP)
スマートフォンのWiFiをoffにして、外部インターネット空間からの接続状態にする。

ブラウザから信頼できるドメインにアクセスする。
ログイン画面が表示されたので、管理者ユーザーとしてログインできることを確認する。

8.SSLを使用し、Nextcloud Webインターフェイスを保護する
$ sudo nextcloud.enable-https lets-encrypt

*Nextcloudサーバーにアクセスする特定のドメインfujitako.mydns.jpでのSSL化は成功しなかった。

*************************************************************************************************************************************************
LAN内、LAN外のデバイスから、特定のドメインで、HTTP接続はできた。が、HTTPSでの接続はできなかった。
後日下記の点に気付いた。
・Let's Encryptは、port=80、443の使用を前提としている。
・Nextcloudも、標準的には、port=80、443による外部接続である。
・port=80、443は、Webサーバー(Apache2)にあてており、Nextcloudの外部接続ポートは変更しているので、HTTPS化はできない。
*************************************************************************************************************************************************

参考記事

NextCloud構築はsnapコマンドで一発!インストール方法 | 魔法使いのWebマーケティング

こんにちは。NextCloudを始め各種CMS導入を支援しています、Nakata@まほウェブ (@Mktg_Wizard)です。