Nextcloudでクラウドストレージを作ってみる

Linux
この記事は約8分で読めます。

NextcloudというOSSを使ってセルフクラウドストレージを構築してみました。

Nextcloudってなに?という方はWikipediaを参照するとわかるかもしれません。

Nextcloudは、オンラインストレージの作成と使用のためのクライアント・サーバ型のソフトウェアである。機能的にはDropboxに似ているが、オフプレミスのオンラインストレージサービスは提供しない。Nextcloudはフリーかつオープンソースなので、誰でも自分のプライベートサーバにインストールして利用することができる。

引用元:https://ja.wikipedia.org/wiki/Nextcloud

クラウドストレージと言いつつ自宅のストレージにデータを保存するので、「それってクラウドストレージじゃなくね?」というツッコミはあると思います。

AWSとかAzure上に構築すれば正真正銘クラウドストレージですが、クラウドストレージっぽく使えるという意味でクラウドストレージとしてここでは呼びます(強引)

Googleフォトの無料無制限アップロードサービスが今年中に終了してしまうこともあり、「代替となるモノがあればやってみよう」というモチベーションでやってみました。

                 

構築環境

UbuntuのIP固定

パソコンをNextcloudサーバーとして使うので、プライベートIPを固定しておきます。

設定方法は以前の記事の通り↓

                 

DDNSの取得

私の自宅の回線はグローバルIPが固定されていません。

そのため、インターネットから自宅のNextcloudサーバーにアクセスするためにはDDNSが必要になります。

No-IPでDDNSを取得し、UbuntuにDDNSクライアント設定を済ませておきます。

これについても以前に記事で紹介しておりますので、リンクを貼っておきます↓

hostnameの設定

取得したDDNSとNextcloudサーバーを紐づけするために、ホストの設定を行います。

[端末IPアドレス] [DDNS] [ホスト名]を追記します。

設定したらホストネームに対して疎通確認をしてみます。

問題なく設定できてるみたいです。

                 

Nextcloudのインストール

続いてNextcloudをインストールしていきます。

通常のコマンドインストールとsnapコマンドでのインストールができるみたいですが、今回は手順が簡単なsnapコマンドでのインストールをしました。

こちらの記事を見るとsnapコマンドでインストールしたNextcloudは細かい制約があるみたいですが、個人で運用していく分には問題なさそうです。

もしも、使っていって気になる部分があれば通常コマンドでインストールして構築し直そうと思います。

インストール

snapコマンドでインストールします。

これだけでインストールは完了です。とってもお手軽。

http://localhostにアクセスしてみると、Nextcloudにアクセスできます。

snap changesで変更履歴が見れます。

インストール直後はインストールしたという履歴のみが表示されます。 Status:Done、Summary:Install “nextcloud” snapは問題なくインストールが完了したという意味です。

                 

管理者アカウントの設定

Nextcloudの管理者アカウントを作成します。

信頼できるドメインの設定

Nextcloudは”信頼できるドメイン”以外からのアクセスは受け付けないようになっています。
(htmlは反応するが、ログインページが表示されないようになる) 信頼できるドメインを設定して、アクセスを受け付ける範囲を設定します。

現在の設定を確認

現在はローカルホストのみが信頼できるドメインとなっています。

以下のコマンドで信頼できるドメインを追加します。

trusted_domainsのあとの数字は信頼できるドメインの設定リストの順番を表しています。

今回は、DDNS名とIPアドレスの2つを信頼できるドメインに追加したので、trusted_domains 1、trusted_domains 2として追加しています。

設定を再確認

DDNS名とIPアドレスが追加されていることが確認できました。

                 

ファイアウォール設定

ウルトラファイアウォールを使ってサーバーへのアクセス制御を行います。

Let’s EncryptでSSL/TLS証明書を取得する予定なので、80,443のTCPポートを追加します。

22はssh接続のため、3389はrdpのために追加します。

ポート22の追加を忘れると、遠隔からsshで操作することができなくなるので注意します。

ウルトラファイアウォールが非アクティブだったので有効にします。

↑ssh接続中だったので、上記の確認が表示されました。yを選択します。

必要なポートのみ許可されていることを確認します。

ポート開放

ルーター側での作業です。

私の環境で使用しているASUS RT-AX56Uの場合、ログイン⇒WAN⇒ポートフォワーディングと進み、ポートフォワーディングを有効にします。

ポートフォワーディングリストにNextcloudをインストールしたサーバーを追加します。

TCPポート80,443を開放します。

 

                 

https対応

httpsでアクセスできるようにします。

完了したら、DDNS名でアクセスしてみます。

httpsでアクセスできるようになりました。

                 

データロケーションの設定

データの保存場所の変更です。

Nextcloudサーバーとして使っているパソコンのストレージ構成は、OSのためのSSD32GB+データ保存用のHDD250GBという構成です。

デフォルトの保存場所では32GBのSSDが保存場所になっているので、これをHDD250GBの方に変更します。

こちらのフォーラムを参考に作業しました。
https://askubuntu.com/questions/882625/nextcloud-snap-with-data-directory-on-external-harddrive

リムーバブルメディアを接続する

Nextcloudが接続したメディアにアクセスできるようにする

datadirectoryを変更します。

念の為、設定ファイルのバックアップを取っておきます。

データロケーションを変更します。

検証していませんが、snapで管理されたNextcloudは、ディレクトリ名がmediaでないといけないっぽい?

データのコピー

元のデータディレクトリにあるファイルは一応残しておきました。

設定を有効にする

WEB画面からアクセスし、ストレージを確認してみたところ、ちゃんとHDD250GBのほうに変更できていることが確認できました。

                 

スマホからアプリからアクセスしてみる

手持ちのAndroidスマホにアプリをインストールして、構築したサーバーに接続してみます。

アプリダウンロード

GooglePLAYからアプリをダウンロードし、インストールします。

https://play.google.com/store/apps/details?id=com.nextcloud.client

初期設定

アプリをインストールしたらアプリを起動します。

ログインをタップします。

サーバーアドレスにDDNS名を入力し、矢印(→)をタップします。

ログインをタップします。

ユーザー名とパスワードを入力しログインをタップします。
この時点では管理者しかユーザーを作成していないので、管理者アカウントでログインしました。

Nextcloudがスマホのストレージにアクセスできる許可をします。

クラウドストレージにアクセスできました。

サーバー構築~接続までが完了しました。

実際にファイルのアップロード/ダウンロードをしてみましたが、問題なく使用できて結構満足です。

とりあえず構築はできたので、サーバーのセキュリティ対策を実施して本格的に使っていこうと思います。

なので、いまはサーバーのポートフォワーディングはOFFにして、DDNSで接続できないようにしてます。

 

コメント

タイトルとURLをコピーしました