OSBN

Martins Schmierzettel

Ein Tor-Relay auf Uberspace einrichten



Intention

Da ich in letzter Zeit nach dem 3-Browser-Prinzip surfe, nutze ich nun für all­täg­li­ches Surfen ohne LogIn den Tor-Browser und wollte nun dem Tor-Netzwerk etwas zu­rück­ge­ben.

Die meisten dürften Tor kennen, aber hier noch mal eine kurze Be­schrei­bung von Wikipedia:

Tor ist ein Netzwerk zur An­ony­mi­sie­rung von Ver­bin­dungs­da­ten. Es wird für TCP-Ver­bin­dun­gen eingesetzt und kann bei­spiels­wei­se im Web für Browsing, Instant Messaging, IRC, SSH, E-Mail oder P2P benutzt werden. Tor schützt seine Nutzer vor der Analyse des Da­ten­ver­kehrs. Es basiert auf der Idee des Onion-Routings.

An­lei­tun­gen

Im Wiki von Uberspace fand ich eine Anleitung von Debianer. Leider funk­tio­nier­te dieses HowTo für mich nicht. Toast (ein Tool zum Kom­pi­lie­ren von An­wen­dun­gen im Userspace) beschwerte sich über die fehlende Bibliothek libevent. Nachdem ich libevent per toast in­stal­liert hatte meldete toast beim In­stal­lie­ren von Tor libevent wäre vorhanden, könnte aber nicht gelinkt werden.

Ich fand im Netz eine weitere Anleitung zur In­stal­la­ti­on von Tor auf Uberspace von f(Λ), nach der libevent und Tor einfach ohne toast mit dem alt­be­kann­ten Dreisatz in­stal­liert wurden.

Mein Vorgehen

Tor in­stal­lie­ren

Man loggt sich auf seinem Uberspace ein, erstellt einen temporären Ordner und in­stal­liert libevent und Tor (bitte die aktuelle Version von Tor hier beziehen):

mkdir ~/tmp
cd ~/tmp
git clone git://levent.git.sourceforge.net/gitroot/levent/levent
cd levent
./autogen.sh
./configure --prefix=$HOME
make
make install
cd ..
wget https://www.torproject.org/dist/tor-X.X.X.X.tar.gz
tar xvf https://www.torproject.org/dist/tor-X.X.X.X.tar.gz
cd tor-X.X.X.X
./configure --prefix=$HOME
make
make install
Tor kon­fi­gu­rie­ren

Lief die In­stal­la­ti­on ohne Fehler kann man nun den Ordner löschen und sich an­schlie­ßend an die Kon­fi­gu­ra­ti­on machen:

cd ~
rm -rf tmp

Eine Bei­spiel­kon­fi­gu­ra­ti­on mit Er­läu­te­run­gen findet ihr nun unter ~/etc/tor/torrc.sample, ich habe als Basis die Kon­fi­gu­ra­ti­on von Debianer genommen und für mich angepasst und unter ~/etc/tor/torrc ge­spei­chert:

SocksPort 0
Log notice file /home/USER/etc/tor.log
DataDirectory /home/USER/lib/tor
ControlPort PORT1
CookieAuthentication 1
ORPort PORT2
Nickname NICKNAME
RelayBandwidthRate 300 KB
RelayBandwidthBurst 600 KB
AccountingMax 10 GB
AccountingStart month 1 02:00
ContactInfo Mail
DirPort PORT3
ExitPolicy reject *:*
DisableDebuggerAttachment 0
AvoidDiskWrites 1

Die Zeile ExitPolicy reject *:* ist immens wichtig, da diese festlegt, dass ihr nicht als Exit-Node fungiert.

Richtet keinen Exit-Node bei Uberspace ein!

USER ist durch euren Be­nut­zer­na­men bei Uberspace aus­zu­tau­schen und NICKNAME durch einen frei wählbaren Namen für das Tor-Netzwerk. Bei PORT1, PORT2 und PORT3 tragt ihr Ports ein, die ihr euch bei Uberspace mitt­ler­wei­le selbst frei­schal­ten könnt. Dafür führt ihr einfach dreimal folgenden Befehl aus und notiert euch den Port:

uberspace-add-port -p tcp --firewall
Tor auf Uberspace aktivieren

