🧦

OpenVPN over Tor する

2024/06/09に公開

インターネットの自由やプライバシーについて調べているとVPN over TorやTor over VPNといった用語に出会うことがあります。私が調べる限りではVPN over Torに関しての具体的な情報をあまり見つけることが出来なかったので私が試したことを書きます。(Tor over VPNは今回の主題ではありませんが、VPNに接続した端末でTor Browserを起動することを指してるんですよね?たぶん)

ポイントはSOCKS🧦

  • OpenVPNはSOCKSプロキシを経由してリモートホストに接続できる!
  • TorはTorネットワークを経由するSOCKSプロキシを建てられる!
    • (というかTorの実態は多段のSOCKSプロキシらしい いつかちゃんとソース読みたい)

TODO: なにか分かりやすい図を入れる

ポイントはこの2つだけですね。すごく簡単...でも私はSOCKSプロキシに気づくのに結構時間かかっちゃいました。
この記事はもうこれで終わりなのですが、以下私が試した具体的な手順を記します。

具体的な手順

1. TorのSOCKS5プロキシを構成

Windowsの例を載せます。

Tor Expert Bundleをダウンロード

www.torproject.org のあちこちにダウンロードボタンがある「Tor Browser」ではないことに注意。
Download TorからTor Expert Bundleをダウンロードし、任意のフォルダに配置します。

サービスを起動

管理者権限のあるWindows Power Shellでtor.exeのあるフォルダに移動して以下のコマンドを実行します

tor.exe --service install

services.mscでTor Win32 Serviceが動作していることが確認できます。

サービスを起動すると何もせずとも127.0.0.1:9050でSOCKS5プロキシが起動するようです。

2. .ovpnファイルを編集

OpenVPNでサーバーに接続する際、クライアント側の設定は.ovpnファイルで行うことが多いと思います。
.ovpnファイルに

socks-proxy 127.0.0.1 9050

を追記します。これで127.0.0.1の9050ポートで動いているSOCKS5プロキシ(=Torネットワークを経由するもの)を経由してOpenVPNサーバーに接続するようになります。

http-proxyの例 は検索するとすぐ出てきます。SOCKSの場合でも同様でいいのかが「openvpn socks」等と検索してもすぐにはわからなかったのですが、
Reference manual for OpenVPN 2.0 を参照すると"Tunnel Options"として普通に書いてありますね(2.0に限らず他のバージョンのReference manualにも書いてあった)

おわりに

Wiresharkでパケットを監視すると確かにSOCKSプロキシ構成前は、OpenVPNサーバーのIPアドレスに直接アクセスしていたのが、構成後は別のIPアドレス(whoisしてみるとTorっぽい)にアクセスしていました。
Tor Browserのほうはtorrcとかいじったりしていろいろ試したことあったんですが、TorのSOCKSプロキシは今回初めて使いました。Torは設定が重要だと思うのでまだまだいろいろ検証の余地がありそうです。これで最強の匿名性を手に入れたぜなんてことはありえない。

Discussion