1. 確保中繼埠可達

如果您使用防火牆,請在防火牆中開啟一個洞,以便傳入連線可以到達您將用於中繼的連接埠 (ORPort)。

另外,請確保您也允許所有傳出連接,以便您的中繼可以到達其他 Tor 中繼、用戶端和目的地。

您可以在設定頁面(在作業系統特定部分)中找到特定的 ORPort TCP 連接埠號碼。

2. 驗證您的中繼是否正常運作

如果您的日誌檔案 (syslog) 在啟動 Tor 守護程式後包含以下項目,您的中繼應該如預期啟動並執行:

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

在你啟動中繼點約 3 小時後,它應會出現在 Metrics 入口網站的 Relay Search 上。 您可以使用您的暱稱或 IP 位址搜尋您的中繼。

3. 了解 Tor 中繼生命週期

中繼流量需要一些時間才會增加,守衛中繼尤其如此,而出口中繼則較不受時間影響。 了解此過程,請閱讀 新中繼的生命週期。

4. 配置管理

如果您打算執行多個中繼,或者想要執行高容量中繼(每個伺服器多個 Tor 實例),或者想要使用 Offline Master Keys 等強大的安全功能而不手動執行其他步驟,您可能需要使用設定管理來獲得更好的可維護性。

Unix 系統有多種設定管理解決方案(Ansible、Puppet、Salt 等)。

下列 Ansible Role 專為 Tor 中繼營運者打造,並支援多種作業系統:Ansible Relayor。

5. 重要:如果您執行多個 Tor 實例

為了避免 Tor 用戶端面臨風險,在營運多個中繼時,您必須設定正確的 FamilyID 值,並在 torrc 設定中填寫有效的 ContactInfo。 FamilyID 設定只是告訴 Tor 用戶端哪些 Tor 中繼由單一實體/運營商/組織控制,因此它們不會在單個迴路中的多個位置使用。

對於大型營運商,我們建議透過組態管理解決方案自動執行 FamilyID 設定,而不是手動執行此操作。 對大型中繼點群組手動管理 FamilyID 容易出錯,並可能讓 Tor 用戶端面臨風險。 請注意,先前用來設定中繼家族的 MyFamily 已經移除。

6.新增防火牆規則,防範DDoS攻擊

事實證明,將防火牆配置為阻止過多並發連線可以顯著幫助應對針對中繼的 DDoS 攻擊。

請考慮實作以下其中一種機制:

注意:這些為社群提供的資源。 在將它們應用到您的系統之前,您應該仔細檢查它們。 此外請注意,這些規則已證實可因應過去發生過的特定攻擊。 攻擊手法持續演進,往往需要新規則,因此請保持聯繫以便在必要時更新規則;你可以訂閱相關專案,或訂閱 tor-relays 郵件清單。

7. 可選:限制頻寬使用(和流量)

Tor 預設不會限制其頻寬使用,但支援多種方式限制使用的頻寬和流量。 若您希望確保 Tor 中繼不會超過每日/每週/每月的頻寬或總流量上限,這會很方便。 以下 torrc 設定選項可用於限制頻寬與流量:

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

在一個月的某個時間進行快速轉播比進行整個月的緩慢轉播更可取。

另請參閱 FAQ 中的頻寬條目。

8. 檢查 IPv6 可用性

我們鼓勵所有人在自己的中繼點啟用 IPv6。這對出口節點與 guard 中繼點特別有價值。 請注意,Tor 需要 IPv4 連線,您無法在只有 IPv6 的環境中執行 Tor 中繼。

在依賴 IPv6 之前,建議先做一些基本的 IPv6 連線測試。 以下命令列將從您的伺服器 ping Tor 目錄授權節點(directory authorities)的 IPv6 位址:

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.

在輸出的最後,您應該會看到「OK.」。如果沒有,請先不要在 torrc 設定檔中啟用 IPv6,等 IPv6 確實可以運作之後再設定。 如果在 IPv6 連線不工作的情況下啟用 IPv6,則無論 IPv4 是否運作,整個中繼都將保持未使用狀態。

