OffshoreVps
プライバシーと法律2026年10月20日読了時間 8 分執筆:OffshoreVps チーム

.onion サイトをホストする:VPS で Tor 隠しサービス

Web サイトを Tor の onion サービスとして運用:Tor をインストールし、Nginx を localhost にバインドし、.onion アドレスを確認し、クライアント認証を追加して、身元が露呈する漏えいを避けます。

Tor の onion サービスを使うと、双方が相手の IP アドレスを知ることなく、Tor ネットワーク経由でサイトにアクセスしてもらえます。サーバーから Tor へ外向きに接続するため、受信用のポートを一切開ける必要がありません。このガイドでは、Ubuntu の VPS に Nginx で小さなサイトを配信する onion サービスを設定します。

Tor onion サービスの公開に使うコマンドを、「sudo apt update」から始めて表示している VPS のターミナルウィンドウ
このガイドでサーバー上で実行するコマンドの例。

onion サービスで得られるもの

  • 鍵から生成される .onion アドレス。自己認証型のため、認証局は不要です。
  • Tor 内での、訪問者とサーバー間のエンドツーエンド暗号化。
  • サーバーの公開 IP アドレスを訪問者に見せる必要がありません。

サイトの内容が合法になるわけではなく、同じマシンを指すクリアウェブのドメインなど、他で犯したミスが隠れるわけでもありません。

ステップ 1:Tor と Nginx をインストールする

sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor

ステップ 2:Nginx をローカルホストのみにバインドする

Web サーバーが公開インターフェースで応答すると、クリアウェブの IP と onion サイトを関連付けられてしまいます。サイトの設定を編集し、ループバックで待ち受けるようにしてください。

server {
    listen 127.0.0.1:8080;
    server_name _;
    root /var/www/onion;
    index index.html;
    server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
このガイドの手順(順番どおり):1. onion サービスで得られるもの;2. Tor と Nginx をインストールする;3. Nginx を localhost のみにバインドする;4. 隠しサービスを宣言する;5. 任意のクライアント認可;6. よくある情報漏えいをふさぐ
このガイドの手順(順番どおり)。

ステップ 3:隠しサービスを宣言する

次の行を /etc/tor/torrc に追加します。

HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname

最後のコマンドで、56 文字の .onion アドレスが表示されます。Tor Browser で開いて確認してください。フォルダー /var/lib/tor/my_site/ をバックアップしてください。中の鍵がそのままアドレスであり、失うと新しいアドレスになります。

ステップ 4:任意のクライアント認可

非公開のサービスにする場合は、承認した訪問者だけが持つ鍵を追加します。ファイル /var/lib/tor/my_site/authorized_clients/alice.auth を作成し、descriptor:x25519:PUBLIC_KEY の形式で 1 行記述してから、Tor をリロードします。対応する秘密鍵を持たない訪問者には、サービスが存在することすらわかりません。

ステップ 5:よくある漏洩を塞ぐ

  • ページからクリアウェブ上のアセット、フォント、アナリティクスを参照しないでください。
  • エラーページとヘッダーは汎用的なものにし、server_tokens off を維持します。
  • サーバーの時計を正確に保ってください。Tor には必要です。
  • SSH 以外はすべてファイアウォールで遮断します:sudo ufw default deny incoming。Tor に受信ポートは不要です。
  • 完全に分離できていない限り、同じホストでクリアウェブのサイトを運用しないでください。

何かを公開する前にサーバー OpSec の習慣を読み、新しいサーバーではハードニングのチェックリストを使ってください。