Debian 9にNextcloudをインストールおよび構成する方法

前書き

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

このチュートリアルでは、Debian 9サーバーにNextcloudインスタンスをインストールして構成します。

前提条件

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

  • サーバー上で設定されたsudoユーザーとファイアウォール:https://www.digitalocean.com/community/tutorials/initial-server- setup-with-debian-9 [Debian 9初期サーバーセットアップガイド]。

  • (オプション)サーバーを指すドメイン名:Nextcloudインストールへの接続をTLS / SSLで保護します。 Nextcloudは、サーバーにドメイン名がある場合、https://letsencrypt.org/ [Let’s Encrypt]から無料の信頼できるSSL証明書を設定および管理できます。 そうでない場合、Nextcloudは接続を暗号化できる自己署名SSL証明書を設定できますが、Webブラウザーではデフォルトで信頼されません。 DigitalOceanを使用している場合、https://www.digitalocean.com/docs/networking/dns/how-to/add-domains/ [サーバーのドメイン名を設定する方法]のガイドに従ってください。 Let’s Encryptを使用する予定です。

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

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

snappyパッケージングシステムを使用してNextcloudをインストールします。 デフォルトのリポジトリを介してDebian 9にインストール可能なこのパッケージングシステムにより、組織は、関連するすべての依存関係と設定とともに、自動更新を備えた自己完結型ユニットでソフトウェアを出荷できます。 つまり、Webサーバーとデータベースサーバーをインストールして構成し、Nextcloudアプリを実行するように構成する代わりに、基になるシステムを自動的に処理する `+ snap +`パッケージをインストールできます。

`+ snap `パッケージをインストールして管理するには、まずサーバーに ` snapd `パッケージをインストールする必要があります。 「 apt +」のローカルパッケージインデックスを更新し、次のように入力してソフトウェアをインストールします。

sudo apt update
sudo apt install snapd

次に、ログアウトして再度ログインするか、セッションの `+ PATH `変数に ` / snap / bin `を追加するために ` / etc / profile.d / apps-bin-path.sh +`スクリプトを取得します。

source /etc/profile.d/apps-bin-path.sh

`+ snapd `がインストールされたら、Nextcloud ` snap +`パッケージをダウンロードし、次のように入力してシス​​テムにインストールできます。

sudo snap install nextcloud

Nextcloudパッケージがダウンロードされ、サーバーにインストールされます。 `+ snap +`に関連する変更をリストすることで、インストールプロセスが成功したことを確認できます。

snap changes nextcloud
OutputID   Status  Spawn               Ready               Summary
1        today at 20:18 UTC  today at 20:18 UTC

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

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

Nextcloud `+ snap +`についてさらに情報が必要な場合は、役立つコマンドがいくつかあります。

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

snap info nextcloud

スナップは、サポートするインターフェイスを定義できます。これらのインターフェイスは、スロットとプラグで構成されており、一緒にフックすると、特定の機能またはアクセスレベルへのスナップアクセスを提供します。 たとえば、ネットワーククライアントとして機能する必要があるスナップには、「+ network +」インターフェイスが必要です。 このスナップが定義するスナップ「インターフェイス」を確認するには、次のように入力します。

snap interfaces nextcloud
OutputSlot           Plug
:network       nextcloud
:network-bind  nextcloud
-              nextcloud:removable-media

このスナップが提供するすべての特定のサービスとアプリについて知るには、次のように入力してスナップ定義ファイルを見ることができます。

less /snap/nextcloud/current/meta/snap.yaml

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

管理アカウントの構成

Nextcloudスナップを構成する方法はいくつかあります。 このガイドでは、ウェブインターフェースを使用して管理ユーザーを作成するのではなく、サーバーのIPアドレスまたはドメイン名にアクセスする人が管理者登録ページにアクセスできる小さなウィンドウを避けるために、コマンドラインで作成します。

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

sudo -i nextcloud.manual-install

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

OutputNextcloud is not installed - only a limited number of commands are available

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

信頼できるドメインの調整

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

`+ trusted_domains +`配列の値をクエリすることで、現在の設定を表示できます:

sudo -i nextcloud.occ config:system:get trusted_domains
Output

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

sudo -i nextcloud.occ config:system:set trusted_domains 1 --value=
Output

信頼されたドメインを再度照会すると、2つのエントリがあることがわかります。

sudo -i nextcloud.occ config:system:get trusted_domains
Output

Nextcloudインスタンスにアクセスする別の方法を追加する必要がある場合、増分インデックス番号(最初のコマンドの「1」)で + config:system:set +`コマンドを再実行し、 `+-value +

SSLを使用してNextcloud Webインターフェイスを保護する

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

Nextcloudサーバーにドメイン名が関連付けられている場合、Nextcloudスナップショットを使用すると、https://letsencrypt.org/ [Let’s Encrypt]から信頼できるSSL証明書を取得して設定できます。 Nextcloudサーバーがドメイン名を持たない場合、NextcloudはWebトラフィックを暗号化する自己署名証明書を設定できますが、サーバーのIDを確認することはできません。

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

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

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

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

sudo ufw allow "WWW Full"

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

sudo -i nextcloud.enable-https lets-encrypt

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

OutputIn 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 *と入力して続行します。

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

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

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

OutputPlease enter your domain name(s) (space-separated):

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

OutputAttempting to obtain certificates... done
Restarting apache... done

link:#logging-in-to-the-nextcloud-web-interface [初めてNextcloudにサインイン]にスキップできます。

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

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

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

sudo nextcloud.enable-https self-signed
OutputGenerating key and self-signed certificate... done
Restarting apache... done

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

インターフェイスが安全になったので、ファイアウォールのWebポートを開いて、Webインターフェイスへのアクセスを許可します。

sudo ufw allow "WWW Full"

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

Nextcloud Webインターフェイスへのログイン

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

https://

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

image:https://assets.digitalocean.com/articles/nextcloud_1804/login_page.png [Nextcloud login page]

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

初めて入力すると、Nextcloudインスタンスと対話して管理するために使用できるさまざまなNextcloudクライアントへのリンクを含むウィンドウが表示されます。

image:https://assets.digitalocean.com/articles/nextcloud_1804/modal.png [Nextcloud client modal]

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

image:https://assets.digitalocean.com/articles/nextcloud_1804/main_page.png [Nextcloud main page]

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

結論

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

インターフェースを確認し、追加機能については、https://apps.nextcloud.com/ [Nextcloud’s app store]を使用してプラグインをインストールします。