Nun kann man Tor über exec ~/bin/tor -f ~/etc/tor/torrc starten, aber sobald man den Befehl abbricht oder sich ausloggt wird der Tor-Service beendet. Man kann sich hier mit Tools wie tmux oder screen behelfen, prak­ti­scher ist es aber Uberspace dafür sorgen zu lassen, dass Tor läuft:

cat <<__EOF__ > ~/etc/tor/run\n#!/bin/sh\nexec ~/bin/tor -f ~/etc/torrc 2>&1\n__EOF__
chmod +x ~/etc/tor/run
ln -s ~/etc/tor ~/service/tor

Theo­re­tisch sollte jetzt schon alles laufen, aber es kann nicht schaden zur Sicherheit noch eine Ak­ti­vie­rung hin­ter­her­zu­schi­cken:

svc -u ~/service/tor
Tor-Node überprüfen

Natürlich möchte man nun überprüfen, ob der Torknoten auch er­folg­reich ein­ge­rich­tet wurde und Teil des Netwerks ist. Hierzu beobachtet man erst mal in das Logfile:

tail -f ~/etc/tor.log

Wenn die letzten Zeilen in etwa so aussehen scheint es schon mal ganz gut zu laufen:

Mar 17 18:32:38.000 [notice] Bootstrapped 0%: Starting
Mar 17 18:32:42.000 [notice] Bootstrapped 80%: Connecting to the Tor network
Mar 17 18:32:43.000 [notice] Bootstrapped 85%: Finishing handshake with first hop
Mar 17 18:32:43.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
Mar 17 18:32:45.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Mar 17 18:32:45.000 [notice] Bootstrapped 100%: Done
Mar 17 18:32:45.000 [notice] Now checking whether ORPort 95.143.172.208:64795 and DirPort 95.143.172.208:61540 are reachable... (this may take up to 20 minutes -- look for log messages indicating success)
Mar 17 18:32:45.000 [notice] Self-testing indicates your ORPort is reachable from the outside. Excellent.
Mar 17 18:32:45.000 [notice] Self-testing indicates your DirPort is reachable from the outside. Excellent. Publishing server descriptor.
Mar 17 18:32:46.000 [notice] Performing bandwidth self-test...done.

Man kann dann auch bei Tor selbst überprüfen ob man Teil des Netzwerks ist. Man sollte dabei aber nicht zu ungeduldig sein. Bei mir dauerte es ca. eine Stunde bis ich dort gelistet wurde.

[Update 2017-03-18]

Nachdem euer Middle-Node ein paar Stunden läuft könnt ihr auch Infos über die Ver­bin­dun­gen und den Traffic in ~/etc/tor.log sehen:

Mar 18 12:32:42.000 [notice] Heartbeat: Tor's uptime is 17:59 hours, with 8 circuits open. I've sent 147.39 MB and received 171.18 MB.
Mar 18 12:32:42.000 [notice] Heartbeat: Accounting enabled. Sent: 150.26 MB, Received: 183.90 MB, Used: 186.87 MB / 10.00 GB, Rule: max. The current accounting interval ends on 2017-04-01 02:00:00, in 13 days 12:27 hours.
Mar 18 12:32:42.000 [notice] Circuit handshake stats since last time: 14/14 TAP, 66/66 NTor.
Mar 18 12:32:42.000 [notice] Since startup, we have initiated 0 v1 connections, 0 v2 connections, 0 v3 connections, and 520 v4 connections; and received 1 v1 connections, 0 v2 connections, 0 v3 connections, and 775 v4 connections.

[Update 2017-03-19]

Gerade habe ich entdeckt, dass man den Status auch mit Atlas überprüfen kann. Dort bekommt man auch ein paar in­ter­es­san­te Sta­tis­ti­ken zu sehen. Um euren eigenen Server zu finden müsst ihr einfach im Suchfeld rechts oben den Namen, den ihr für das Tor-Netzwerk gewählt habt, oder eure IP eingeben.

Wenn ihr euch wundert, warum euer Knoten zu Beginn wenig Traffic generiert, so liegt dies nicht nur am vergebenen Limit, sondern auch am Le­bens­zy­klus eines Tor-Knotens. Euer Tor-Knoten muss also erst mal ein paar Tage concensus weight sammeln, was ich in etwa als Reputation in­ter­pre­tie­re.

In den Kommentaren können folgende Formatierungen genutzt werden.

Zufällige MAC-Adresse mit dem NetworkManager » « Kurztipp: Verbindungen mit proxychains durch Proxyserver leiten