みなさん、こんにちは!日夜、目に見えないパケットの往来を見守り、安全なネットワークの構築に情熱を注いでいるセキュリティスペシャリストの筆者です。
カフェや空港のフリーWi-Fi(公共Wi-Fi)に接続するとき、「この通信、誰かに覗かれていないかな?」と不安になったことはありませんか?
そんなとき、私たちの通信を暗号化のシールドで守ってくれるのが「VPN(仮想専用線)」ですよね。
そしてもう一つ、インターネット上のプライバシーを究極まで高める仕組みとして有名なのが「Tor(トー、オニオンルーティング)」です。
「じゃあ、この2つを組み合わせたら、最強のセキュリティになるのでは?」
そう考えたあなたは、素晴らしいエンジニアの素質を持っています!
しかし、実はこの2つ、「どちらを先に繋ぐか」によって、裏側の仕組みも、得られるメリットも、そして発生するリスクも全く異なるものになるのです。
今回は、インフラやネットワークの勉強を始めたばかりのあなたに向けて、小難しいビット数や専門用語は脇に置いて、身近な「郵便配達」に例えながら、「Tor over VPN」と「VPN over Tor」のアーキテクチャの違いを優しく丁寧に紐解いていきます。一歩ずつ、一緒に理解を深めていきましょう!
—
1. 基礎知識をおさらい:VPNとTorを郵便に例えると?
具体的な組み合わせを見る前に、まずは「VPN」と「Tor」がそれぞれどんな仕事をしているのか、イメージで掴んでおきましょう。
VPNは「専用の頑丈な装甲車」
VPNは、あなたのパソコンからVPN会社のサーバーまで、「絶対に中身が見えない頑丈な装甲車」を走らせるようなものです。
- 仕組み: あなたが送った手紙(パケット)は、装甲車の中に隠されます。途中の道路(プロバイダやWi-Fiの盗聴者)からは、装甲車が走っていることしか分からず、中に誰の手紙が入っているかは分かりません。
- 特徴: 装甲車が到着するビル(VPNサーバー)に一度届けられた手紙は、そこから普通の郵便として宛先のWebサイトへ発送されます。
Torは「3人の配達員がリレーする秘密の封筒」
Torは、玉ねぎ(オニオン)のように手紙を何重もの封筒で包み、「3人の異なる配達員(ノード)」を経由して届ける仕組みです。
- 仕組み:
1. 1人目の配達員(入り口)は「あなたの住所」と「2人目の住所」だけを知っています。
2. 2人目の配達員(中間)は「1人目の住所」と「3人目の住所」だけを知っています。
3. 3人目の配達員(出口)は「2人目の住所」と「本当の届け先」だけを知っています。
- 特徴: 配達員たちは全員、手紙の「一部」しか見られないため、「誰が・誰に」手紙を送ったのかを、誰も一人では特定できないようになっています。
この2つを合体させるとどうなるのか、いよいよ本題に入りましょう!
—
2. パターンA:Tor over VPN(先にVPNに繋ぐ)
まずは、現在もっとも一般的で、設定も簡単な「Tor over VPN」です。
これは、あなたのパソコンからまずVPNの装甲車に乗り、その中でTorの3重封筒を作って発送する方法です。
【あなたのPC】 ➡️ [ VPNの装甲車 ] ➡️ 【VPNサーバー】 ➡️ [ Torの3人リレー ] ➡️ 【目的のWebサイト】
この接続のメリット
- プロバイダにTorの使用を隠せる:
通常、Torを使うと、インターネット事業者(ISP)やWi-Fiの管理者に「あ、この人はTorを使っているな」とバレてしまいます。しかし、この方法では最初にVPNの装甲車に入るため、周りからは「VPNを使っている」ことしか見えません。
- VPN会社に宛先を知られない:
VPN会社はあなたの正体(IPアドレス)を知っていますが、装甲車から出てきた手紙はさらにTorの3重封筒で包まれているため、VPN会社も「あなたが最終的にどのWebサイトを見ているか」は分かりません。
デメリットと注意点
- 「出口(Exit Node)」での盗聴リスク:
Torの3人目の配達員(出口ノード)から目的のWebサイトへ手紙が届く瞬間、その手紙が普通の「暗号化されていない通信(HTTPなど)」だった場合、3人目の配達員に手紙を盗み見られてしまう可能性があります。
—
3. パターンB:VPN over Tor(先にTorに繋ぐ)
次は、順番を逆にした「VPN over Tor」です。
こちらは、最初にTorの3重封筒を作り、その封筒の「一番中身の便箋」として、VPNの装甲車の乗車券を入れておく方法です。
手紙が3人目の配達員(出口ノード)を通り抜けた後、そこで初めてVPNの装甲車が出現し、目的のWebサイトへと向かいます。
【あなたのPC】 ➡️ [ Torの3人リレー ] ➡️ 【Torの出口】 ➡️ [ VPNの装甲車 ] ➡️ 【目的のWebサイト】
この接続のメリット
- Torの出口での盗聴を完全に防げる:
Torの3人目の配達員(出口ノード)の元を去る瞬間も、通信はまだVPNの装甲車(暗号化)の中にあります。そのため、悪意のあるTorの出口ノードに通信を覗かれる心配がありません。
- Webサイト側で「Torお断り」を回避できる:
一部のWebサイトは、セキュリティのためにTorからのアクセスをブロックしています。しかし、この方法なら、相手のWebサイトに届く直前は「VPNサーバーからのアクセス」に見えるため、ブロックを回避しやすくなります。
デメリットと注意点
- VPN会社を100%信用する必要がある:
この方法では、Torの匿名性をすり抜けた後にVPNサーバーを通過します。つまり、VPN会社には「あなたがどのWebサイトを見ているか」が丸見えになってしまいます。
- 設定が非常に難しい:
多くの商用VPNサービスは、この接続方法をサポートしていません。自分で高度なネットワーク設定を行う必要があります。
—
4. 2つのアーキテクチャ比較まとめ
ここで、2つの違いをわかりやすく表に整理してみましょう。
| 比較項目 | Tor over VPN (先にVPN) | VPN over Tor (先にTor) |
| :— | :— | :— |
| 接続の順番 | あなた ➡️ VPN ➡️ Tor ➡️ Web | あなた ➡️ Tor ➡️ VPN ➡️ Web |
| 難易度 | 非常に簡単(VPNを起動してTorブラウザを開くだけ) | 難しい(特別な設定や対応VPNが必要) |
| ISP(プロバイダ)に見えるもの | VPNを使っていること | Torを使っていること |
| 最終宛先Webに見えるもの | Torからのアクセス(ブロックされやすい) | VPNからのアクセス(比較的通りやすい) |
| 通信速度 | 遅い(VPN + Tor) | 極めて遅い(Tor + VPNのオーバーヘッド) |
—
5. 【実践編】実務で使える設定例(VPN over Torをシミュレートする)
「概念はわかったけれど、実際のインフラ構築やLinux環境ではどう設定するの?」
そんな疑問を持つ方のために、実務で役立つ設定例をご紹介します。
ここでは、クライアントPC(Linux)でローカルに起動した Tor(SOCKSプロキシ)を経由して、OpenVPN でリモートのVPNサーバーに接続する(つまり VPN over Tor の状態を作る)ための設定ファイル(.ovpn)の記述例を見てみましょう。
OpenVPNの設定ファイル(client.ovpn)の例
通常、OpenVPNは直接インターネット上のVPNサーバーを目指しますが、設定ファイルに socks-proxy という魔法の1行を加えることで、Torをトンネルとして経由させることができます。
# ====================================================================
# OpenVPN over Tor (VPN over Tor) クライアント設定サンプル
# ====================================================================
# クライアントモードとして動作
client
dev tun
proto tcp # Torを経由するため、信頼性の高いTCPを選択します
# 接続先となるVPNサーバーのIPアドレスとポート
remote vpn.example.com 443
# --------------------------------------------------------------------
# 【最重要】Torのローカルプロキシを経由する設定
# --------------------------------------------------------------------
# Torはデフォルトでローカル(127.0.0.1)のポート 9050 でSOCKSプロキシを起動します。
# この行を追加することで、すべてのVPN通信をTorのネットワークへ流し込みます。
socks-proxy 127.0.0.1 9050
# 無限に接続を試みる設定(Torの経路切り替え等で切断された場合の対策)
resolv-retry infinite
nobind
# セキュリティと通信の暗号化設定
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
verb 3
# 以下に認証用の鍵や証明書を記述します(環境に合わせて変更してください)
<ca>
-----BEGIN CERTIFICATE-----
# (ここにCA証明書の内容が入ります)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
# (ここにクライアント証明書の内容が入ります)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
# (ここにプライベートキーの内容が入ります)
-----END PRIVATE KEY-----
</key>
設定のポイント
1. プロトコルは tcp を選ぶ: Torネットワークは構造上、UDPのパケットをそのまま流すことができません。そのため、OpenVPNのプロトコルは proto tcp に設定します。
2. socks-proxy 127.0.0.1 9050: これが最大のポイントです。あなたのパソコンで裏で動いているTor(ポート 9050)を「中継基地」として指定しています。これにより、パケットは自動的に Tor ➡️ VPNサーバー という順番で旅立つことになります。
—
6. まとめ:私たちはどちらを選ぶべき?
今回は、似て非なる2つのセキュリティアーキテクチャについて解説しました。
- 一般的なプライバシー保護や、手軽さを求めるなら:
断然 「Tor over VPN」 がおすすめです。VPNアプリを立ち上げて、公式のTorブラウザを起動するだけで、安全な二重の盾を手に入れることができます。
- Torの出口での傍受を防ぎ、Webサイトのブロックを回避したい上級者は:
少し難易度は高いですが、「VPN over Tor」 の構成を検討することになります。ただし、劇的に通信速度が低下するため、実用には忍耐が必要です。
ネットワークの世界は、一見複雑な暗号や英語のパラメータだらけに見えますが、こうして「誰が誰に、どんな封筒で手紙を送っているのか」を想像すると、一気に親しみやすくなりますよね。
これからも、パケットたちの頼もしい旅の案内人として、一緒にネットワークとセキュリティの深い世界を楽しんで学んでいきましょう!
また次回の記事でお会いしましょう。安全なインフラライフを!
コメント