Ich betreibe selbst Tor Server und nutze den Tor Browser. Daher möchte ich hier am Beispiel einer Bridge und eines middle Relay zeigen wie einfach sich das umsetzen lässt. Die beiden unterscheiden sich lediglich durch ein zusätzliches Modul und ein paar Einträgen in der Konfigurationsdatei von Tor. Alle abgebildeten Befehle habe ich mit einem normalen Benutzer eingegeben, der Mitglied in der Gruppe
sudo (ein Eintrag in der
sudoers Datei tut es auch) ist. Man kann sich natürlich auch mit dem Kommando
su vorab Superuser Rechte beschaffen, dann fallen die sudo Befehle am Beginn der Befehlszeilen weg. Wenn etwas unklar ist, googled einfach den Befehl. Zunächst muss der Paketmanager vorbereitet werden:
Code: Alles auswählen
sudo apt update
sudo apt upgrade -y
sudo apt install apt-transport-https
Anschließend bitte einmal feststellen welchen Codenamen das Betriebssystem trägt, dass wird für das Repository benötigt:
Ich benutze für das Beispiel einen Ubuntu 20.04 LTS Server, dort wäre die Antwort
focal. Außerdem wird die Architektur benötigt (i386, amd64, arm64..). Wenn die nicht bekannt ist, bringt sie folgender Befehl auf die Konsole (aus x86_64 wird dann z.B. das
amd64 gemacht):
Mit den Informationen können wir dann dem Paketmanager ein neues Repository bekannt machen:
Code: Alles auswählen
sudo sh -c 'echo "deb [arch=amd64] https://deb.torproject.org/torproject.org focal main" >> /etc/apt/sources.list.d/tor-project.list'
Da wir das Repository über SSL nutzen, benötigen wir noch den passenden keyring. Besucht dazu im Browser erst einmal die Seite
https://deb.torproject.org/torproject.o ... g-keyring/ und kopiert euch den Pfad und den Namen der neuesten *.deb Datei. In diesem Beispiel wäre das die
deb.torproject.org-keyring_2020.11.18_all.deb. Die laden wir uns dann herunter und installieren sie:
Code: Alles auswählen
wget https://deb.torproject.org/torproject.org/pool/main/d/deb.torproject.org-keyring/deb.torproject.org-keyring_2020.11.18_all.deb
sudo apt install ./deb.torproject.org-keyring_2020.11.18_all.deb
Nun kann das neue Repository aktualisiert und dann das Tor Paket installiert werden:
Um eine Bridge zu betreiben wird noch der
obfs4proxy benötigt, ein Relay benötigt den Proxy
nicht!
Zum Abschluss wäre es noch schön ein Werkzeug zum gelegentlichen Monitoring zu bekommen. Ich nutze nyx, das auch ohne Neustart des Tor Servers die Konfiguration anpassen kann (nur für die aktuelle Sitzung. Bleibend wird es nur durch das Eintragen in die Tor Konfigurationsdatei s.u). Für den Betrieb ist das optional:
Damit sind alle Komponenten installiert und es geht an die Konfiguration. Die befindet sich in der Datei
/etc/tor/torrc. In der frischen Installation sind alle Parameter auskommentiert. Sie wollen nur aktiviert (# am Beginn der betreffenden Zeile entfernen) und mit passenden Werten befüllt werden. Zunächst die beiden Einträge die nur die Bridge benötitg (bei einem Relay diesen Teil überspringen):
Code: Alles auswählen
BridgeRelay 1
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
Dann die Einstellungen die für beide Betriebsarten identisch sind, bzw. die für beide Betriebsarten benötigt werden (Erläuterung folgt darunter):
Code: Alles auswählen
Log notice file /var/log/tor/notices.log
ControlPort 9051
CookieAuthentication 1
ORPort 9001
Nickname dein-name-zur-identifizierung-im-tor-netz
RelayBandwidthRate 400 KBytes
RelayBandwidthBurst 800 KBytes
AccountingMax 10 GBytes
AccountingStart day 00:00
ContactInfo Dein Name <nobody AT example dot com>
DirPort 9030
#MyFamily $keyid,$keyid,...
ExitPolicy reject *:*
Der
Log notice file Eintrag leitet das Log in eigene Datei um, so muss nicht im syslog gesucht werden.
ControlPort und
CookieAuthentication sind für das Monitoring mit nyx. Wenn das keine Verwendung findet, können die auskomentiert bleiben (die Firewall kann dort geschlossen werden/bleiben, da nyx den lokal anspricht). Der
ORPort ist für die Kommunikation der eigentlichen Nutzdaten. Dabei ist
9001 der Standardport von Tor, der damit auch verrät dass es sich um einen Tor Server handelt (der muss in der Firewall offen sein). Das ist bei einem Relay ok, eine Bridge möchte man aber inkognito betreiben, dort sollte er geändert werden (bitte keinen Port unterhalb 1024 nutzen, sonst wird es komplizierter). Der
Nickname dient dazu Deine Server im Tor Netzwerk zu identifizieren, danach kann man mit entsprechenden Werkzeugen auch suchen. Die Bandbreite die dem Tor Server bereitgestellt werden soll, bestimmen die beiden Parameter
RelayBandwidthRate und
RelayBandwidthBurst, wobei ersteres die gewünschte Beschränkung ist und der Zweite bestimmt wie weit eine kurzfristige Überschreitung ok ist - sie sollte doppelt so hoch sein wie die Erste. Noch wichtiger erscheinen mir die nächsten beiden Einträge.
AccountingMax bestimmt einen Maximalwert des Durchsatzes für einen bestimmten Zeitraum und
AccountingStart bestimmt den Zeitraum. Im Beispiel wird er täglich um Mitternacht neu gestartet, woraus sich ein Limit von 10 GB pro Tag ergibt.
ContactInfo muss eine E-Mail Adresse enthalten, damit der Serverbetreiben bei Problemen für Tor Operatoren erreichbar ist (Achtung: diese Adresse ist öffentlich einsehbar). Über den
DirPort werden Verzeichnisse im Tor Netzwerk vermittelt und
MyFamily wird nur benötigt wenn Du mehrere Server betreibst. Dort werden dann die 40 stelligen Fingerprints aller Deiner Server eingetragen (Achtung: keine Bridge mit eintragen). Der wichtigste Eintrag am Ende:
ExitPolicy bestimmt ob und was der Server nach draußen (außerhalb des Tor Netzes) lässt. Da wir keinen Ausgangsknoten betreiben wollen, wird hier jeder Ausgang abgelehnt.
Wenn dann die Konfiguration 2-3 mal überprüft wurde, kann Tor den Dienst aufnehmen. Dafür wird er einmal neu gestartet:
Der Server meldet sich im Netz an und gibt seine Einstellungen weiter um in das Verzeichnis aufgenommen zu werden. Du kannst jetzt schon schauen was intern passiert, dazu startest Du einfach
nyx (ohne Parameter wenn Du den ControlPort nicht geändert hast). Wenn das nicht funktioniert, muss Dein Benutzer noch der entsprechenden Gruppe unter der Tor läuft hinzugefügt werden. Auf die Schnelle tut es dann ein vorangestelltes sudo. Mit Traffic kann man nach 10-12 Stunden rechnen. So lange gibt es nur gelegentlich einzelne Streams um die Stabilität und Bandbreite abschätzen zu können. Du kannst das im nyx anhand der gesetzten Flags beobachten. Die hochwertigen Flags gibt es aber erst viel später.