用意するもの:
- UNIX系OSのクライアント。たとえばUbuntu 12.04 LTSなど。下記ソフトウェアが動作すれば他の環境でも問題ない(OSXも可)。
- サーバ用途として安価でストレージを備えたUbuntu 12.04ベースのVPS。例えば月額5ドルで250GBを提供するBackupsyなど。クーポンコードはGoogleで検索すれば見つかる。
使用するソフトウエア:
-
Unisonをインストール:
$ sudo apt-get install unison
-
プロジェクト用のユーザを追加しきちんとパスワードを設定:
$ sudo adduser encbox
-
Unisonをインストール:
$ sudo apt-get install unison
-
SSHで公開鍵ベース認証を有効にする(
your.vps.com
は自分のサーバのホスト名に置き換えること):$ ssh-keygen $ cat ~/.ssh/id_rsa.pub | ssh encbox@your.vps.com "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
-
暗号化されたファイルを設置するフォルダを作成:
$ mkdir ~/.encbox
-
Unisonのプロフィールを
~/.unison/encbox.prf
に作成 (your.vps.com
は自分のサーバのホスト名に置き換えること):$ mkdir ~/.unison; tee ~/.unison/encbox.prf <<__EOF root = /home/$USER/.encbox root = ssh://encbox@your.vps.com/encbox prefer = ssh://encbox@your.vps.com/encbox backups = true times = true terse = true repeat = 2 __EOF
-
自動でファイル同期を行うためupstartファイルを作成(
/etc/init/encbox.conf
):$ sudo tee /etc/init/encbox.conf <<__EOF description "encbox" start on desktop-session-start stop on desktop-shutdown setuid $USER setgid $USER env HOME=$HOME respawn script bash -l -c "unison encbox; sleep 2" end script __EOF
-
Unisonを開始:
# フォアグラウンドで実行する場合: $ unison encbox # システムサービスとして実行する場合: $ sudo service encbox start # starts your Encbox $ sudo service encbox stop # stops your Encbox
もしunisonがクライアント側にあるファイルについてエラーが発生した場合、一度だけ
-ignorearchives
フラグをつけて実行:$ unison -ignorearchives encbox
-
EncFSをインストール:
$ sudo apt-get install encfs
-
暗号化されたディレクトリをマウント:
$ encfs ~/.encbox ~/Encbox
対象ディレクトリの作成に同意し、EncFSの設定されたパラノイアモードを使うため
p
を選択します。フォルダにパスワードを設定します。 -
これですべてです!
~/Encbox
内のすべてのファイルは暗号化され、サーバとクライアント間で暗号化されて同期されます。
-
ポーリングについて:
残念ながら、Unisonはファイルシステムの通知機能(inotifyやlibnotifyなど)に対応していないため(上記プロフィール設定で
repeat = 2
と設定したのであれば)2秒毎に変更内容をポーリングします。これはよくない設定ですが、今のところ私のノートPCのバッテリーへの悪影響は見受けられません。もし悪影響があるようであれば、repeat
パラメータの値を上げてみてください。ポーリングによる帯域使用は無視できるほど小さいです(1ポーリングあたり0.9KB、3.5kbps)。 -
Unisonのバージョンについて:
噂によると、サーバとすべてのクライアントはすべて同じバージョンのUnisonを使わなければ問題が発生すると言われています。しかし私は確認していません。
-
Android / iOS アプリについて:
このセットアップはBoxcryptor Classicのスマートフォンアプリと互換性があります。EncFSフォルダをエキスパートモード(
x
)で作成する必要があるので、詳しくはBoxcryptor's Support Deskを参照してください。WebDAVサーバのインストールを選択し、WebDAV経由で/home/encbox/encbox
を公開してください(このドキュメントの範疇ではありません)。