Hoe maak je een Tor Exit Node
In tegenstelling tot bridges zijn exit nodes (en normale relays) publiekelijk bekende apparaten waarvan het IP-adres en de configuratie voor iedereen zichtbaar zijn. Ze maken effectief de uiteindelijke verbinding met de bestemming namens de anonieme cliënt. Er is een groot tekort aan exit nodes in het Tor-netwerk, en dat is begrijpelijk. Omdat ze de laatste stap in de keten zijn, maken ze honderden uitgaande verbindingen naar welke website of dienst Tor-gebruikers ook opvragen. Hierdoor is het voor autoriteiten eenvoudig om een exit node-operator verantwoordelijk te houden voor 'slechte daden', terwijl de node in werkelijkheid simpelweg deelneemt aan een netwerk, vergelijkbaar met hoe een traditionele router in elk netwerk zou functioneren.
Voor wie de moed heeft om een exit node te draaien, volgt hier de methode om dit met zo min mogelijk gedoe te realiseren.
Risico's en overwegingen
Voordat we beginnen, is het belangrijk om te benadrukken dat het draaien van een exit node vanuit huis potentieel gevaarlijk is vanwege mogelijke intimidatie door ISP's en overheidsinstanties. Hoewel je geen wetten overtreedt, fungeer je als het uitgangspunt voor Tor-verkeer en heb je geen controle over wat de 2,5 miljoen Tor-gebruikers wereldwijd doen. Mocht je intimidatie ervaren, blijf dan kalm; je hebt niets fout gedaan. Er is veel informatie beschikbaar om je in dergelijke situaties te helpen.
Een ander probleem is reputatie. Sommige websites blokkeren exit nodes en andere vereisen een Captcha (zoals Cloudflare CDN en Google wanneer zij veel verkeer detecteren).
Voorwaarden en Installatie
Voor deze handleiding gaan we ervan uit dat je beschikt over een werkende Linux-machine (bijvoorbeeld Ubuntu 14.04 Trusty) en dat je achter een standaard router zit (NAT).
1. Repositories toevoegen
Eerst moeten we tor en tor-arm installeren. Hiervoor voegen we de Tor-repositories toe:
echo 'deb http://deb.torproject.org/torproject.org trusty main' >> /etc/apt/sources.list
echo 'deb-src http://deb.torproject.org/torproject.org trusty main' >> /etc/apt/sources.list
2. GPG-sleutels installeren
Installeer vervolgens de GPG-sleutels voor de repository:
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
3. Software installeren
Installeer nu de benodigde pakketten:
apt-get update
apt-get install tor tor-arm vnstat vnstati nginx curl socat
Configuratie van de Exit Node
Standaard fungeert Tor als een cliënt. Om er een exit node van te maken, moeten we de configuratie aanpassen. Vervang de inhoud van /etc/tor/torrc door een basisrelay-configuratie:
curl -o /etc/tor/torrc https://madpsy.uk/wp-content/uploads/2015/11/torrc.txt
De voorbeeldconfiguratie ziet er als volgt uit:
ORPort 127.0.0.1:9001 NoAdvertise
ORPort 443 NoListen
DirPort 9030
Nickname TorExit
RelayBandwidthRate 100 KB
RelayBandwidthBurst 100 KB
ContactInfo [email protected]
DisableDebuggerAttachment 0
ExitPolicy accept *:20-23 # FTP, SSH, telnet
...
...
ExitPolicy reject *:*
Belangrijke aanpassingen in /etc/tor/torrc:
- ContactInfo: Vul je eigen e-mailadres in.
- Bandbreedte: Pas
RelayBandwidthRateenRelayBandwidthBurstaan op basis van je internetsnelheid. De waarde 100 KB (Kilobytes per seconde) is geschikt voor een typische ADSL-verbinding. - DirPort: Deze regel maakt de node een Directory Server. Verwijder deze regel als je dat niet wilt.
Poortomleiding met socat
We moeten socat gebruiken om verkeer op poort 443 om te leiden naar localhost poort 9001. Een nuttige Entry Guard (een relay die zowel inkomende verbindingen accepteert als een exit node is) moet draaien op een poort die voor elke Tor-gebruiker beschikbaar is. Poort 443 (HTTPS) is hiervoor een logische keuze. Omdat Tor niet als root draait, heeft het geen toestemming om direct aan poort 443 te binden. Daarom binden we Tor aan 9001 en gebruiken we socat voor de omleiding.
Voer het volgende commando uit om socat te starten:
/usr/bin/socat TCP-LISTEN:443,fork,su=nobody TCP:127.0.0.1:9001 &
Om ervoor te zorgen dat dit na een reboot automatisch start, voegen we het toe aan de crontab van root:
echo '@reboot /usr/bin/socat TCP-LISTEN:443,fork,su=nobody TCP:127.0.0.1:9001 &' >> /var/spool/cron/crontabs/root
Informatiepagina maken
Het is raadzaam om een HTTP-pagina te serveren met informatie over de node, zodat mensen die de node bevragen kunnen zien wat het doel ervan is. (Opmerking: DirPortFrontPage is een alternatief, maar staat minder extra content toe, zoals bandbreedtegrafieken).
1. Pagina installeren
Vervang de standaard nginx-pagina door de officiële Tor Exit Node-pagina:
curl -o /usr/share/nginx/html/index.html https://madpsy.uk/wp-content/uploads/2015/11/tor-exit-node.txt
curl -o /usr/share/nginx/html/how_tor_works_thumb.png https://madpsy.uk/wp-content/uploads/2015/11/how_tor_works_thumb.png
Bewerk /usr/share/nginx/html/index.html en vervang [email protected] door je eigen e-mailadres.
2. Bandbreedtegrafiek instellen
Onderaan de pagina staat een grafiek. Hiervoor gebruiken we vnstat. In dit voorbeeld gaan we ervan uit dat eth0 je internetinterface is.
Run het eerst handmatig:
/usr/bin/vnstati -i eth0 -vs -o /usr/share/nginx/html/vnstat.png
Voeg vervolgens een cronjob toe zodat de grafiek elk uur wordt bijgewerkt:
echo '00 * * * * /usr/bin/vnstati -i eth0 -vs -o /usr/share/nginx/html/vnstat.png' >> /var/spool/cron/crontabs/root
Je kunt deze pagina bekijken door naar het IP-adres van je node te navigeren (bijv. http://192.168.0.10).
Router Poort Forwarding
De laatste technische stap is het instellen van poort forwarding op je router. Zonder dit is je Tor Exit Node/Relay nutteloos. Stuur de volgende poorten door naar het IP-adres van je Tor Node (bijv. 192.168.0.10):
- TCP/80 (HTTP)
- TCP/443 (HTTPS/Tor)
- TCP/9030 (Tor Directory)
Voor hulp bij het instellen van poorten kun je terecht op portforward.com. Je kunt testen of dit werkt door naar je publieke IP-adres te surfen en te controleren of de informatiepagina verschijnt. Tor kan prima omgaan met dynamische IP-adressen; DNS-instellingen of hostnames zijn hiervoor niet nodig.
Tor Activeren en Monitoren
Nu de poorten openstaan, kunnen we Tor herstarten zodat de configuratie wordt geladen en Tor kan verifiëren dat de poorten vanaf het internet bereikbaar zijn:
/etc/init.d/tor restart
Je kunt de status van je node monitoren met arm:
sudo -u debian-tor arm
Bovenaan zie je een 'fingerprint' (bijv. GH35AJCVH421742CCJFPQIUCB1835947B4399). Met deze fingerprint of je publieke IP-adres kun je in 'Atlas' zoeken naar details over je node.
Hosting en DNS Tips
Het is sterk aanbevolen om een exit node te draaien op een VM of dedicated server bij een hostingprovider in plaats van thuis.
Reverse DNS
Vraag je provider om een reverse DNS-record (PTR) voor je IP-adres. Stel dat xxx.xxx.xxx.xxx je server-IP is en je een domeinnaam hebt, dan configureer je dit als volgt:
tor-exit1-readme.yourdomain.com A xxx.xxx.xxx.xxxxxx.xxx.xxx.xxx.in-addr.arpa PTR tor-exit1-readme.yourdomain.com
Hierdoor ziet iemand die het IP-adres van de exit node in logs vindt direct het reverse record en kan hij via de browser je informatiepagina bezoeken.
Communicatie met de provider
Het is verstandig om je hostingprovider te laten weten wat de server gaat doen. Op die manier begrijpen zij waarom er mogelijk klachten binnenkomen. Doe dit niet bij een thuis-ISP; zij zullen waarschijnlijk niet weten wat het is of je account direct beëindigen omdat het in strijd is met hun algemene voorwaarden.
Aanvullende Informatie
- Veiligheid: Voor meer informatie over het veilig draaien van een Tor Exit Node, raadpleeg dan gespecialiseerde blogs over dit onderwerp.
- Entry Guards: Je relay zal ook fungeren als Entry Guard. Houd er rekening mee dat het doorgaans 70+ dagen duurt voordat je node een volledig vertrouwde Guard is en op volle capaciteit werkt.
Groetjes,