Gebruik de Raspberry Pi als Tor-router
Tor is een netwerkprotocol waarbij internetverkeer geanonimiseerd wordt. Je netwerkverkeer volgt steeds een ander willekeurig pad, waardoor het lastig is om dit af te luisteren. We leggen uit hoe je van je Raspberry Pi een Tor-router maakt, zodat je met elk apparaat via Tor kunt internetten.
01 Benodigdheden
Als je Tor wilt gebruiken, moet je het normaal op elke computer en elk mobiel apparaat configureren waarop je via Tor wilt surfen. Wil je op verschillende apparaten anoniem surfen, dan is dat dus nogal omslachtig. Daarom gebruiken we hier een andere aanpak. We maken van een Raspberry Pi een draadloos toegangspunt en laten onze apparaten met het toegangspunt verbinden. Daarna draaien we Tor op de Pi, zodat elk apparaat dat via het toegangspunt surft, automatisch op het Tor-netwerk zit. Het enige wat we extra nodig hebben vergeleken met de vorige workshops, is een usb-wifi-adapter.
02 Wifi
Zorg ervoor dat je usb-wifi-adapter compatibel is met de Raspberry Pi en in het bijzonder de Linux-distributie die je gebruikt. Koop je de adapter in een gespecialiseerde Pi-shop, dan zit je meestal goed. We gaan ervan uit dat je het besturingssysteem Raspbian op je Pi geïnstalleerd hebt (zie ook de cursus). Sluit de adapter via usb aan, schakel je Pi in en geef dan de opdracht iwconfig. Zie je in de uitvoer informatie over je adapter staan, bijvoorbeeld achter de naam wlan0, dan wordt de adapter door Raspbian herkend.
03 Toegangspunt
Om van de Pi nu een draadloos toegangspunt te maken, installeren we de software hostapd (host access point daemon), evenals een DHCP-server die IP-adressen uitdeelt aan de apparaten die met de Pi verbinden. Dat kan met de opdracht sudo apt-get install hostapd isc-dhcp-server. Als je een foutmelding krijgt omdat de repository te oud is, dan update je die eerst met sudo apt-get update. De bedoeling is dus dat de Pi via de ethernetkabel verbindt met internet, en iedereen die via wifi verbindt ook toegang tot internet geeft via de ethernetinterface.
04 DHCP-configuratie
Configureer de DHCP-server met sudo nano /etc/dhcp/dhcpd.conf. Plaats een hekje (#) voor de regels die beginnen met option domain-name en option domain-name-servers. Verwijder # voor de regel #authoritative;. Zoek naar A slightly different configuration en verwijder # voor elke regel van dat onderdeel, behalve de gezochte zin. Verander nu enkele getallen: verander 224 na de netmask in 0, de 26 na range in 2, de ns1.internal.example.org in 8.8.8.8, 8.8.4.4 (Google DNS), internal.example.org wordt local en van 31 na broadcast-address maak je 255. Sla op en sluit af (Ctrl+O en Ctrl+X).
05 DHCP-configuratie (2)
Nu moeten we configureren naar welke netwerkinterface de DHCP-server luistert. Dat kan met sudo nano /etc/default/isc-dhcp-server. Vul beneden bij de regel INTERFACES="" de naam van je draadloze netwerkinterface in die je in stap 2 gezien hebt, bijvoorbeeld INTERFACES="wlan0". Sla op en sluit af met Ctrl+O en Ctrl+X. Geef je wifi-interface nu een statisch IP-adres met sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0. Herstart daarna de DHCP-server met sudo service isc-dhcp-server restart. Nu krijg je voor Starting ISC DHCP server: dhcpd in het groen ok te zien.
06 Statisch IP-adres
Nu moeten we nog instellen dat wlan0 elke keer bij het opstarten van de Raspberry Pi hetzelfde statische IP-adres krijgt. Dat kan met sudo nano /etc/network/interfaces. Plaats een # voor alle regels die na allow-hotplug wlan0 komen, want die configuratie gaan we niet gebruiken. Voeg daarna drie regels toe: iface wlan0 inet static, address 10.5.5.1 en netmask 255.255.255.0. Sla op en sluit af met Ctrl+O en Ctrl+X. Herstart daarna je Pi met sudo reboot en controleer daarna met de opdracht ifconfig wlan0 of de wifi-interface automatisch het juiste IP-adres krijgt.
Wat is Tor?
De onion-routing-technologie van Tor is in 1995 ontwikkeld door U.S. Naval Research Laboratory, een onderzoekscentrum van de Amerikaanse marine. Op basis daarvan ontwikkelt het Tor-project de gelijknamige opensourcesoftware om anoniem te internetten. Naast de software is er ook het Tor-netwerk, dat bestaat uit onion-routers: servers die door vrijwilligers gedraaid worden. Als je via het Tor-netwerk surft, volgt je netwerkverkeer een willekeurig pad tussen die onion-routers. Daardoor ziet de website die je bezoekt een willekeurig IP-adres.
Hoe werkt Tor?
Elke tien minuten wordt het pad dat je netwerkverkeer in Tor volgt veranderd, waardoor het voor de website die je bezoekt lijkt alsof je plots een andere bezoeker (van een IP-adres van de andere kant van de wereld) bent. Daardoor is het in de praktijk heel moeilijk voor buitenstaanders om je te traceren. Bovendien is het verkeer tussen elke onion-router versleuteld, waardoor elke Tor-server slechts een minimale hoeveelheid informatie over je kent.
07 Toegangspunt
Nu het draadloze netwerk werkt, configureren we het toegangspunt. Dat kan met sudo nano /etc/hostapd/hostapd.conf. We maken hiermee een nieuw configuratiebestand. Vul dat met de eerste set regels uit stap 3 van deze webpagina. Achter ssid vul je de naam in die je aan je draadloze netwerk wilt geven en achter wpa_passphrase vul je het wachtwoord in voor je netwerk. Sla het bestand op en sluit het af. De andere instellingen laat je voorlopig zo, maar ze zijn later nog te veranderen. Lees daarvoor de online documentatie.
08 Hostapd uitproberen
Nu is het moment daar om je hostapd-configuratie uit te proberen. Doe dat met de opdracht sudo hostapd /etc/hostapd/hostapd.conf. Kijk goed naar de meldingen van het programma om problemen te ontdekken. Probeer nu met een ander apparaat te verbinden met het draadloze netwerk met het SSID dat je geconfigureerd hebt. Vul het gekozen wachtwoord in. Als alles goed gaat, krijg je in de uitvoer van hostapd de verbinding te zien, samen met het MAC-adres van het verbonden apparaat. Als dat werkt, druk dan op Ctrl+C om hostapd af te sluiten.
09 Configuratiebestand
Zodra dit werkt, moeten we instellen welk configuratiebestand hostapd standaard zal gebruiken. Voer daarvoor sudo nano /etc/default/hostapd uit en voeg de regel DAEMON_CONF="/etc/hostapd/hostapd.conf" toe. Sla het bestand op met Ctrl+O en sluit het af met Ctrl+X. Verder moeten we nog instellen dat meerdere wifi-clients die met het draadloze netwerk verbinden, dezelfde internetverbinding via de ethernetkabel kunnen delen. Voer daarom sudo nano /etc/sysctl.conf uit en zoek naar de regel #net.ipv4.ip_forward=1. Verwijder #, sla het bestand op en sluit het af.
10 NAT
Dan rest er ons nog één zaak voor we een werkend toegangspunt hebben: NAT (network address translation) configureren. Voer hiervoor deze opdrachten uit: sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE, dan sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT en sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT. Sla op met sudo sh -c "iptables-save > /etc/iptables.ipv4.nat". Voer daarna sudo nano /etc/network/interfaces uit en voeg aan het einde van het bestand up iptables-restore < /etc/iptables.ipv4.nat toe.
11 Automatisch opstarten
Nu moeten we er enkel nog voor zorgen dat de DHCP-server en hostapd automatisch opstarten bij het opstarten van de Raspberry Pi. Voer daarvoor sudo update-rc.d isc-dhcp-server enable en sudo update-rc.d hostapd enable uit. Herstart nu je Pi en probeer met een draadloos toestel op het SSID van je Pi te verbinden. Is dat gelukt, probeer er dan ook mee te surfen. Als alles goed gaat, heb je nu je eigen draadloos toegangspunt gemaakt!
12 Problemen
Om verder te gaan met de workshop en een Tor-router van je Pi te maken, moet alles tot nu toe werken. Zonder werkend toegangspunt kan je Pi immers niet als Tor-router functioneren. Kijk bij problemen eens hier om te controleren of je wifi-adapter wel op de Pi ondersteund is en of je eventueel andere drivers moet downloaden of speciale configuratiestappen moet uitvoeren. Lees ook zeker de al vermelde online documentatie als je iets aan de instellingen van hostapd wilt veranderen.
13 Tor installeren
Tor installeren gaat gelukkig eenvoudig: het zit gewoonweg in de repository van Raspbian. Voer daarvoor sudo apt-get install tor uit. Open daarna het configuratiebestand met sudo nano /etc/tor/torrc en voeg daaraan de volgende regels toe: Log notice file /var/log/tor/notices.log, VirtualAddrNetwork 172.16.0.0/12, AutomapHostsSuffixes .onion,.exit, AutomapHostsOnResolve 1, TransPort 9040, TransListenAddress 10.5.5.1, DNSPort 53 en DNSListenAddress 10.5.5.1. Zorg dat bij TransListenAddress en DNSListenAddress hetzelfde IP-adres staat als het statische adres van je wifi-interface. Sla het bestand op met Ctrl+O en sluit het af met Ctrl+X.
14 Tor-router
Terwijl we in stap 10 hebben ingesteld dat verbindingen op het wifi-netwerk rechtstreeks via de ethernetinterface gaan, moeten we die nu langs de Tor-software laten gaan. We verwijderen de oude NAT-regels met sudo iptables -F en sudo iptables -t nat -F. Daarna geven we de volgende drie opdrachten in: sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22, sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53 en sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040.
15 Logbestand
Sla eerst de NAT-configuratie op met sudo sh -c "iptables-save > /etc/iptables.ipv4.nat". In stap 10 hebben we er al voor gezorgd dat die configuratie bij het booten van je Pi ingelezen wordt. Nu maken we nog een logbestand aan voor Tor: sudo touch /var/log/tor/notices.log, sudo chown debian-tor /var/log/tor/notices.log en sudo chmod 644 /var/log/tor/notices.log. Herstart Tor (sudo service tor restart) en controleer of je geen foutmeldingen ziet. Vervolgens laat je Tor automatisch mee opstarten met de opdracht sudo update-rc.d tor enable.
16 Tor testen
Als je nu op je computer, smartphone of tablet verbindt met het SSID van je Raspberry Pi, surf je automatisch via het Tor-netwerk. Om te controleren of je echt via Tor surft, bezoek je in je browser deze webpagina. Indien de Tor-verbinding niet werkt, krijg je een ui met een rood kruis erover te zien en de melding dat je geen gebruikmaakt van Tor. Kijk dan met de opdracht less /var/log/tor/notices.log of er in het logbestand informatie staat die je helpt om het probleem te lokaliseren. Druk op q om het programma 'less' te verlaten.
17 Met Tor browsen
Werkt de Tor-verbinding, dan krijg je op de testpagina van Tor een interface te zien en gelukwensen dat je browser geconfigureerd is om Tor te gebruiken. Het IP-adres dat je daar te zien krijgt, verandert bovendien elke tien minuten omdat de Tor-software op je router dan een ander pad gebruikt en de laatste onion-router in dat pad dus een willekeurige server is. Je zult merken dat het surfen via Tor heel wat trager gaat, maar je hoeft dan ook niet altijd via Tor te surfen. Op momenten dat je je anonimiteit niet zo belangrijk vindt, schakel je eenvoudigweg over naar je normale draadloze toegangspunt.
18 Kies je land
Als je Tor wilt gebruiken om regiobeperkingen te omzeilen, dan kan dat heel eenvoudig. Open het configuratiebestand met sudo nano /etc/tor/torrc en voeg de volgende regels toe: StrictExitNodes 1 en ExitNodes {us}. Dit in de veronderstelling dat je enkel via exit-nodes in de Verenigde Staten wilt surfen. Je kunt ook meerdere landen voor de exit-nodes toestaan, bijvoorbeeld met ExitNodes {de},{fi}. Sla het bestand op met Ctrl+O en sluit het af met Ctrl+X en herstart Tor met sudo service tor restart. Verifieer op een website zoals www.whatismyip.com dat je IP-adres tot het gekozen land behoort.
19 Voorzorgen
Voordat je nu enthousiast allerlei schimmige websites gaat bezoeken in de veronderstelling dat niemand je meer kan traceren, moet je enkele voorzorgsmaatregelen nemen. Hier kun je zien hoe traceerbaar je via je browser bent. Schakel bijvoorbeeld de Flash-plug-in van je browser uit als je via Tor surft, want Flash biedt heel wat gluiperige manieren die je anonimiteit in gevaar brengen. Cookies vermijd je het best ook tijdens je anonieme surftochten. Open ook geen doc- en pdf-bestanden vanuit de browser terwijl je via Tor surft, want daar zitten mogelijk dubieuze scripts in.
20 Accounts
Een andere fout die je niet mag maken is eerst op een account (van bijvoorbeeld een webdienst) inloggen zonder je Tor-verbinding en daarna op dezelfde account inloggen via Tor. Als je de dienst zelf niet vertrouwt, weet die nu immers dat je Tor gebruikt. Je echte IP-adres kan opgezocht worden van je eerste sessie toen je nog geen Tor gebruikte. Wil je echt volledig anoniem blijven, maak dan een speciaal account aan dat je enkel via Tor gebruikt, zodat er geen enkele link met je identiteit te vinden is.
21 Encryptie
Tot slot: surfen via Tor betekent niet dat je niets meer hoeft te versleutelen. Herinner je immers hoe het Tor-netwerk werkt: het netwerkverkeer van jou naar de eerste onion-server is versleuteld, evenals het verkeer tussen onion-servers onderling. Het netwerkverkeer tussen de laatste server en de website die je bezoekt wordt echter niet door Tor versleuteld. Gebruik daarom altijd https voor gevoelige websites, zodat niemand je activiteiten op de websites kan afluisteren. En gebruik encryptie als je anoniem wilt e-mailen, chatten of videobellen via Tor.
Tails
We hebben in deze workshop voor een gemakkelijkheidsoplossing gekozen: door over te schakelen naar het draadloze netwerk van de Pi kun je van ieder draadloos apparaat heel snel overschakelen van een onbeschermde internetverbinding naar een Tor-verbinding. Zoals we hebben uitgelegd, komt er echter veel meer bij kijken als je meer anonimiteit wilt. Wie meer wil, moet eens naar Tails kijken. Deze Linux-distributie, die je live van een usb-stick draait, is speciaal geconfigureerd om niet alleen via Tor te internetten, maar ook zo min mogelijk informatie te lekken.