Intention
Da ich in letzter Zeit nach dem 3-Browser-Prinzip surfe, nutze ich nun für alltägliches Surfen ohne LogIn den Tor-Browser und wollte nun dem Tor-Netzwerk etwas zurückgeben.
Die meisten dürften Tor kennen, aber hier noch mal eine kurze Beschreibung von Wikipedia:
Tor ist ein Netzwerk zur Anonymisierung von Verbindungsdaten. Es wird für TCP-Verbindungen eingesetzt und kann beispielsweise im Web für Browsing, Instant Messaging, IRC, SSH, E-Mail oder P2P benutzt werden. Tor schützt seine Nutzer vor der Analyse des Datenverkehrs. Es basiert auf der Idee des Onion-Routings.
Anleitungen
Im Wiki von Uberspace fand ich eine Anleitung von Debianer. Leider funktionierte dieses HowTo für mich nicht. Toast (ein Tool zum Kompilieren von Anwendungen im Userspace) beschwerte sich über die fehlende Bibliothek libevent. Nachdem ich libevent per toast installiert hatte meldete toast beim Installieren von Tor libevent wäre vorhanden, könnte aber nicht gelinkt werden.
Ich fand im Netz eine weitere Anleitung zur Installation von Tor auf Uberspace von f(Λ), nach der libevent und Tor einfach ohne toast mit dem altbekannten Dreisatz installiert wurden.
Mein Vorgehen
Tor installieren
Man loggt sich auf seinem Uberspace ein, erstellt einen temporären Ordner und installiert 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 konfigurieren
Lief die Installation ohne Fehler kann man nun den Ordner löschen und sich anschließend an die Konfiguration machen:
cd ~
rm -rf tmp
Eine Beispielkonfiguration mit Erläuterungen findet ihr nun unter
~/etc/tor/torrc.sample
, ich habe als Basis die Konfiguration von
Debianer
genommen und für mich angepasst und unter ~/etc/tor/torrc
gespeichert:
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 Benutzernamen bei Uberspace auszutauschen 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 mittlerweile selbst
freischalten 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, praktischer ist
es aber Uberspace dafür sorgen zu lassen, dass Tor läuft:
cat <<__EOF__ > ~/etc/tor/run
#!/bin/sh\nexec ~/bin/tor -f ~/etc/torrc 2>&1
__EOF__
chmod +x ~/etc/tor/run
ln -s ~/etc/tor ~/service/tor
Theoretisch sollte jetzt schon alles laufen, aber es kann nicht schaden zur Sicherheit noch eine Aktivierung hinterherzuschicken:
svc -u ~/service/tor
Tor-Node überprüfen
Natürlich möchte man nun überprüfen, ob der Torknoten auch erfolgreich eingerichtet 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 Verbindungen 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 interessante Statistiken 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 Lebenszyklus eines Tor-Knotens. Euer Tor-Knoten muss also erst mal ein paar Tage concensus weight sammeln, was ich in etwa als Reputation interpretiere.