Tutorial

Ubuntu 20.04にNextcloudをインストールして設定する方法

UbuntuApplicationsStorageUbuntu 20.04

はじめに

ownCloudからフォークしたNextcloudは、Dropboxのようにドキュメントや写真などの個人的なコンテンツを集中的に保存できるファイル共有サーバーです。Nextcloudの違いは、すべての機能がオープンソースであることです。また、機密データの制御とセキュリティをユーザーに戻すため、サードパーティのクラウドホスティングサービスの使用が不要になります。

このチュートリアルでは、Ubuntu 20.04サーバーで、Nextcloudインスタンスをインストールして設定します。

前提条件

このガイドの手順を完了するには、次が必要です。

  • サーバー上で設定されたroot以外のsudoユーザーとファイアウォールsudoユーザーを作成し、基本的なファイアウォールをセットアップするには、Ubuntu 20.04の初期サーバーセットアップを参照してください。
  • (オプション)サーバーを指すドメイン名: Nextcloudインストールへの接続をTLS / SSLで保護します。Nextcloudはサーバーにドメイン名がある場合、Let’s Encryptから無料の信頼できるSSL証明書を設定・管理できます。そうでない場合、Nextcloudは接続を暗号化できる自己署名SSL証明書を設定できますが、Webブラウザではデフォルトで信頼されません。Let’s EncryptとDigitalOceanを併用する場合には、DNSドキュメントを参照して、アカウントにドメインを追加しDNSレコードを管理する方法をご確認ください。 

上記の手順を完了したら、サーバーでNextcloudをセットアップする方法の学習に進みます。

ステップ1 – Nextcloudのインストール

Snapパッケージングシステムを使用してNextcloudをインストールします。このパッケージングシステムはUbuntu 20.04でデフォルトで提供されます。自動更新機能を備えた自己完結型ユニットに関連するすべての依存関係と設定を併せたソフトウェアの積み込みが可能になります。つまり、Webサーバーとデータベースサーバーをインストールして設定し、それからNextcloudアプリケーションがサーバー上で稼働するように設定するのではなく、基礎となるシステムを自動的に処理するSnapパッケージがインストールできるのです。

Nextcloud Snapパッケージをダウンロードしてシステムにインストールするには次のように入力します。

  • sudo snap install nextcloud

Nextcloudパッケージがダウンロードされ、サーバーにインストールされます。インストールプロセスが成功したことを確認するには、Snapに関連する変更を一覧表示します。

  • snap changes nextcloud
Output
ID Status Spawn Ready Summary 4 Done today at 16:12 UTC today at 16:12 UTC Install "nextcloud" snap

StatusとSummaryは、インストールが問題なく完了したことを示しています。

Nextcloud Snapに関する追加情報の取得

Nextcloud Snapについて詳細な情報を得るのに役立つコマンドがいくつかあります。

snap infoコマンドは、説明、使用可能なNextcloud管理コマンド、インストールバージョン、追跡されているSnapチャネルを表示します。

  • snap info nextcloud

Snapを使用してサポートする接続を定義できます。これらの接続はスロットとプラグで構成され、つなげると、特定の機能やアクセスレベルへSnapプアクセスが可能になります。 たとえば、ネットワーククライアントとして機能させたいSnapには、network接続が必要です。このSnapで定義されたSnap接続を確認するには、次のように入力します。

  • snap connections nextcloud
Output
Interface Plug Slot Notes network nextcloud:network :network - network-bind nextcloud:network-bind :network-bind - removable-media nextcloud:removable-media - -

このSnapが提供する個々のサービスとアプリのすべてについて知るには、次のように入力してSnap定義ファイルを表示します。

  • cat /snap/nextcloud/current/meta/snap.yaml

これにより、デバッグ支援が必要な場合は、Snapに含まれる個々のコンポーネントを確認できます。

ステップ2 – 管理アカウントの設定

Nextcloud Snapを設定する方法はいくつかあります。このガイドでは、Webインターフェイスを使用して管理ユーザーを作成するのではなく、サーバーのIPアドレスまたはドメイン名にアクセスするユーザーが小窓から管理者登録ページへ侵入するのを防ぐためにコマンドラインで作成します。

新しい管理者アカウントでNextcloudを設定するには、nextcloud.manual-installコマンドを使用します。引数としてユーザー名とパスワードを渡す必要があります。

  • sudo nextcloud.manual-install sammy password

次のメッセージは、Nextcloudが正しく設定されたことを示しています。

Output
Nextcloud was successfully installed

Nextcloudがインストールされたので、Nextcloudがサーバーのドメイン名またはIPアドレスを使用して要求に応答するように、信頼できるドメインを調整する必要があります。

ステップ3 – 信頼できるドメインの調整

コマンドラインからインストールすると、Nextcloudはインスタンスの応答先のホスト名を制限します。 デフォルトでは、サービスはホスト名「localhost」に対して行われた要求にのみ応答します。 ユーザーはサーバーのドメイン名またはIPアドレスを介してNextcloudにアクセスするので、このタイプの要求を受け入れるように設定を調整する必要があります。 

現在の設定を表示するには、trusted_domains 配列の値をクエリします。 

  • sudo nextcloud.occ config:system:get trusted_domains
Output
localhost

