Logical Rabbit.

さくらのVPS

ConoHaのownCloudとオブジェクトストレージでオンラインストレージを作る(前編)

ConoHa VPSに標準で用意されているownCloudアプリケーションサーバーとConoHaオブジェクトストレージを組み合わせて、Windows PCから同期可能なオンラインストレージを作る試み。まずはowncloudを起動するまで。

[2015.12.10] 追記

後編 も書きました。

レシピ

VPSとオブジェクトストレージを契約

  1. 清楚可愛いこのはちゃんと契約する
  2. 言語モードを「このは」にする(重要!)
  3. ConoHaチャージ(月額で最低金額1500円くらいかな)またはクレジットカードを登録する
  4. ConoHa VPSは次の仕様で組んでみた
    • vCPU 1個
    • メモリ1GB
    • 東京リージョン
    • イメージタイプは「アプリケーション」を選択(初期値)
    • アプリケーションは「その他」から「ownCloud」を選択、バージョンは8-x64固定
      • なお、ベースになっているOSは CentOS release 6.7 (Final) カーネルは 2.6.32-573.7.1.el6.x86_64 でした (2015.12.06現在)
      • owncloud自体は 8.1.3 がinstalled、yumで 8.1.4 が来ていますね(後程アップデートしませぅ)
    • rootパスワードをセット
    • 自動バックアップはお好みで。今回はアプリケーションサーバーとしてのみ使用するので、変更した設定さえ別途保管しておけば全体バックアップは不要かも。
    • ディスク容量は最低のSSD50GBで十分。これでも多いかも?
      • インストール後の空き容量は / が 51GB割り当て、47GB空きなのでがら空き…
    • 準備が整うまでは色々危ないので、取り敢えず接続許可ポートはすべてOff(コントロールパネルのブラウザコンソールで作業する)。なお、ここのポートはConoHa VPS外部のファイアウォールらしく、VPS側でSSHポートを22番以外にした場合は「すべて許可」一択となる。
    • SSHキーはお好みで新規作成するなり、手持ちをセットするなり
    • ネームタグもお好みで

あとは料金を確認して「追加」ボタンを押し、準備が整うまでこのはちゃんのお姿を堪能して待ちませぅ。

コンソールを開いてVPSの初期設定

  1. 左側「サーバー」から目的のサーバーを見つけ、ネームタグをクリック
  2. 「コンソール」アイコンをクリック(新しいWebブラウザ画面で仮想コンソールが開く)
  3. 画面が真っ暗ならEnterとか押してみる
  4. 作業アカウントを作る
    • rootで作業すると失敗が致命的になるし、rootでのSSHログインは拒否しておきたいので、通常作業するための作業アカウントを作り、sudo権限を与える
    • [注意!] ConoHaのコントロールパネルでセットした公開鍵は、rootアカウントに紐付けられています(/root/.ssh/authorized_keysに書き込まれる)。作業アカウントは別途キーを準備するなり、rootからキーを奪ってくるなりしましょう(rootのキーを移動した場合はパーミッションとオーナーに注意)。
  5. /etc/ssh/sshd_config を開いて編集
    • 「Port 22」のコメントアウトを外し、22番以外の未使用ポートに変更 (ポート22狙いのアタッカーが回避できます)
    • 「PermitRootLogin」を「no」に変更 (SSH経由でのrootログイン不可)
  6. /etc/sysconfig/iptables を開いて編集 (空だった)
    • -A INPUT -m state --state NEW -m tcp -p tcp --dport <SSH port> -j ACCEPT を追記
    • (owncloudのWeb画面を開くために)-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT を追記
    • あとはお好みで。基本的に全部 REJECT してホワイトリストのポートだけ ACCEPT すれば良いかと。
    • この辺りのことは覚えたところで、どうせ CentOS 7になればfirewalldに代わって役に立たなくなりますよ… (今回firewalldを探して10分くらい彷徨った…)
  7. sshdとiptablesを(再)起動
    • $ sudo service sshd restart
    • $ sudo service iptables restart
  8. ConoHaのコントロールパネルの「ネットワーク情報」をプルダウンさせ、「接続許可ポート」で「すべて許可」を選択(以後、ポートアクセス制御はVPS側のiptablesに委任)
  9. お好みのターミナルエミュレーターから接続できることを確認 (以降はターミナルエミュレーターから作業)
    • 念のため、rootでログインできないことも確認しませぅ
    • さらに念のため、ConoHaコントロールパネルのWebブラウザコンソールからはrootでログインできることを確認しませぅ
  10. 適当なタイミングで sudo yum upgrade でも打って最新環境にするべし

ownCloudの設定

  1. コンソールにログインするとwelcomeメッセージとして URLやらMySQLのパスワードやらが表示されるので、URLにアクセスする。
  2. 管理者アカウントを作成する
  3. 試しに適当なファイルをアップロードしてみる

たぶん通常アカウントを作って、そっちで使ったほうが良い…いや所詮プライベートストレージだからこのままでもいいか…な?

なおアップロードしたファイルは /var/www/html/owncloud/data/<アカウント名>/files/ に収まる様子。 (/var/www/html/owncloud/data/ 以下はapacheユーザー/グループ管轄、otherにアクセス権無し)

残項目

  • HTTPSアクセスにしたほうが良い気がするぞ
  • ポートをガチガチに塞ぎ過ぎてメールアラートも出なくなってるので、必要なポートを開けたい
  • ていうかちゃんとドメイン割り当ててメールサーバーも設定しておこう
  • 本題であるWindowsとの同期とオブジェクトストレージの使用はどうした

[2015.12.08] 追記

yum upgrade したのち reboot してそのまま気持ちよく作業を終えたところ、数日経ってからアクセスしたら owncloud がメンテナンスモードに入ってしまっているという仕打ちが発生。モード解除自体は /var/www/html/owncloud/config/config.php 内の ’maintenance’ を false にすればOKだったのだけど、なんでメンテナンスになったんだ…。しかも画面には「owncloudを再起動すれば解除されます」とある割に、 httpd をリスタートしても何も変わらんかったし。

もしかして yum upgrade で owncloud 自体が 8.1.3 から 8.1.4 にアップデートされたので、このタイミングで自動的にメンテナンスモードになるんですかね…?

あと数日放置してたら、案の定 httpd にアタッカーの皆さんからご訪問を受けておりました。幸い突破された様子は無かったけど、一度アクセス範囲を見直したほうが良さげ。

[2015.12.10] 追記

後編 に続く…!