WikiLeaksのように弾圧されても回し続けるWebサイトを作る方法

WikiLeaksのサイトがAmazonから追い出され、放浪した時があった。しかし、すぐに、http://wikileaks.ch/が立ち上がり、しかも世界各地にそのミラーが作られ、もう米国政府といえども、もはや弾圧しきれない状態が作られてしまったことは記憶に新しい。

日本でも同じような事態が起きないとは限らない。以前、働いていたNGOではISPに置いたサーバーのデータは事務所のイントラネットのサーバー上で同期させていたが、それでも両方とも押収されてしまう可能性もある。政治的な弾圧でなくとも、たとえばサーバーを置いていた場所が火災や地震でデータがすべて失われるかもしれない。

どのように対処するか?

望ましいのは地理的に離れた安全な複数の場所でWeb用のデータを同期させておくことだろう。

rsyncというディレクトリー単位でデータの内容を離れたサーバーの間で同期するツールがあり、Linuxのサーバー同士だと、簡単に同期させることが可能だ。圧縮して暗号化して同期できるので、安心して使うことができる。WikiLeaksのミラーもこのrsyncを使って行われている。

しかし、問題なのはそうした地理的に離れた複数のサーバーを使える人・団体は多くないことだ。また仮に確保できたとしても、バックアップサーバーのデータにアクセスする方法をどのように確保できるか? 誰もがアクセスできる状態にすればそのバックアップサーバーのリスクを高めることにもなる。限られた人だけがデータにアクセスできるのであればその人たちが動けなくなった時におしまいだ。

あれこれ考えたのだけど、以下のような方法はどうだろうか?

Windows、Mac、Linuxで使うことのできるTrueCryptを使ってデータを暗号化し、Dropboxに必要なデータを保存する。DropboxもまたWindows、Mac、Linuxに対応しており、動作も安定している。

巨大なサイトだとDropboxが無料で使える容量を超えてしまうかもしれないが、たいていのサイトであれば十分無料の範囲で利用可能だろう。

しかも、そのデータはLinuxのわからない人でもDropboxで使うメールアドレスとパスワード、それから暗号化を解くパスフレーズがあれば手にすることができて、別のサーバーにぶち込めばそれでサイトを継続することが可能になる。複雑なCMSを使っているということがなければすぐに回復できるだろう。

  1. Webのディレクトリーのデータをtarを使って、バックアップディレクトリーに圧縮コピーする。
  2. MySQLのデータはmysqldumpなどを使って、書き出す。
  3. 上記の2つのファイルは別ディレクトリーにファイル名に日付を加えて保存する。月名は加えずにおくので、最低1月は過去のデータが残る。上記の処理をすべてシェルスクリプトにして、crontabで毎日定時に実行させる。
  4. 最新版は暗号化した上、DropBoxディレクトリーに保存する。

Dropboxの容量が十分確保できれば最新版だけでなく、バックアップできるといいけれども、容量が心配になってしまうかもしれない。

備忘録をかねて、サーバーへのDropboxのインストール方法(コマンドラインオンリー) (英文)

問題はTrueCypt。サーバー上で使うのはやややっかいかな。tarの暗号は弱そうだし、encfsであればとりあえずはOKだろうか。Linuxの他、MacではOK。Windowsでも使えそう(かな?)。
Dropbox+encfsで暗号化したファイルをMacとUbuntu/Linuxで同期してみる

他にいい方法あったら教えてください。

データさえあれば、いざという時にはWikiLeaksと同じようにrsyncで同期させてもらえるサーバー運営者とのネットワークを作って、ミラーサイトをいっぱい作ることは可能なはずだけど、その際には別のサーバー管理者にCMSのインストールをお願いするわけにはいかない。

CMSで運用している場合でも、データベースを前提とせずにすべてスタティックなHTMLファイルに書き出しておいて、単純なファイルの同期だけで済むようにWebサーバーの設定を変更しておくべき。URIの最後に?id=…のような変数がつく形ではなく、静的なpagetitle.htmlのような形でURIを書き換えられるようにWebサーバーを設定して、その静的なファイルを書き出しておけば、それは可能。この件はSEO対策でよく言われるが、それだけでなく、重要なことだろう。
wgetを使えば、サイト全体をテキストファイルで書き出せる(ただし、リンクされていないページは書き出せないけど)。

ただし、データを更新したりするためにはその作られたページのデータだけでは困難なので、やはりバックアップの基本はCMSを使っている場合はデータベースファイル&Webディレクトリーのファイルのバックアップとなるでしょうね。

追記:2011/03/08 encfsやTrueCryptでやるまでもなく、すでに標準でインストールされているGnuPGでやるのがよさそうだ。TrueCryptなどの場合、まず仮想化させるディスク容量を決める。Dropboxぎりぎりのサイズで作ればアップデートするたびにその2GBをやりとりしなければならない。これは重い。かといって小さく作ればその容量の中に入るかどうかいつも気にしていなければならない。GnuPGはファイル単位で暗号化してくれるので、そんな心配がない。ファイルの多いディレクトリーごと保存するという場合はともかく、今回はtarで1つのファイル、MySQLで1つのファイルしかないのだから、GnuPGでやるのが効率がよさそう。しかもだいたい標準で入っているので何も新たにインストールしなくていいし、Linuxはもちろん、Windows、Macにも対応している。信頼感もある。

“WikiLeaksのように弾圧されても回し続けるWebサイトを作る方法” への1件の返信

コメントは受け付けていません。