みんな大好きクラウドストレージ!こんにちは、えんぞーです。
みなさんは何を使われているでしょうか?
DropBox、Box、Copy、SugerSync等々、今は沢山のサービスで溢れていますよね。
ただ、容量の問題だったりセキュリティの問題だったりと中々悩みはつきません。
既存サービスでの不安点
サービス側がいくら暗号化を謳っていてもそれが安全とは言えません。
多くのオンラインストレージサービスが提供するストレージの”暗号化”では、ユーザーだけでなく、サービス側も暗号鍵を持っている。
こちらの記事にも書いてあるように、いざとなれば複合化出来る訳ですよね・・・。
極端な事を言ってしまえば
「人に見られて困るようなファイル置くなよw」
で終わる話なんですが、それを言ったら身も蓋も無いのでそこはスルーします。
※追記(2013/11/22)
↓あくまで参考程度になりますが・・。
米国家安全保障局(NSA)による大手IT企業のユーザーデータへの無断アクセスが報じられる中、電子フロンティア財団がGoogleやTwitterをはじめとする18社のサービスの暗号化状況を示すリストを公開した。
サービス暗号化の優等生はGoogleとDropbox、Amazonは要注意──EFF調べ - ITmedia ニュース
自分で用意してみれば一番納得するかな
WEBのサービスなんていつ終わるか分からないのにデータを保存とか無理っていう人だっていますよね。
なので、第三者のサービスを利用せずに自前のサーバーでDropboxの様な事が出来たらと言うことで今回は「ownCloud」を導入してみました。
メリット
- 無料
- 容量は自分のサーバーが許す限り
- 暗号化も行うので例えサーバー運営側であってもファイルの中身は見る事が出来ない
- ほとんどDropboxの使い勝手と一緒。
- 自分だけで無く複数のユーザーを作成できる
デメリット
- 実質サーバー代がかかる
- インストールや設定は自分でやることになる
- 速度的な部分はサーバーの環境に依存する
ざっとこんな感じになります。
設置をオススメする人としましては・・・現在何かしらでVPS等のサーバーを借りていて容量をもてあましている方・・・とかでしょうか。
上記に当てはまる人には是非Subsonic(ストリーミングサーバー)もオススメしたいですね。
インストール
それでは、インストールしてみようと思います。
今回試した環境は、さくらVPSの1Gプラン(CentOS 6.4)↓になります。
オススメなVPS
インストールする前に既にHttpdやPHP等の基本的なものは導入済みとして説明します。
特にHttpdはSSLが必要になるのでmod_sslが有効かどうか確認しておいて下さい。
では、さっそく。
参考ページ:Install package owncloud(公式)
#keyfileのインポート rpm --import https://download.owncloud.org/download/repositories/stable/CentOS_6/repodata/repomd.xml.key #次にリポジトリファイルをダウンロードします。 wget http://download.owncloud.org/download/repositories/stable/CentOS_6/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo #yumのキャッシュをクリア yum clean expire-cache #yumでインストールします。 yum -y install owncloud
終わりですwやったね、簡単!
ちなみに、私はmod_sslが入っていなかった為にアクセス出来ず、気づくまでにしばらくかかりました。
ここまでやったら後は
https://IPアドレス又はホスト名/owncloud/
こちらにアクセスすれば初期設定の画面に飛ぶのでIDとパス決めれば完了。
ログインしてみよう
さて、さっそくログインしてみましょう。
なるほど、こういうインターフェースなんですね。
まだ何もアップしていないので空のままになります。
Nginxで運用する場合(※2015/12/10追記)
最近は殆どNginxでばかりWebサーバー構築しているので必然的にOwncloudもNginxに移行しました。
基本的には下記のページに書いてある通りの設定で、あとは自分で構築している環境に合わせることになります。
Other Web Servers — ownCloud Administrators Manual 5.0 documentation
設定ファイル自体はOwncloud用に用意したほうが管理しやすいですね。
「/etc/nginx/sites-available/owncloud」の様な形で設定ファイルを作り、「/etc/nginx/sites-enable/」にシンボリックリンク貼って運用します。
(nginxの設定で/etc/nginx/sites-enable/の設定ファイルを全て読むようにしている場合)
server { listen 80; #owncloud用にサブドメインで運用するのが簡単ですね。 server_name cloud.example.com; return 301 https://$server_name$request_uri; # enforce https } server { #もしApacheとの共存をしている場合はポートの競合に注意 listen 443 ssl; server_name cloud.example.com; #SSL証明書は事前に作っておきましょう ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; #インストール後に警告出ないようにヘッダー追加しておく add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;'; # Path to the root of your installation # 私はそのまま/var/www/html/owncloud/にして運用してます。 root /var/www/; client_max_body_size 10G; # set max upload size fastcgi_buffers 64 4K; rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; index index.php; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^/(data|config|.ht|db_structure.xml|README) { deny all; } location / { # The following 2 rules are only needed with webfinger rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; rewrite ^(/core/doc/[^/]+/)$ $1/index.html; try_files $uri $uri/ index.php; } location ~ ^(.+?.php)(/.*)?$ { try_files $1 = 404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$1; fastcgi_param PATH_INFO $2; fastcgi_param HTTPS on; #fastcgiのパスはソケットにしてる場合はソケットのパスに fastcgi_pass 127.0.0.1:9000; # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;' } # Optional: set long EXPIRES header on static assets location ~* ^.+.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires 30d; # Optional: Don't log access to assets access_log off; } }
ポートの競合やFast-CGIパスのミスさえなければ特に問題なくNginxで運用出来るかと思います。
暗号化設定を行う
さて、このままの状態だとサーバーに保存されるファイルはそのまま保存されてしまいます。
もちろん、外から誰でもファイルを見ることが出来るなんて状態ではありませんが冒頭で書いたようにサーバー側は見ようと思えば見えてしまいます。
そこで、暗号化を掛けておきます。
これをしておけばパス(キー)を知っている自分以外が勝手にファイルの中身をみるっていう事はまず出来なくなりますね。
右上のメニューから「アプリ」の項目をクリックします。
すると、左側にずらっとアプリというか拡張機能というか色々並んでいますのでそこから「Encrypion」を選択し有効化します。
ownCloudはこのようにして機能を追加していけるようですね。
有効化まで完了したら、また左上のメニューから今度は「管理者」を選択します。
すると暗号化のメニューが出ていますのでここにパスフレーズをいれて「Enabled」にします。
ついでに下のほうにある「常にHTTPSを使用する」にもチェックを入れて置いて下さい。
これで設定は完了です。
クライアントアプリのインストール
さて、次はクライアントアプリのインストールになります。
これは特に問題無く、ダウンロードして実行してインストールというながれになります。
今回Windows版を落としてインストールしました。
インストールして接続先のURLを入れるとSSLの警告出ますが問題ないので次に進みます。
はい、ここで設定したユーザー名とパスワードを入力します。
インストール完了しました。
お~、残り88Gとなっていますね~。
正直ここまでの容量が必要でも無いので、個人的なメリットを言えばプライベートなストレージという所でしょうか。
ownCloudがメンテナンスモードから戻らなくなった場合
メンテナスモードの画面から戻らなくなってしまった場合は設定ファイルを編集して手動で戻します。
# インストール場所を変えて無ければ下記の場所にあるファイルを編集 vi /var/www/html/owncloud/config/config.php # 開いたらtureの部分をfalseに変更して上書き保存 'maintenance' => true, ↓ 'maintenance' => false,
ownCloudのエラーログの場所
ownCloudのエラーログは下記の場所。
# ログファイルの場所 /var/www/html/owncloud/data/owncloud.log # 場合に応じて・・・最終行だけ確認したい場合 tail /var/www/html/owncloud/data/owncloud.log # リアルタイムでログを監視したい場合 less +F /var/www/html/owncloud/data/owncloud.log # と言った感じで表示させるといい。
とりとめのないまとめ
ということで、ownCloudを設置してみましたが如何でしょうか。
個人的にownCloud自体は使い道さえハッキリしていればこれ一つだけでも良いのでは無いかと思えるくらいです。
Dropboxを使っていない人、もしくは初期値の2Gのまま使っている人には条件さえ合うのであればオススメしたい所です。クラウドストレージの一つの使用方法として私はポータブルアプリ(設定がiniファイルだけで大丈夫なアプリ)はDropBoxに入れて同期させています。
例えばFileZillaだったり、ファイラーだったりなのですが・・・どの環境でも同じ設定で使用出来る様になるのでオススメです。
それと、よくよく見てみるとこの手のサービスのクライアントは立ち上がっているのに全然使っていないっていうものもあるのでこの辺りも全部整理して多くても2サービスくらいにまとめられると有効に使えるのかなって思います。