1. リレーポートに到達できることを確認する

ファイアウォールを使用している場合は、ファイアウォールを開放し、着信接続がリレーに使うポート (ORPort) に到達できるようにしてください。

また、あなたのリレーが他の Tor リレー、クライアント、および送信先に到達できるように、すべての発信接続も許可するようにしてください。

特定の ORPort TCP ポート番号は、セットアップページ (OS 別セクション) で確認できます。

2. リレーの動作の確認

tor デーモンの起動後、ログファイル (syslog) に以下のようなエントリーがあれば、リレーは正常に動作しているはずです。

Self-testing indicates your ORPort is reachable from the outside. Excellent.
Publishing server descriptor.

リレーを開始してから約 3 時間後に、メトリクスポータルのリレー検索に表示されるはずです。 Nickname または IP アドレスを使用してリレーを検索できます。

3. Tor リレーのライフサイクルについて知る

リレートラフィックが増加するには時間がかかります。これは特にガードリレーに当てはまりますが、出口リレーの場合も同様です。このプロセスを理解するために新しいリレーのライフサイクルをご覧ください。

4. 構成の管理

複数のリレーを運用する予定の場合、大容量のリレー (サーバーごとに複数の Tor インスタンス) を実行する場合、あるいはオフラインマスターキーなどの強力なセキュリティ機能を手動で追加手順を実行することなく使用する場合は、構成管理を使用して保守性を向上させることができます。

Unix ベースのオペレーティングシステム用の構成管理ソリューションは複数あります (Ansible、Puppet、Salt など) 。

以下の Ansible Role は、特に Tor リレーオペレーター用に開発されており、複数のオペレーティングシステムをサポートしています: Ansible Relayor

5. 重要: 複数の Tor インスタンスを運用する場合

To avoid putting Tor clients at risk, when operating multiple relays you must set a proper FamilyID value and have a valid ContactInfo in your torrc configuration. The FamilyID setting is simply telling Tor clients what Tor relays are controlled by a single entity/operator/organization, so they are not used in multiple positions in a single circuit.

Instead of setting up FamilyID manually, for big operators we recommend to automate it setting via a configuration management solution. Manually managing FamilyID for big relay groups is error-prone and can put Tor clients at risk. Please note that MyFamily, the previous family configuration method, has been removed.

6. DDoS 攻撃から保護するためのファイアウォールルールの追加

過剰な同時接続を阻止するようにファイアウォールを設定することは、リレーに対する DDoS 攻撃への対処に非常に役立つことが示されています。

以下のメカニズムのいずれかを実装することを検討してください。

注意:これらはコミュニティが提供するリソースです。 システムに適用する前に、慎重に確認してください。 また、これらのルールは、過去に発生した特定の攻撃に対して有効であることが示されているに過ぎないことにご注意ください。 攻撃は常に進化しており、新しいルールが必要になることがよくあるので、関連するプロジェクトを定期的に確認するか、tor-relays メーリングリストを購読することで、必要に応じてこれらを更新してください。

7. オプション: 帯域幅の使用 (およびトラフィック) の制限

Tor はデフォルトでは帯域幅の使用を制限しませんが、使用帯域幅とトラフィック量を制限する複数の方法をサポートしています。 これは、Torリレーが 1 日/ 1 週間/ 1 か月の一定の帯域幅または総トラフィック量を超えないようにしたい場合に便利です。 以下の torrc 構成オプションを使って、帯域幅とトラフィックを制限できます。

  • AccountingMax
  • AccountingRule
  • AccountingStart
  • BandwidthRate
  • BandwidthBurst
  • RelayBandwidthRate

月全体にわたり低速なリレーを運用するよりも、一部の時期だけ高速なリレーを運用する方が良いです。

また、FAQの帯域幅の項目もご覧ください。

8. IPv6 の可用性の確認

リレーで IPv6 を有効にすることを推奨します。これは、特に出口リレーとガードリレーで重要です。 Note that Tor requires IPv4 connectivity, you can not run a Tor relay on IPv6-only.

Before relying on IPv6, it's recommended to do some basic IPv6 connectivity tests. 以下のコマンドラインは、サーバーから Tor ディレクトリー管理機関の IPv6 アドレスに ping を送ります。

ping6 -c2 2a02:16a8:662:2203::1 && ping6 -c2 2620:13:4000:6000::1000:118 && ping6 -c2 2001:67c:289c::9 && ping6 -c2 2001:678:558:1000::244 && ping6 -c2 2001:638:a000:4140::ffff:189 && echo OK.

At the end of the output you should see "OK." If that is not the case, do not enable IPv6 in your torrc configuration file before IPv6 is indeed working. IPv6 接続が機能していない状態で IPv6 を有効にすると、IPv4 が機能しているかどうかに関わらず、リレー全体が使用されないままになってします。

If IPv6 works, your relay is likely already reachable via IPv6. Since Tor 0.4.5, IPv6 address discovery is enabled by default. An ORPort line without an explicit address binds to both IPv4 and IPv6 (0.0.0.0:9001 and [::]:9001), and Tor attempts to auto-discover your IPv6 address the same way it discovers your IPv4. If it can't find a working IPv6 address, it simply publishes IPv4 only.

