Einen Tor Server installieren (Debian/Ubuntu)

Alles was sonst nirgends innerhalb von IT passt
Antworten
Benutzeravatar
Christian
Site Admin
Site Admin
Beiträge: 8
Registriert: Samstag 13. November 2021, 17:44
Kontaktdaten:

Einen Tor Server installieren (Debian/Ubuntu)

Beitrag: # 9Beitrag Christian »

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:

Code: Alles auswählen

lsb_release -sc
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):

Code: Alles auswählen

uname-a 
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:

Code: Alles auswählen

sudo apt update
sudo apt install tor
Um eine Bridge zu betreiben wird noch der obfs4proxy benötigt, ein Relay benötigt den Proxy nicht!

Code: Alles auswählen

sudo apt install obfs4proxy
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:

Code: Alles auswählen

sudo apt install python3-pip
sudo pip install nyx
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:

Code: Alles auswählen

sudo systemctl restart tor 
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.
Antworten