Zwölf Builds

Betreiben eines Tor-Relays im Rahmen der akzeptablen Nutzungsrichtlinie

Ein Non-Exit-Relay mit IPv6, Bandbreitenabrechnung, einer gehärteten systemd-Unit und einem Verifizierungsschritt, der bestätigt, dass Ihr Fingerprint den Konsens erreicht hat.

Was damit gebaut wird

Ein Middle-Relay: Es nimmt Verbindungen von Clients und anderen Relays an, leitet Datenverkehr innerhalb des Netzwerks weiter und öffnet niemals eine Verbindung zu einem Ziel im normalen Internet. Niemand erhält eine Missbrauchsbeschwerde wegen eines Middle-Relays, denn von außen tauscht es verschlüsselten Datenverkehr mit einer veröffentlichten Liste anderer Relays aus und sonst nichts.

Diese Unterscheidung ist der einzige Grund, warum dieser Leitfaden existiert. Exit-Relays sind eine andere Geschichte: Beschwerden darüber landen bei unserem Missbrauchs-Team und nicht bei Ihnen. Lesen Sie also die Nutzungsrichtlinien und eröffnen Sie ein Ticket, bevor Sie eines konfigurieren. Alles unten deaktiviert das Exiting absichtlich, doppelt.

Bevor Sie beginnen

  • Eine R-4. Tor ist pro Verbindung single-threaded und netzwerkgebunden; vier dedizierte Kerne sättigen einen Link lange bevor die CPU es merkt.
  • Ein Standort mit Bandbreite, die Sie gerne spenden. BUH-01 und HEL-01 sind die günstigsten Terabyte, die wir verkaufen, und beide haben den Transit, um das zu unterstützen.
  • Eine funktionierende Uhr. Relays mit schiefer Zeit werden aus dem Konsens entfernt, und das ist der häufigste einzelne Grund für ein Relay, das perfekt startet und nirgendwo erscheint.

1. Basissystem

apt update && apt full-upgrade -y
apt install -y tor nyx chrony nftables
timedatectl set-timezone UTC
chronyc tracking

chronyc tracking sollte einen Systemzeit-Offset im Mikrosekundenbereich melden. Wenn es Sekunden meldet, stoppen Sie und beheben Sie das zuerst; nichts weiter unten wird funktionieren.

2. Die Relay-Konfiguration

Ersetzen Sie /etc/tor/torrc durch Folgendes. Lesen Sie jede Zeile, denn zwei davon sind diejenigen, die Sie innerhalb der Richtlinie halten:

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 syslog

ExitRelay 0 und ExitPolicy reject *:* sind Sicherheitsgurte und Hosenträger. Jedes würde allein ausreichen; beide zusammen bedeuten, dass kein zukünftiger Paketstandard und keine halb erinnerte Bearbeitung um Mitternacht Sie stillschweigend in einen Exit verwandelt.

Ersetzen Sie die echte IPv6-Adresse Ihrer Instanz in der zweiten ORPort-Zeile. Jede Instanz wird mit einem gerouteten /64 ausgeliefert, also gibt es keinen Grund, ein reines v4-Relay zu betreiben, und v6-fähige Relays sind immer noch knapper als v4-Relays.

Bandbreitenabrechnung verdient einen Gedanken statt eines Copy-Paste. Der Datenverkehr in unserem Netzwerk ist unter fairen Bedingungen unbegrenzt, aber ein Relay ohne Begrenzung wird genau so viel nutzen, wie das Netzwerk finden kann, für immer. Vierzig Megabyte pro Sekunde mit einem monatlichen Limit von vierzig Terabyte ist ein großzügiges, wohlerzogenes Relay. Wenn das Limit erreicht ist, hiberniert das Relay, bis der Zeitraum umschlägt, anstatt mitten im Stromkreis abgeschnitten zu werden.

Wenn Sie irgendwo mehr als ein Relay betreiben, fügen Sie eine MyFamily-Zeile hinzu, die jeden Fingerabdruck einschließlich dieses auflistet, durch Kommas getrennt. Clients verwenden sie, um zu vermeiden, einen Stromkreis zu bauen, der durch zwei Maschinen unter derselben Kontrolle führt, und das Weglassen ist die häufigste Konfigurationsbeschwerde, die an Betreiber gerichtet wird.

3. Härtung der Einheit

Die gebündelte Einheit ist anständig; diese Zeilen machen sie für jeden, der einen Fehler darin findet, erheblich uninteressanter.

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