You can confirm which addresses Tor bound to and discovered by checking your notice log (look for the Opened OR listener lines and the reachability-check results).

If you prefer to specify your IPv6 address explicitly - recommended if auto-discovery picks the wrong address - add a second ORPort line:

ORPort [IPv6-address]:9001

Note: Unlike an auto-discovered address (which Tor silently drops if unreachable), an explicitly configured IPv6 ORPort that fails its reachability check will stop your relay from publishing its descriptor at all, so only configure an address you know works. You have to explicitly specify your IPv6 address in square brackets.

構成ファイル内のこの行の位置は関係ありません。 torrc ファイルの最初の ORPort 行の隣に追加するだけです。

グローバル IPv6 アドレスがある場合は、以下のコマンドの出力で確認できます。

ip -6 addr | grep global | sed 's/inet6//;s#/.*##'

To turn IPv6 off entirely and disable auto-discovery, set AddressDisableIPv6 1 in your torrc.

IPv6 接続に対応した出口リレーの場合、クライアントが IPv6 の宛先に到達できるよう、tor デーモンが IPv6 経由での出口通過を許可するように設定します。

IPv6Exit 1

9. リレーの保守

Tor ID キーのバックアップ

tor デーモンを最初にインストールして起動したら、リレーの長期 ID キーのバックアップを取ることをお勧めします。 これらのキーは DataDirectory の「keys」サブフォルダーにあります (フォルダー全体をコピーし、安全な場所に保管します) 。 リレーには立ち上げ時間があるため、ディスク障害後にリレーを回復できるように ID キーをバックアップすることは理にかなっています。そうしないと、再び立ち上げをする必要があります。 キーが盗まれた場合、理論的にはトラフィックの復号化やなりすましが可能になるため、キーの保管場所が非常に安全な場合にのみ、この作業を行ってください。

鍵フォルダーのデフォルトの場所:

  • Debian/Ubuntu: /var/lib/tor/keys
  • FreeBSD: /var/db/tor/keys
  • OpenBSD: /var/tor/keys
  • Fedora: /var/lib/tor/keys

tor-announce メーリングリストの購読

このメーリングリストはトラフィックが非常に少なく、tor の新しい安定版リリースや重要なセキュリティアップデートに関する情報を得ることができます: tor-announce

障害に関する通知の設定

一度リレーをセットアップすれば、その後はほとんど何もしなくても動作するでしょう。 何か問題が発生した場合に、自動的に通知されるのはとても便利ですよね。 そのため、Tor Project が開発した通知サービスである Tor Weather をぜひご利用ください。 これにより、リレーやブリッジがオフラインになったときや、その他のインシデントが発生したときに、リレーオペレーターに通知してくれます。

もう一つのオプションは、リレーの ORPort に到達可能かチェックし、接続できなくなった場合にメールを送ってくれる無料サービスを使うことです。 UptimeRobot は、任意のポートの TCP リスナーを監視できるサービスの 1 つです。 これはリスナーのみをチェックし、Tor プロトコルは使用しません。

リレーの状態を監視するには、帯域幅グラフを確認することをお勧めします。

システムヘルスモニタリング

リレーが正常で過負荷になっていないことを確認するには、基本的なシステムモニタリングを実施して、以下の指標を監視することをお勧めします。

  • 帯域幅
  • 確立された TCP 接続
  • メモリー
  • スワップ
  • CPU

こうしたデータを監視するためのツールはたくさんありますが、munin はその 1 つで、比較的簡単に設定できます。

警告: プライベートなモニタリングデータのグラフを絶対に公開しないでください。これは攻撃者が Tor ユーザーの匿名化を解除するのに役立つ可能性があります。

以下にいくつかのアドバイスを挙げます:

  • トラフィックの統計を公開する場合は、少なくとも 1 日以上にわたってリレーのトラフィックを集計するか、可能であれば帯域幅の集計ウィンドウを大きくして、複数のリレーのグラフ/統計を組み合わせてください。
  • 個々のリレーのレポートは、リレーのグループの合計のレポートよりも良くないです。将来的には、tor は帯域幅の統計を安全に集計するようになるため、個々のリレーの帯域幅のレポートは、tor の統計よりも安全性が低くなります。
  • 期間が短いほど良くないです。
  • グラフよりも数値の方が良くないです。
  • リアルタイムデータは履歴データよりも良くないです。
  • カテゴリー (IP バージョン、受信/送信など) のデータは、合計データよりも良くないです。

ツール

このセクションでは、Tor リレーオペレーターにとって便利なツールをいくつかご紹介します。

  • Nyx: Tor Project のツール (以前は arm) で、リレーのリアルタイムデータを見ることができます。

  • vnstat: vnstat はネットワーク接続を通過するデータ量を表示するコマンドラインツールです。 また、トラフィックグラフを示す PNG 画像を生成するためにも使用できます。vnstatドキュメントおよびデモ出力をご覧ください。