Raspberry Pi 4BにUbuntu20.04でサーバー構築し、Nextcloudを導入してみた。第1回


第1回 現在のページ

  • Ubuntuのインストール
  • Raspberry Piの準備
  • キーボード・ユーザー設定
  • プライベートIPアドレス固定化

第2回

  • SSH公開鍵認証
  • サーバー側ファイアウォール
  • swap領域の作成
  • タイムゾーン・ホスト名設定など

第3回

  • SSDマウント
  • ドメイン取得・DDNS設定
  • Nextcloudインストール
  • サーバー・ルーターのポート開放
  • SSL証明書取得

第4回

  • Nextcloudへの外付けSSD認識
  • 2要素認証
  • 通知メール設定
  • 主な参考元

※第2回以降は限定公開となっておりますが、どなたでも閲覧して構いません。

先に用意するもの

Raspberry Pi 4B (妥協するなら3Bでも可)
8GB以上のmicroSD
SSD(usb3.0以上対応)
usbタイプのキーボード
HDMIケーブルと対応するモニター
イーサネットケーブル(Cat6以上推奨)
PC(私はWindows 10 OSのものを使用)

1. Ubuntuのインストール

まず、PCでラズベリーパイ公式サイトよりRaspberry Pi Imagerをダウンロード。
8GB以上のMicroSDをPCに差し込む。
ダウンロードしたimagerをインストールし、起動。
imagerが起動したら、OSはubuntu server 20.04 LTSを選び、挿入したSDカードを選択して書き込む。

2. Raspberry Piの準備~起動

付属の説明書通りに組み立てます。私はビニル手袋を嵌めて作業しました。
各差込口がきちんと嵌まっているかよく確認してネジ止め。
組みあがったら、ubuntuをインストールしたSDカード、usbキーボード、ルータと繋いだイーサネットケーブル、モニタに繋いだHDMIを予め差し込んでから起動。

初回ログインは

login: ubuntu
password: ubuntu

でログインします。
(ちなみに私の場合、何故か上記のとおり入力して何度やっても上手くいかず、翌日になると正常にログイン出来ました・・・)
初回ログイン直後に現在のパスワードubuntuと新しいパスワードの入力を求められるので、入力完了したらいよいよ各種設定です。

3. キーボード・ユーザー設定

ラズパイ版ubuntuでは最初にキーボードレイアウトを日本語に設定する必要があります。

$ sudo dpkg-reconfigure keyboard-configuration

で対話形式の設定画面に移り、
Generic 105-key PC (Intl.)

Japanese

Japanese

The default for the keyboard layout

No compose key
と選択して設定完了後、再起動すると反映されます。

次に、デフォルトのubuntuユーザーを使うことはセキュリティ上好ましくないので、新たなユーザーを追加した上でユーザーubuntuを削除します。

$ sudo adduser ユーザー名

でユーザーを追加出来ます。ユーザー名の先頭はa-z以後はa-zと0-9しか使用出来ないことに注意(環境変数を変更することで他の文字も使用出来ますがここでは割愛)。

加えて、sudoコマンドでルート権限で実行できるように、以下のコマンドでユーザーをグループsudoへ追加します。

$ sudo gpasswd -a ユーザー名 sudo

再起動した後、新しいユーザー名でログインし、

$ sudo userdel -r ubuntu

でデフォルトユーザーを削除して完了です。

4. プライベートIPアドレスの固定化

PCからSSH接続でサーバー設定を行うため、プライベートIPアドレスを固定化します。

$ sudo vi /etc/netplan/99-config.yaml

でファイルを開き、以下の様にネットワーク設定を書き込みます。

network
     version: 2
     renderer: networkd
     ethernets:
           eth0:
                dhcp4: false
                dhcp6: false
                addresses: [   .   .   .   /24 ] 空欄にサーバーに設定するIPアドレスを入力
                gateway4:    .   .   .   空欄にデフォルトゲートウェイのIPアドレスを入力
                nameservers:
                      addresses: [   .   .   .   , 8.8.8.8 ] 空欄にDNSサーバーのIPアドレスを入力

各種IPアドレスの設定は、コマンドプロンプト(Win)のipconfig /allなどでLANのサブネット及び、デフォルトゲートウェイ、DNSサーバのアドレスを確認した上で行ってください。

下記コマンドで設定を反映。

$ sudo netplan apply

その後、以下のコマンドでeth0がstate UPinetの欄が設定されたIPアドレスになっていれば成功です。

$ ip addr

ここまで出来たら、PCでPuTTYをダウンロードし、Host Name欄にサーバーのIPアドレスを、Port欄に22と入力、Connection typeのSSHを選択することでSSHでのログインが可能です。

初回起動時には接続先が正しいかを確認されますがyesで大丈夫です。これによってホスト認証キーがPC側にも保存され、以後は確認されなくなります。