Make Tech Easier - Uncomplicating the complicated, making life easier

WebアプリケーションやWebサービスでは位置情報の活用と個人の特定、これまでの行動からより対象に適切なサービスの提供を実現するようになってきている。これは便利である反面、個人を特定されたくないユーザにとってはWebは日々厄介な存在になってきていることも意味している。

プライバシを尊重するケースでは、自分がどこからアクセスして何を検索したか、どういった経路を使ってWebサーフィンをしたのか、そうした情報を第三者に把握されることを懸念する。またビジネスにおいて通信内容を秘匿したいケースや、セキュリティの観点からこうした情報を第三者につかまれたくないというケースもある。

そうした場合に活用できるソフトウェアにTorがある。ネットワークへのアクセスを一旦Torノードに何度かバウンスさせることで、どこからアクセスがあったのかを判別不能にするためのソフトウェアでありプロトコルでありネットワークプラットフォーム。Want Your Privacy Back? Install and Run Tor in Ubuntu - Make Tech Easierに実際にどうやってこのTorを使ってWebブラウザのアクセスで自分の居場所をわからなくするかの方法が紹介されており参考になる。

Want Your Privacy Back? Install and Run Tor in Ubuntuのアイディアの根幹は、プロキシサーバPolipoで一旦接続を受け、PolipoからSocks5を使う形でTorに飛ばすというものだ。紹介されている内容は自分のPCにシステムを構築するものだが、サーバとして構築すれば1台のサーバで複数のクライアントから使えるようになる。以降にFreeBSDを使ってTor+Polipo匿名プロキシサーバを構築する例を紹介する。

TorとPolipoインストール

Ports CollectionからTorとPolipoをインストール。

cd /usr/ports/security/tor/
make install clean
cd /usr/ports/www/polipo/
make install clean

/etc/rc.confに次の設定を追加し、TorとPolipoをサービスとして制御できるようにする。

tor_enable="YES"
polipo_enable="YES"

Torの設定ファイルは/usr/local/etc/tor/torrc、Polipoの設定ファイルは/usr/local/etc/polipo/configになる。/usr/local/etc/tor/torrcは/usr/local/etc/tor/torrc.sampleファイルをコピーして作っておく。

cp /usr/local/etc/tor/torrc.sample /usr/local/etc/tor/torrc

PolipoをプロキシサーバとしてLAN内ホストからのアクセスを許可するほか、Socks5としてTorを利用する設定をする。たとえば次のように編集する。1つ目の変更で自分以外のホストからのアクセスを許可、2つ目の変更でアクセスを許可するクライアントを指定、3つ目でTorとの接続を指定している。

--- /usr/local/etc/polipo/config.sample 2010-07-12 16:28:52.844007871 +0900
+++ /usr/local/etc/polipo/config        2010-07-12 16:55:11.553351097 +0900
@@ -15,13 +15,13 @@
 # connect:

 # proxyAddress = "::0"        # both IPv4 and IPv6
-# proxyAddress = "0.0.0.0"    # IPv4 only
+proxyAddress = "0.0.0.0"    # IPv4 only

 # If you do that, you'll want to restrict the set of hosts allowed to
 # connect:

 # allowedClients = "127.0.0.1, 134.157.168.57"
-# allowedClients = "127.0.0.1, 134.157.168.0/24"
+allowedClients = 127.0.0.1, 192.168.1.0/24

 # Uncomment this if you want your Polipo to identify itself by
 # something else than the host name:
@@ -38,8 +38,8 @@

 # Uncomment this if you want to use a parent SOCKS proxy:

-# socksParentProxy = "localhost:9050"
-# socksProxyType = socks5
+socksParentProxy = "localhost:9050"
+socksProxyType = socks5


 ### Memory

TorとPolipoのサービスを起動する。

service tor start
service polipo start

ブラウザの設定と利用

ブラウザは基本的にプロキシの対象を先程セットアップしたPolipoサーバに設定すればいい。IPやポート番号は設定に合わせて適宜指定。FirefoxにはTorをより高度に活用するためのエクステンションTorbuttonが用意されているため、これを使用する。

Torbuttonの設定ダイアログからプロキシ設定。ローカルで動いている場合には自動検出が可能だが、ここで紹介しているようにプロキシサーバを別にたてた場合には手動で設定する

「Test Settings」ボタンをクリックして正しく機能していることを確認

www.google.comにアクセスするとTorの動作がよくわかる。日本から、日本語設定が有効になったブラウザでwww.google.comにアクセスするとwww.google.co.jpへリダイレクトする。これがTor経由でアクセスした場合にはwww.google.deへリダイレクトした。日本からアクセスしたという部分がTorネットワークを経由することで判断できなくなっていることがわかる。

日本からwww.google.comにアクセスしたら、www.google.deへリダイレクトした。

Torbuttonを無効にするとwww.google.co.jpへリダイレクトする動作に戻る

なお、Torを利用するとブラウジングスピードは遅くなる印象を受ける。危険だと考えられるクッキーは削除され、Torbuttonを使っている場合にはFlashやJavaなどのプラグインもブロックの対象となる。Torを利用する場合には割り切った使い方がポイントといえる。