リレーガイド技術的な考慮事項はすでにお読みになったことと思います。このサブページは、出口リレーを有効にしたいオペレーターのためのものです。

この目的専用のサーバーに出口リレーを設定することをお勧めします。 他のサービスにも利用するサーバーに Tor 出口リレーをインストールすることは推奨されません。 自分のトラフィックと出口リレーのトラフィックを混ぜないでください。

リバース DNS と WHOIS レコード

非出口リレーを出口リレーにする前に、リバース DNS レコード (PTR) を設定して、このリレーが Tor の出口リレーであることを分かりやすくしましょう。名前に「tor-exit 」のようなものを含むとよいでしょう。

プロバイダーが提供している場合は、WHOIS レコードに Tor 出口リレーであることを明確に示す内容が含まれていることをご確認ください。

あなたが所有するドメイン名を使ってください。リバース DNS のドメイン名に torproject.org は絶対に使わないでください。

出口ノードに関する HTML ページ

これが Tor の出口ノードであることをさらに明確にしたい場合は、出口ノードに関する HTML ページを準備してください。 あなたの DirPort が TCP 80番ポートであれば、torDirPortFrontPage 機能を使ってそのポートに HTML ファイルを表示することができます。 Tor の出口ノードの IP アドレスにアクセスするブラウザーには、このファイルが表示されます。

以前にこれを設定していない場合は、設定用の以下の行を torrc に適用する必要があります。

DirPort 80
DirPortFrontPage /path/to/html/file

私たちは出口ノードに関する HTML ファイルのサンプルを提供していますが、必要に応じて調整してください。

また、出口リレーの運用に関するヒントを紹介するブログ記事もあります。

注意: DirPort は Tor 0.4.6.5 から非推奨となり、セルフテストは tor のログに表示されなくなりました。 詳細につきましては、リリースノートおよびチケット #40282 をご覧ください。

出口ポリシー

出口ポリシーの記述は、出口リレーの設定における最も重要な部分の1つです。 出口ポリシーは、転送を許可する宛先ポートを指定します。 これは、悪用に関する苦情のメールの件数に影響します (ポート数が少なければ苦情メールも少なくなりますが、少数のポートしか許可しない出口リレーはあまり役に立ちません) 。 使える出口ノードを設定したい場合は、少なくとも80番と443番のポートを許可する必要があります。

特にホスティング業者との付き合いが浅い場合、新しい出口リレーとして、(悪用に関する苦情のメールの件数を減らすために) 縮小された出口ポリシーから開始し、経験を積むにつれてさらに拡大することをお勧めします。 詳細につきましては、縮小された出口ポリシー wiki ページをご覧ください。

出口リレーに変更するには、torrc 構成ファイルの ExitRelay を 0 から 1 に変更し、tor デーモンを再起動してください。

ExitRelay 1

出口リレーの DNS

他の種類のリレーと異なり、出口リレーは Tor クライアントの DNS 解決も行います。 出口リレーの DNS 解決は Tor クライアントにとって重要であり、キャッシュを使うことで信頼性と速度を維持する必要があります。

  • DNS 解決は出口リレーが提供するパフォーマンスと信頼性に大きな影響を与える可能性があります。
  • 一極集中を避けるために、主要な DNS リゾルバー (Google、OpenDNS、Quad9、Cloudflare、4.2.2.1-6) をプライマリまたはフォールバック DNS リゾルバーとして使用しないでください。
  • フォワーダーを使用せずに、ローカルキャッシュおよび DNSSEC 検証リゾルバーを実行することをお勧めします (具体的な手順は、さまざまなオペレーティングシステム向けに後述します) 。
    • etc/resolv.conf 構成にフォールバックとして2つ目の DNS リゾルバーを追加する場合、 自律システム内のリゾルバーを選択し、そのファイルの最初のエントリーでないことを確認します (最初のエントリーはローカルリゾルバーである必要があります) 。
    • unbound のようなローカルリゾルバーが選択できない場合は、プロバイダーが同じ自律システムで実行しているリゾルバーを使用します (IP アドレスがリレーと同じ AS にあるかどうかを調べるには、bgp.he.net を使用して調べることができます) 。
  • DNS クエリの AS レベルの公開を制限するために、/etc/resolv.conf ファイルに3つ以上のリゾルバーを追加しないでください。
  • Tor IP が (一時的に) ブロックされることは珍しくなく、ブロックされた DNS リゾルバーの送信元 IP アドレスが広範な影響を与える可能性があるため、ローカルリゾルバーで、Tor 出口または非出口で使用される発信元 IP アドレスを使用しないようにします。 unbound では、outgoing-interface オプションを使って、他の DNS サーバーに接続するためのソース IP アドレスを指定することができます。
  • 大規模な出口オペレーター (>=100Mbit/秒) は、Tor の DNS 解決タイムアウト率を監視および最適化してください。 これは Tor の Prometheus エクスポーター (MetricsPort) で実現できます。 以下のメトリクスを使用して、Tor で表示されるタイムアウト率を監視できます。
tor_relay_exit_dns_error_total{reason="timeout"} 0

DNS サーバーソフトウェアには複数のオプションがあります。Unbound がよく使われますが、お好きなものをご自由にお使いください。 DNS リゾルバーソフトウェアを選択する際には、DNSSEC 検証と QNAME 最小化 (RFC7816) をサポートしていることをご確認ください。 リゾルバーソフトウェアが自動的に更新されるように、オペレーティングシステムのパッケージマネージャーを使用してインストールします。

独自の DNS リゾルバーを使用することで、アップストリームリゾルバーが実施する可能性のある DNS ベースの検閲の影響を受けにくくなります。

以下は、DNSSEC 検証およびキャッシュリゾルバーである Unbound を出口リレーにインストールして構成する方法の手順です。Unbound には多くの設定やチューニングノブがありますが、これらの手順はシンプルで短いものにしています。基本的なセットアップでほとんどのオペレーターは十分です。

Unbound に変更したら、正しいホスト名を解決して、想定通り機能しているか検証してください。機能しない場合は、以前の /etc/resolv.conf ファイルを復元できます。

Debian/Ubuntu

Debian/Ubuntu で Unbound をインストールする方法

CentOS/RHEL

CentOS/RHEL で Unbound をインストールする方法

FreeBSD

FreeBSD で Unbound をインストールする方法

openSUSE

openSUSE で Unbound をインストールする方法