如果 IPv6 可以運作,您的中繼很可能已經能透過 IPv6 連線。 自 Tor 0.4.5 起,IPv6 位址偵測預設為啟用。沒有明確指定位址的 ORPort 設定會同時綁定 IPv4 與 IPv6(0.0.0.0:9001 與 [::]:9001),Tor 也會用偵測 IPv4 位址的同樣方式,嘗試自動偵測您的 IPv6 位址。 如果 Tor 找不到可用的 IPv6 位址,就只會發布 IPv4 位址。

您可以查看 notice 記錄檔,確認 Tor 綁定並偵測到哪些位址(請找 Opened OR listener 這幾行,以及可達性檢查的結果)。

如果您想明確指定 IPv6 位址(自動偵測選錯位址時建議這麼做),請再加入一行 ORPort:

ORPort [IPv6-address]:9001

注意:自動偵測到的位址如果無法連線,Tor 會直接略過、不另行通知;但明確設定的 IPv6 ORPort 若沒有通過可達性檢查,您的中繼會完全停止發布描述符,因此請只設定您確定可以運作的位址。 您必須以方括號明確指定 IPv6 位址。

該行在設定檔中的位置並不重要。 您可直接在 torrc 檔案第一組 ORPort 行旁加入。

若您有全域 IPv6 位址,應能在下列指令輸出中找到:

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

若要完全關閉 IPv6 並停用自動偵測,請在 torrc 中設定 AddressDisableIPv6 1。

如果您是具有 IPv6 連線的退出中繼,請告訴您的 Tor 守護程序允許透過 IPv6 退出,以便用戶端可以到達 IPv6 目的地:

IPv6Exit 1

9. 維護中繼

備份 Tor 身份密鑰

在初次安裝並啟動 tor 服務後,建議備份中繼點的長期身份金鑰。 它們位於你 DataDirectory 的 keys 子資料夾中(直接複製整個資料夾,並存放在安全位置即可)。 由於中繼需要啟動時間,因此需要備份身份密鑰以便能夠在磁碟故障後恢復中繼的聲譽 - 不然就得再次經歷啟動階段。 只有在您有非常安全的地方存放金鑰時才這麼做,因為金鑰一旦被竊,理論上可能讓他人解密流量或冒充您的中繼。

金鑰資料夾的預設位置:

  • 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 偵聽器的服務之一。 這僅檢查偵聽器,但不使用 Tor 協定。

監控中繼健康狀態的一個好方法是查看其頻寬圖。

系統健康監測

為了確保您的中繼健康且不會不堪重負,有必要進行一些基本的系統監控以密切注意以下指標:

  • 頻寛
  • 建立了 TCP 連接
  • 記憶體
  • Swap
  • CPU

有許多工具可監控這類資料,munin 就是其中之一,而且相對容易設定。

注意:不要公開您的私人監控資料圖,因為這可能有助於攻擊者對 Tor 使用者進行去匿名化。

一些實用建議:

  • 如果您想發布流量統計數據,您應該聚合至少一天的中繼流量,或者在可行的情況下使用更大的頻寬聚合視窗,並在可能的情況下合併多個中繼的圖表/統計數據。
  • 個別中繼報告不如中繼群組總數報告。將來,tor 會安全地彙總頻寬統計,因此任何個別的中繼頻寬報告都將不如 tor 的統計安全。
  • 較小的時期更糟。
  • 數字比圖表更糟。
  • 即時資料比歷史資料差。
  • 類別資料(IP版本、輸入/輸出等)比總資料差。

工具

本節列出幾個你作為 Tor 中繼點營運者可能會覺得實用的工具。

  • Nyx:是一個 Tor 專案工具(以前稱為 Arm),可讓您查看中繼的即時資料。

  • vnstat:一款命令列工具,可顯示流經網路連線的資料量。 您亦可用它產生顯示流量圖的 PNG 圖。vnstat documentation and demo output.