現在、最初の値としてlocalhostのみが配列に存在します。次を入力して、サーバーのドメイン名またはIPアドレスのエントリを追加します。

  • sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
Output
System config value trusted_domains => 1 set to string example.com

信頼するドメインを再度クエリすると、今度はエントリが2つ現れます。

  • sudo nextcloud.occ config:system:get trusted_domains
Output
localhost example.com

Nextcloudインスタンスへのアクセス方法を追加する場合、連番(最初のコマンドなら「1」)を付けてconfig:system:setコマンドをもう一度実行し、--valueを調整して、ドメイン名またはIPアドレスを追加します。

ステップ4 – SSLを使用してNextcloud Webインターフェイスを保護する

Nextcloudの使用を開始する前に、Webインターフェイスを保護する必要があります。

ドメイン名がNextcloudサーバーに関連付けられている場合、Nextcloud Snapを使用すれば、Let’s Encryptから信頼できるSSL証明書を取得して設定できます。Nextcloudサーバーがドメイン名を持たない場合、NextcloudはWebトラフィックを暗号化する自己署名証明書を設定できますが、Webブラウザからは自動的に信頼されません。

それを念頭に置いて、シナリオに合うセクションに従ってください。

オプション1: Let’s Encryptを使用したSSLのセットアップ

ドメイン名がNextcloudサーバーに関連付けられている場合、Webインターフェイスを保護するための最良の選択肢は、Let’s Encrypt SSL証明書を取得することです。

まず、Let’s Encryptがドメイン所有権の検証に使用するファイアウォールのポートを開きます。これにより、Nextcloudログインページが公開されますが、管理者アカウントが既に設定されているため、誰もインストールをハイジャックできません。

  • sudo ufw allow 80,443/tcp

次に、次のように入力してLet’s Encrypt証明書を要求します。

  • sudo nextcloud.enable-https lets-encrypt

最初に、Let’s Encryptサービスへ証明書を要求するのに必要な条件を、サーバーが満たしているかどうか尋ねられます。

Output
In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. 2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. 3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)

y と入力して続行します。

次に、復元に使用するメールアドレスを入力するよう求められます。

Output
Please enter an email address (for urgent notices or key recovery):

メールアドレスを入力し、Enterキーを押して続行します。

最後に、Nextcloudサーバーに関連付けられたドメイン名を入力します。

Output
Please enter your domain name(s) (space-separated): example.com

Let’s Encrypt証明書の要求が行われ、すべてがうまくいけば、内部のApacheインスタンスが再起動し、すぐにSSLが実装されます。

Output
Attempting to obtain certificates... done Restarting apache... done

次の手順へ進み、Nextcloudに初めてサインインします。

オプション2: 自己署名証明書を使用したSSLのセットアップ

Nextcloudサーバーがドメイン名を持たない場合でも、自己署名SSL証明書を生成してWebインターフェイスを保護できます。この証明書により、暗号化された接続を介したWebインターフェイスへのアクセスが許可されますが、サーバーの身元を確認できないため、ブラウザに警告が表示される場合があります。

自己署名証明書を生成し、それを使用するようにNextcloudを設定するには、次を入力します。

  • sudo nextcloud.enable-https self-signed
Output
Generating key and self-signed certificate... done Restarting apache... done

上記の出力は、Nextcloudが自己署名証明書を生成して有効にしたことを示しています。

インターフェイスが保護されたので、ファイアウォールのWebポートを開いて、Webインターフェイスへのアクセスを許可します。

  • sudo ufw allow 80,443/tcp

これで、Nextcloudに初めてログインする準備が整いました。

ステップ5 – Nextcloud Webインターフェイスへのログイン

Nextcloudが設定されたので、Webブラウザでサーバーのドメイン名またはIPアドレスにアクセスします。

https://example.com

注: 自己署名SSL証明書をセットアップした場合、サーバー証明書が公認認証局で署名されたものでないため、安全な接続でないという警告がブラウザ上で表示される場合があります。こうした警告は自己署名証明書にはつきものなので、気にせずクリックスルーしてサイトにアクセスします。

コマンドラインから管理者アカウントをすでに設定しているため、Nextcloudログインページが表示されます。管理ユーザー用に作成した資格情報を入力します。

Nextcloud login page

Log inボタンをクリックして、Nextcloud Webインターフェイスにログインします。

初めて入力すると、入門ガイドや、Nextcloudインスタンスへのアクセスに利用できるさまざまなNextcloudクライアントへのリンクを含むウィンドウが表示されます。

Nextcloud client modal

クリックして興味のあるクライアントをダウンロードするか、右上隅のXをクリックしてウィンドウを閉じます。メインのNextcloudインターフェイスが表示され、ファイルのアップロードと管理を開始できます。

Nextcloud main page

これでインストールが完了し、セキュリティ保護されました。インターフェイスを自由に探索して、新しいシステムの機能をよりよく理解してください。

まとめ

Nextcloudは、一般的なサードパーティのクラウドストレージサービスの機能を複製できます。コンテンツは、ユーザー間で共有することも、パブリックURLを使用して外部で共有することもできます。Nextcloudの利点は、情報がユーザーが管理している場所に安全に保存されることです。

追加機能については、Nextcloudのapp storeを参照してください。プラグインをインストールしてサービスの機能を拡張できます。

Creative Commons License