これが構築するもの
ミドルリレーです。クライアントと他のリレーからの接続を受け入れ、ネットワーク内でトラフィックを転送し、通常のインターネット上の宛先への接続を開くことはありません。ミドルリレーについての虐待苦情を受け取る人は誰もいません。外部から見ると、公開された他のリレーのリストと暗号化されたトラフィックを交換するだけで、他には何もしないからです。
この区別が、このガイドが存在する唯一の理由です。出口リレーは別の話です。それらに関する苦情はあなたではなく私たちの虐待窓口に届きます。そのため、利用規約を読み、設定する前にチケットを開いてください。以下はすべて意図的に出口を2回無効にします。
始める前に
- R-4。Torは接続ごとにシングルスレッドでネットワーク依存です。4つの専用コアはCPUが気づくずっと前にリンクを飽和させます。
- 寄付してもよい帯域幅を持つサイト。BUH-01とHEL-01は私たちが販売する最も安いテラバイトで、両方ともそれを支えるトランジットがあります。
- 動作するクロック。時間がずれたリレーはコンセンサスから除外され、これは完璧に起動してもどこにも現れないリレーの最も一般的な原因です。
1. 基本システム
apt update && apt full-upgrade -y
apt install -y tor nyx chrony nftables
timedatectl set-timezone UTC
chronyc trackingchronyc trackingはシステム時間のオフセットをマイクロ秒単位で報告するはずです。秒単位で報告される場合は、停止して先に修正してください。下流の何も機能しません。
2. リレー設定
/etc/tor/torrcを以下に置き換えてください。すべての行を読んでください。そのうちの2つがポリシー内にあなたを留めるものです。
Nickname exampleRelay
ContactInfo [email protected]
ORPort 9001
ORPort [2001:db8:1a2b::2]:9001
SocksPort 0
ControlPort 0
ExitRelay 0
ExitPolicy reject *:*
IPv6Exit 0
RelayBandwidthRate 40 MBytes
RelayBandwidthBurst 60 MBytes
AccountingMax 40 TBytes
AccountingStart month 1 00:00
MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1
User debian-tor
DataDirectory /var/lib/tor
Log notice syslogExitRelay 0とExitPolicy reject *:*は二重の安全策です。どちらか一方でも十分ですが、両方合わせることで、将来のパッケージのデフォルトや深夜の中途半端な編集が静かに出口リレーに変えることを防ぎます。
インスタンスの実際のIPv6アドレスを2番目のORPort行に代入してください。すべてのインスタンスはルーティングされた/64を搭載しているため、v4のみのリレーを実行する理由はありません。また、v6対応リレーはv4リレーよりもまだ供給が不足しています。
帯域幅アカウンティングはコピーペーストではなく考える価値があります。私たちのネットワークのトラフィックはフェアユースの下で未測定ですが、上限なしのリレーはネットワークが見つけられるだけの量を永遠に使用します。毎秒40メガバイトで月間上限40テラバイトは、寛大で行儀の良いリレーです。アカウンティングに達すると、リレーは回線の途中で遮断されるのではなく、期間がロールオーバーするまで休止します。
どこでも複数のリレーを実行する場合は、このリレーを含むすべてのフィンガープリントをカンマ区切りでリストしたMyFamily行を追加してください。クライアントはこれを使用して、同じ管理下の2つのマシンを通過する回路を構築するのを避けます。省略することは、オペレーターに向けられた最も一般的な設定苦情です。
3. ユニットの強化
パッケージ化されたユニットはまともですが、これらの行はバグを見つけた人にとってはるかに興味をそそらないものにします。
systemctl edit tor@default[Service]
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=strict
ProtectHome=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=yes
MemoryDenyWriteExecute=yes
ReadWritePaths=/var/lib/tor /var/log/tor /run/tor
LimitNOFILE=65535ファイル記述子の制限は見た目以上に重要です。ビジーなリレーは何千もの同時ソケットを保持し、デフォルトの制限では1週間機能してからログに明らかなものがなく接続を拒否し始めるリレーが生成されます。
4. ファイアウォール
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
ct state invalid drop
iif lo accept
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
tcp dport 22 accept
tcp dport 9001 accept
}
chain forward {
type filter hook forward priority filter; policy drop;
}
}systemctl enable --now nftables
systemctl restart tor@defaultメトリクスポートはループバックアドレスにバインドされているため、ルールは不要です。必要なときはSSHトンネル経由でアクセスし、公開しないでください。リレーメトリクスはあなたよりも多くの人にとって興味深いものです。
検証する
この部分は数分ではなく数時間かかるので、起動して離れてください。
まず、起動から約20分以内に、ログにリレーが外部から自分のポートをテストして成功したことが表示されるはずです。
journalctl -u tor@default --since "20 min ago" | grep -i "self-testing"ORPortが外部から到達可能であることを示す行が必要です。それが表示されない場合は、ファイアウォールがインバウンド9001をブロックしているか、torrcのv6アドレスがインスタンスと一致していません。
次に、フィンガープリントを取得して保持してください。
cat /var/lib/tor/fingerprint第三に、リレーが単に実行されているだけでなく作業を行っていることを確認してください。
nyx
curl -s http://127.0.0.1:9035/metrics | grep -E "tor_relay_traffic|tor_relay_connections"トラフィックカウンターは自己テストが通過してから1時間以内に上昇しているはずです。ディレクトリオーソリティがフィンガープリントをコンセンサスに投票するのに約3時間かかり、クライアントはその後で意味のある量を送信し始めます。Guardフラグは稼働時間が維持されれば約8日目に到着し、そのときトラフィックグラフが細流から設定した上限に変わります。
第四に、この特定のビルドで最も重要なこととして、出口になっていないことを証明してください。別のマシンから、リレートラフィック以外に何も出ないことを確認してください。
ss -tn state established | wc -l
ss -tn state established sport = :9001 | wc -lほぼすべての確立された接続はORPortを関与させるはずです。任意のポートへの多数の外部接続は、意図しない出口ポリシーを意味し、その場合はデーモンを停止してステップ2を読み直してください。
運用する
| 項目 | 回答 |
|---|---|
| 再起動 | 数時間の評判がかかります。変更をまとめて行ってください。 |
| アップグレード | apt upgradeして再起動。古いバージョンのリレーはフラグが付けられ、最終的にドロップされます。 |
| サイト移転 | /var/lib/tor/keysをコピーすると、フィンガープリントはリレーに追従します。コンセンサスウェイトはリセットされません。 |
| 苦情 | ミドルリレーは苦情を生成しません。受け取った場合、何かが出口になっているので確認してください。 |
| シャットダウン | まずAccountingMaxに小さな値を設定して回線をドレインするか、停止して評判の損失を受け入れてください。 |
構築した日に/var/lib/tor/keysをインスタンスの外にバックアップしてください。アイデンティティキーはこのリレーをそのリレーにするものです。紛失するとゼロのコンセンサスウェイトからやり直すことになり、それは8日間誰もあなたを使用しないことを意味します。 リレーの実行中にログを記録するものについての私たちの立場は、ロギングページにあり、短いものです。