Das Dateideskriptor-Limit ist wichtiger, als es aussieht. Ein beschäftigtes Relay hält Tausende von gleichzeitigen Sockets, und das Standardlimit erzeugt ein Relay, das eine Woche funktioniert und dann beginnt, Verbindungen ohne ersichtlichen Grund im Protokoll abzulehnen.

4. Firewall

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

Beachten Sie, dass der Metrik-Port an die Loopback-Adresse gebunden ist und daher keine Regel benötigt. Erreichen Sie ihn bei Bedarf über einen SSH-Tunnel und setzen Sie ihn niemals aus; Relay-Metriken sind für mehr Leute interessant, als Sie denken.

Verifizieren Sie es

Dies ist der Teil, der Stunden statt Minuten dauert, also starten Sie und gehen Sie weg.

Zuerst, innerhalb von etwa zwanzig Minuten nach dem Start, sollte das Protokoll sagen, dass das Relay seinen eigenen Port von außen getestet und durchgekommen ist:

journalctl -u tor@default --since "20 min ago" | grep -i "self-testing"

Sie möchten die Zeile, die besagt, dass Ihr ORPort von außen erreichbar ist. Wenn sie nie erscheint, blockiert die Firewall eingehenden Port 9001 oder Ihre v6-Adresse in der torrc stimmt nicht mit der Instanz überein.

Zweitens, nehmen Sie Ihren Fingerabdruck und bewahren Sie ihn:

cat /var/lib/tor/fingerprint

Drittens, bestätigen Sie, dass das Relay tatsächlich arbeitet, nicht nur läuft:

nyx
curl -s http://127.0.0.1:9035/metrics | grep -E "tor_relay_traffic|tor_relay_connections"

Die Datenverkehrszähler sollten innerhalb einer Stunde nach bestandenem Selbsttest steigen. Verzeichnisbehörden benötigen etwa drei Stunden, um Ihren Fingerabdruck in den Konsens zu wählen, und Clients senden erst danach meaningful Menge. Die Guard-Flagge erscheint um den achten Tag, wenn Ihre Betriebszeit hält, und das ist der Zeitpunkt, an dem die Datenverkehrsgrafik von einem Rinnsal zu dem von Ihnen gesetzten Limit übergeht.

Viertens, und am wichtigsten für diesen speziellen Build, beweisen Sie, dass Sie nicht exitieren. Prüfen Sie von einem zweiten Rechner aus, dass nichts außer Relay-Datenverkehr ausgeht:

ss -tn state established | wc -l
ss -tn state established sport = :9001 | wc -l

Fast jede etablierte Verbindung sollte den ORPort betreffen. Eine große Anzahl von ausgehenden Verbindungen zu beliebigen Ports würde eine Exit-Richtlinie bedeuten, die Sie nicht beabsichtigt haben; stoppen Sie in diesem Fall den Daemon und lesen Sie Schritt zwei erneut.

Betrieb

SacheAntwort
NeustartKostet Sie ein paar Stunden Reputation. Bündeln Sie Ihre Änderungen.
Upgradesapt upgrade, dann Neustart. Relays mit alten Versionen werden markiert und schließlich entfernt.
StandortwechselKopieren Sie /var/lib/tor/keys und der Fingerabdruck folgt dem Relay. Die Konsensgewichtung wird nicht zurückgesetzt.
BeschwerdenEin Middle-Relay erzeugt keine. Wenn Sie eine erhalten, exitiert etwas und Sie sollten prüfen.
HerunterfahrenSetzen Sie zuerst AccountingMax auf einen kleinen Wert, damit Stromkreise abfließen, oder stoppen Sie einfach und akzeptieren Sie den Reputationsverlust.

Sichern Sie /var/lib/tor/keys am Tag des Baus irgendwo außerhalb der Instanz. Der Identitätsschlüssel macht dieses Relay zu diesem Relay; verlieren Sie ihn und Sie beginnen wieder bei Null Konsensgewicht, was acht Tage sind, in denen niemand Sie nutzt. Unsere Position dazu, was wir protokollieren, während Ihr Relay läuft, finden Sie auf der Protokollierungsseite, und sie ist kurz.

Bereit, wenn Sie es sind

Wählen Sie eine Stadt. Wählen Sie eine Größe. Bezahlen Sie in Coins.

Keine Formulare darüber, wer Sie sind, kein Warten auf einen Menschen, der Sie genehmigt, kein Anruf zur Verifizierung. Die Rechnung wird beglichen, und die Zugangsdaten landen in Ihrem Posteingang.