Tor(The Onion Router の略)は、ユーザーがインターネットを匿名で閲覧できるようにする匿名ネットワークで、トラフィックを暗号化し、一連のノードを通じてルーティングします。これらのノードは誰でも運営でき、最終ノードである出口ノードは、トラフィックを通常のインターネットに戻す役割を担っています。Tor 出口ノードを運営することは、インターネットのプライバシーと自由に貢献する重要な方法ですが、いくつかの技術的専門知識と責任が必要です。このブログ記事では、Tor 出口ノードをホストするプロセスを説明します。
ステップ 0: デプロイ前に考慮する#
考慮すべきいくつかの事項があります:
- 法的考慮事項:一部の国では、Tor 出口ノードをホストすることは違法であり、その場合法的な結果に直面する可能性があります。自国の法律を調査し、Tor 出口ノードをホストすることが合法であることを確認する必要があります。
- 帯域幅とリソース消費: Tor 出口ノードは大量の帯域幅を消費する可能性があり、トラフィックを処理するためには高速で信頼性のあるインターネット接続が必要です。ホスティングプランに帯域幅の上限がある場合、追加の帯域幅を支払う必要があるかもしれません。
- 技術的専門知識: Tor 出口ノードをホストするには、Linux 管理に関する技術的専門知識と経験が必要です。サーバーをセットアップし、Tor ソフトウェアをインストールして構成し、ノードがスムーズに動作するように維持する必要があります。
- 違法行為に関連するリスク:出口ノードの運営者として、あなたのノードを通過する違法行為に対して責任を問われる可能性があります。Tor はユーザーの匿名性を保護するように設計されていますが、完全ではなく、法執行機関が活動をあなたのノードに追跡できる場合があります。
- 評判リスク: Tor 出口ノードをホストすると、法執行機関やインターネットサービスプロバイダー、その他の組織からの望ましくない注目や監視を引き寄せる可能性があります。進める前に、自分の評判に対する潜在的なリスクを考慮することが重要です。
ホストできる Tor ノードには、中間 / ガードノード、ブリッジノード、出口ノードの 3 種類があります。中間ノードは、Tor ネットワーク内の異なるノード間でトラフィックをルーティングするのを助ける中継ですが、ネットワークを離れるトラフィックの最終ノードとしては機能しません。ブリッジノードは中間ノードに似ていますが、Tor ディレクトリに公開されていないため、ユーザーが検閲や監視を回避するのに役立ちます。一方、出口ノードは Tor ネットワークを離れるトラフィックの最終ノードであり、ユーザーが通常のインターネットに匿名でアクセスするためのゲートウェイを提供します。ただし、出口ノードをホストすることには、出口ノードが違法行為のトラフィックをルーティングするために使用される可能性があるため、重大な法的および倫理的責任が伴います。Tor ノードをホストする決定と、どのタイプのノードをホストするかは、リスクと利益を慎重に考慮し、Tor プロジェクトのガイドラインとポリシーに従って行うべきです。
ステップ 1: 場所を選ぶ#
Tor 出口ノードをホストする最初のステップは、サーバーの場所を選ぶことです。高速で信頼性のあるインターネット接続があり、帯域幅の上限が高いか無制限のプランを選ぶことが重要です。出口ノードは大量の帯域幅を消費する可能性があるためです。また、Tor が合法であり、ブロックされていない場所を選ぶことも重要です。Tor が許可されていない国で出口ノードをホストすると、法的な問題が発生する可能性があります。
ステップ 2: サーバーをセットアップする#
場所を選んだら、サーバーをセットアップする必要があります。予算とニーズに応じて、仮想プライベートサーバー(VPS)または専用サーバーを使用できます。Ubuntu や Debian などの Linux オペレーティングシステムをインストールし、Tor 出口ノードとして使用するために構成する必要があります。Tor プロジェクトは、Linux 上で Tor 出口ノードをセットアップするための詳細な手順を提供しています。
ステップ 3: Tor をインストールして構成する#
次に、Tor ソフトウェアをインストールし、出口ノードとして使用するために構成する必要があります。Linux ディストリビューションのパッケージマネージャを使用して Tor をインストールするか、Tor プロジェクトのウェブサイトからダウンロードしてインストールできます。インストールが完了したら、Tor を出口ノードとして実行するように構成する必要があります。これには、Tor 構成ファイルの編集が含まれます。Tor プロジェクトは、出口ノードとして Tor を構成するための詳細な手順を提供しています。
Tor プロジェクトは、インストールプロセスをガイドするさまざまなドキュメントを提供しています:https://community.torproject.org/onion-services/setup/install/
セットアップ中にこのビデオも役立ちました: https://www.youtube.com/watch?v=EMZqZ3XX8Eo
#!/bin/bash
# ステップ1: apt-transport-httpsをインストール
sudo apt install apt-transport-https
# ステップ2: Torリポジトリをsources.list.dに追加
OS_CODENAME=$(lsb_release -c | awk '{print $2}')
ARCHITECTURE=$(dpkg --print-architecture)
sudo tee /etc/apt/sources.list.d/tor.list >/dev/null <<EOF
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${OS_CODENAME} main
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-${OS_CODENAME} main
deb [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-${OS_CODENAME} main
deb-src [arch=${ARCHITECTURE} signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-${OS_CODENAME} main
EOF
# ステップ3: TorリポジトリのGPGキーを追加
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
# ステップ4: TorとDebianキーリングをインストール
sudo apt update
sudo apt install tor deb.torproject.org-keyring
Debian/Ubuntu を使用している場合は、上記のコマンドをシェルファイル(例: tor.sh)にコピーして実行できます:
chmod u+x tor.sh
sudo ./tor.sh
その後、`/etc/tor/torrc` にある構成ファイルをお好みのテキストエディタで修正します。
torrc ファイルの 2 つの異なる構成は次のとおりです:
出口中継用:
(Tor プロジェクトは、「有用な出口中継になるには、少なくとも宛先ポート 80 と 443 を許可する必要があります。」と述べています。)
Exitpolicy accept *:443
Exitpolicy accept *:80
Exitpolicy reject *:*
ExitRelay 1
トラフィックのみを中継するブリッジ用:
Exitpolicy reject *:*
Exitpolicy reject *:* を設定しても、ノードがトラフィックを転送しないことを意味するわけではありません。それは、ノードが Tor トラフィックの出口ポイントとして使用されないことを意味します。
Tor ノードを介して他のサービスを中継することを許可するには、torrc ファイルに次の行を追加できます:
Exit policy accept *.*
ただし、DDoS 攻撃やメールスパムに一般的に使用されるポートがあるため、推奨されません。悪用を防ぐために、スパムや悪用の可能性があるメールやその他のポートを開かないことが推奨されます。
私の個人的な意見としては、HTTP/HTTPS トラフィックのみを私の Tor ノードから出口させることを許可します。
ORPort 20308
Exitpolicy accept *:443
Exitpolicy accept *:80
Exitpolicy reject *:*
ExitRelay 1
Nickname yourtorrelaynickname
ContactInfo youremail@mail.com
IPv6Exit 1
obfs4 ブリッジを設定するには、次の追加行を使用します:
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:40001
ExtORPort auto
obfs4 ブリッジの設定については、https://community.torproject.org/relay/setup/bridgeを参照してください。
異なるタイプの中継ノードをホストするために、Tor プロジェクトにはウィキがあります: https://community.torproject.org/relay/setup/
出口ノードの場合、ローカル DNS リゾルバを設定する必要があります:
Debian/Ubuntu
次のコマンドは unbound をインストールし、DNS 設定をバックアップし、システムにローカルリゾルバを使用するように指示します:
apt install unbound
cp /etc/resolv.conf /etc/resolv.conf.backup
echo nameserver 127.0.0.1 > /etc/resolv.conf
不要な設定変更を避けるために(例えば、DHCP クライアントによって):
chattr +i /etc/resolv.conf
Debian の設定はデフォルトで QNAME 最小化(RFC7816)が有効になっているため、明示的に有効にする必要はありません。あなたがインストールした Unbound リゾルバも DNSSEC 検証を行います。
systemd-resolvedをスタブリスナーで実行している場合は、もう少し手間がかかるかもしれません。詳細については、resolved.conf マニュアルページを参照してください。
ステップ 4: 出口ノードをテストする#
Tor を構成した後、出口ノードが正常に動作していることを確認するためにテストする必要があります。Tor ブラウザを使用して出口ノードをテストし、ウェブサイトに接続して、IP アドレスが出口ノードの IP アドレスとして表示されることを確認できます。また、Tor Metrics ウェブサイトを使用して、出口ノードの帯域幅使用量とパフォーマンスを監視することもできます。
出口ノードが稼働しているかどうかを確認するには、このバルクリストをチェックしてください: https://check.torproject.org/torbulkexitlist
ステップ 5: 出口ノードを監視する#
出口ノードが稼働している場合、悪意のある目的で使用されていないことを確認するために監視することが重要です。Tor プロジェクトは、出口ノードを通過するトラフィックを追跡するためのログ分析ソフトウェアを使用することや、異常な活動を監視するための Tor Metrics ウェブサイトを使用することなど、推奨される監視ツールと技術のリストを提供しています。また、出口ノードを運営するための Tor プロジェクトのガイドラインを定期的に確認し、ポリシーに準拠していることを確認することも良いアイデアです。
Tor プロジェクトは、インストール後の良い実践のための便利なページも提供しています: https://community.torproject.org/relay/setup/post-install/
Elsa ノードは、私が現在運営している Tor 出口ノードです。詳細は: https://metrics.torproject.org/rs.html#search/elsa
結論#
Tor 出口ノードを運営することは、インターネットのプライバシーと自由に貢献する報酬のある方法ですが、いくつかの技術的専門知識と責任が必要です。このブログ記事で説明した手順に従うことで、Tor ネットワークに貴重なサービスを提供しながら、サーバーとそのユーザーのセキュリティとプライバシーを維持する Tor 出口ノードを設定して運営することができます。