Tor Relays
:fill(white):strip_exif()/f/image/YoLUH9HJUpKNvs4G3vXWr6Ix.png?f=user_large)
Inhoudsopgave
- Introductie
- Waar is dit topic niet voor bedoeld
- Wat betekend Tor
- Hoe werkt het Tor netwerk
- Wie beheert het Tor netwerk
- Zelf een relay opzetten
- Flags
- Hidden services / Onion services
- Tools
- Bronmateriaal en overige links
Introductie
Er komen regelmatig nieuwsberichten op Tweakers over het Tor netwerk. In de reacties merk ik dat er niet heel veel bekend is over de werking van dit netwerk. Ook lees ik op het forum heel weinig over het Tor netwerk terwijl ik verwacht dat juist veel bezoekers van dit forum tot de doelgroep behoren voor het onderhoud en beheer van dit netwerk. Ik dacht daarom dit topic te openen als centraal punt voor het stellen van vragen en het delen van ervaringen. En wie weet, misschien wordt het Tor netwerk er weer iets beter van.Deze openingspost is work in progress. We moeten ergens mee beginnen...
Waar is dit topic niet voor bedoeld
Tor ligt regelmatig onder vuur omdat goede dingen ook kunnen worden gebruikt voor de verkeerde doeleinden. Het is niet de bedoeling om de doelstelling van Tor in dit topic ter discussie te stellen. Je mag daar je eigen topic voor openen en eventueel een linkje plaatsen in dit topic om ernaar te verwijzen maar de discussie dient elders te worden gevoerd. Het is uiteraard wel toegestaan om de middelen te bespreken die nodig zijn om eventueel misbruik en overlast te beperken.Wat betekend Tor
Tor staat voor The Onion Router. Het is gebaseerd op een techniek waarbij de data in meerdere lagen wordt versleuteld. Het ontsleutelen van deze data lijkt op het afpellen van een ui. Vandaar de naam.Hoe werkt het Tor netwerk
Tor bestaat uit twee delen, clients en servers. De browser die de meeste mensen kennen als Tor is de meest gebruikte client. Deze client maakt een verbinding met het Tor netwerk, de servers. Om de client anoniem te houden wordt het verkeer altijd doorgestuurd via 3 verschillende servers. Een Guard Relay of Bridge Relay als toegangspunt, een Middle Relay als tussenstap en uiteindelijk een Exit Relay om het Tor netwerk te verlaten en het internet te betreden. Al deze punten worden relays genoemd omdat ze simpelweg het verkeer relayen (oftewel: doorgeven). De relays worden vaak ook aangeduid als nodes. Deze terminologie wordt veelal door elkaar gebruikt. Een Exit node is dus hetzelfde als een Exit relay.Zodra de client een verbinding wil maken wordt er eerst een route uitgestippeld. Dit doet de client zelf door verbinding te maken met de Directory Server. Deze server bevat een lijst van alle relays in het netwerk inclusief hun publieke sleutels. De client krijgt (een klein deel) van de relays aangeboden zodat hij zelf een route op kan zetten. De Directory Server geeft de client deze keuze zodat hij niet weet welke route het zal worden. Dit is belangrijk omdat het de anonimiteit bevordert. De lijst bevat tevens de publieke sleutels waarmee de client zijn data kan versleutelen die voor de relays bestemd zijn. Als de route bekend is kan er data worden verzonden. De data wordt in drievoud versleuteld door de client en verzonden naar de eerste relay, oftewel de Guard Relay. Deze relay ontsleuteld de data en ziet dan naar welke relay hij de data moet doorsturen en dat er nog een versleuteld pakket aan data is. De Guard versleuteld de data opnieuw en stuurt deze naar de Middle Relay. Ook die ontsleuteld de data en ziet vervolgens naar welke Exit relay de data gestuurd moet worden. De Exit Relay ontsleuteld de data ook en ziet uiteindelijk de daadwerkelijke data die de client heeft verzonden. De data wordt vanaf de client dus in meerdere lagen versleuteld, namelijk voor iedere relay één keer. De relays versleutelen de data nogmaals als ze onderling communiceren. Als er iemand op de verbinding mee zou kijken zien ze dus alleen dubbel versleutelde data.
Als er een relay in de route zou zitten die de client zou willen controleren dan wordt dit heel moeilijk. De Guard weet namelijk wie met wie hij praat maar niet waar over hij praat. De Middle relay weet helemaal niets. De Exit weet wel waar over hij praat maar niet van wie de data afkomstig is. De client is dus op meerdere manieren beschermt.

Wie beheert het Tor netwerk
Alle relays worden door vrijwilligers opgezet en onderhouden. Je hoeft je niet aan te melden als vrijwilliger en je kunt starten (en stoppen) wanneer je maar wilt. Dit heeft als grote voordeel dat niemand het Tor netwerk kan toe-eigenen. Doordat iedereen zomaar een eigen relay kan opzetten kan er geen controle of druk worden uitgeoefend op het netwerk. Dit komt zowel de betrouwbaarheid als de anonimiteit ten goede. Het is ontzettend moeilijk om zowel de Guard relay als de Exit relay te controleren in dezelfde route. Bovendien veranderd die route standaard ook nog eens iedere 10 minuten.De grootste bottelnek in het netwerk zijn waarschijnlijk de Directory Servers. Dit zijn 9 servers die de status van het netwerk bijhouden en die de informatie van alle relays bevatten. Iedere Directory Server wordt beheerd door een onafhankelijke persoon of organisatie zodat niemand die volledige controle over het netwerk heeft. Daarnaast overleggen deze servers ieder uur de status van de relays onderling en vergelijken ze de informatie met elkaar. Die informatie wordt vervolgens ondertekend en kan door de clients worden gecontroleerd. Het netwerk controleert zichzelf op deze manier.
Zelf een relay opzetten
In principe kan iedereen met een internet verbinding een relay starten. Om een betrouwbaar netwerk te bouwen zijn er uiteraard wel wat voorwaarden. Dit zijn geen eisen en je hoeft hier dus niet aan te voldoen. Het is echter wel wenselijk omdat het netwerk anders instabiel kan worden.- Je hebt een statisch publiek IP-adres en je router kan port-forwarden
- Je hebt een internet-verbinding met voldoende bandbreedte *1
- Je hebt een computer die 24 uur per dag aan staat
- Je bent bekend met de risico's voor het draaien van een Tor relay (lees hier onder bij Middle relay en Exit relay wat dit inhoudt)
Bandbreedte is van cruciaal belang. Vooral aan het begin van de route is meer bandbreedte vaak wenselijk omdat dit tevens bepaald hoe snel de data naar de rest van het netwerk wordt gestuurd. Guard relays worden daarom vaak gekozen op basis van bandbreedte, betrouwbaarheid en beschikbaarheid. Omdat een Tor relay vrijwel net zoveel data download als upload moet je vooral goed opletten hoeveel uploadsnelheid je internet verbinding heeft. De relay kan via een configuratiebestand gelimiteerd worden in zijn bandbreedte gebruik waardoor je snelheid over houdt voor andere zaken.
Het draaien van een Exit relay is niet aan te raden op je privé IP adres! Exit relays worden vaak geblokkeerd en zijn ook wel eens doelwit van aanvallers. Je zou jezelf (en je familie) dus geen plezier doen als je dit doet op je eigen internet verbinding. Als je er toch aan wilt beginnen is een extra (tweede) IP adres zeer wenselijk zodat je eigen verkeer gescheiden blijft van het Tor verkeer.
Mocht je dit nu lezen en jezelf afvragen welke relay je het beste kunt starten vanaf je privé internet verbinding thuis dan raadt ik je een bridge aan. Bridges zijn hard nodig om de toegang tot het Tor netwerk veilig te stellen.
Bridge relay
Een bridge relay is een verborgen relay in het Tor netwerk. De IP adressen van deze relays worden niet publiekelijk gedeeld wat als voordeel heeft dat ze ook niet eenvoudig geblokkeerd kunnen worden. En dat is nu precies de reden van het bestaan van deze relays. In sommige landen wordt het Tor netwerk actief geblokkeerd door simpelweg alle bekende IP adressen van relays te blokkeren. Maar IP adressen die je niet kent kun je ook niet blokkeren. Daar komen de Bridges dus in actie. Bridges zijn dus eigenlijk toegangspunten voor gebruikers die niet op de normale manier met Tor kunnen verbinden.Het draaien van een Bridge is ook relatief veilig voor de beheerder ervan. Je IP adres is niet publiekelijk bekend en je zult dan ook weinig tot geen last hebben van blokkades of aanvallen. Omdat een Bridge geen deel uit maakt van het standaard netwerk zal deze ook minder dataverkeer te verwerken krijgen. Je krijgt namelijk alleen te maken met clients die er voor kiezen om verbinding te maken via een Bridge.
Als je een bridge wilt draaien denk er dan ook aan om een obfuscation protocol te installeren. Dit zorgt ervoor dat het dataverkeer wordt vervormt naar onherbare data. Op die manier is het voor mensen die Tor willen blokkeren lastiger om het dataverkeer te herkennen als Tor verkeer. Het meest gebruikte protocol is obfs4. Om een Obfs4 bridge te installeren is deze handleiding in het leven geroepen.
Guard relay
Een Guard relay is de relay die dienst doet als toegangspunt voor het netwerk. Je kunt er niet voor kiezen om zelf een Guard op te zetten. Hier wordt je voor gekozen door het netwerk zelf. Je start met het opzetten van een normale Middle relay en houdt deze zo stabiel mogelijk in de lucht. Veel bandbreedte en weinig downtime zullen ervoor zorgen dat je na een aantal weken kan worden geselecteerd als Guard relay. Je bent ook niet voor altijd een Guard relay. Om de zoveel weken schuiven de functies op en ben je dus weer een Middle relay. Op die manier zorgt het netwerk ervoor dat je niet teveel controle uit kunt oefenen op de toegang van het netwerk.Middle relay
Een Middle relay is de meest gebruikte relay in het netwerk. Dit is dan ook de meest voor de hand liggende optie als je zelf een relay op wil zetten. Een Middle relay wordt wel opgenomen in de lijst met publieke relays maar zal minder vaak worden geconfronteerd met de nadelen van een Exit relay. Toch is er geen zekerheid dat je IP adres nooit geblokkeerd zal worden. Uit eigen ervaring en van online lezen (bron nodig) heb ik gemerkt dat ook Middle relays door bepaalde internet diensten geblokkeerd kunnen worden. Dit is jammer want het blokkeren van deze IP adressen heeft geen enkel nut. Middle relays routeren geen verkeer naar het internet toe en een blokkade zal daarom eerder legitieme bezoekers treffen dan dat het aanvallers zal stoppen.Netwerkbeheerders: laat jullie niet foppen! Er zijn er genoeg hier op Tweakers en ik roep jullie op om vooral geen non-exit relays te blokkeren. Ook dit helpt mee aan een beter Tor netwerk!
Exit relay
De Exit relay is de laatste relay in de route en verbind Tor gebruikers met het grote boze internet. Het draaien van een Exit relay is een hobby op zich die vele uitdagingen met zich mee brengt. Je moet er om te beginnen rekening mee houden dat het aantal Exit relays beperkt is. Je relay zal dus veel dataverkeer voor zijn kiezen krijgen. Daarnaast zijn Exit relays gevreesd door veel systeembeheerders en worden ze daarom lustig geblokkeerd. Start daarom nooit een Exit relay vanaf je privé internet verbinding! Je hebt grote kans dat je normale dataverkeer veelvuldig geblokkeerd zal worden en dat normaal surfgedrag vaak te maken krijgt met anti-spam verificaties en andere beveiligingsmethodes.Het draaien van een Exit relay is een weloverwogen keuze. Het netwerk kiest je niet uit om dit te doen, je geeft dit zelf expliciet op in de configuratie. Om een goed functionerende Exit relay te draaien zul je de hardware hier mogelijk op aan moeten passen. Lees bijvoorbeeld hier hoe de mensen achter IPredator dit hebben aangepakt. Houdt er ook rekening mee dat je relay misbruikt kan worden voor minder vriendelijke doeleinden.
Flags
Flags zijn kwalificaties waaraan je relay kan voldoen. Deze zorgen voor het opbouwen van een stabiele route. Bepaalde flags geven bijvoorbeeld aan dat je relay (op dat moment) niet geschikt is voor het gebruik binnen een bepaalde route.![]() | Running | De relay is 'Running' als de directory server in de laatste 45 minuten verbinding heeft kunnen maken met alle gepubliceerde poorten. |
![]() | Stable | De relay is geschikt voor routes die langere tijd online blijven. Dit heeft vooral te maken met hoe vaak de relay offline is. Als je relay 24/7 online is zal je waarschijnlijk altijd deze flag zien. |
![]() | Validated | De relay is 'gevalideerd'. Dit is een flag die geïntroduceerd is vanaf versie 0.2.9.4-alpha. Sinds die versie worden alle relays gecontroleerd op hun versie (of er specifieke bugs zijn) en of ze op een zwarte lijst staan bij de directory authority. |
![]() | Fast | De relay is geschikt voor routes met een hoge bandbreedte. De relay moet qua bandbreedte minimaal in de top 87.5% van de actieve relays staan of een bandbreedte hebben van 100KB/s. |
![]() | Guard | De relay is geschikt om als Guard relay te worden gebruikt. Deze flag krijg je willekeurig als je aan de juiste voorwaarden voldoet. |
![]() | Exit | Dit is een Exit relay. Er wordt verkeer naar het internet toegestaan (al dan niet beperkt door een exit policy). |
![]() | V2Dir | De relay ondersteund het v2 directory protocol. |
![]() | HSDir | De relay is een v2 hidden service directory. |
![]() | Authority | De relay is een directory authority. Dit is alleen weggelegd voor speciaal daarvoor toegewezen relays. |
Er zijn nog wat extra flags die niet onder de standaard flags vallen.
![]() | Not Recommended | Deze relay wordt niet aangeraden omdat hij gebruikt maakt van een onstabiele of verouderde versie. |
![]() | Reachable IPv6 | Deze relay is ook beschikbaar via IPv6. |
Hidden services / Onion services
Onion services zijn diensten die alleen werken via het Tor netwerk. Ze worden meestal hidden services genoemd omdat ze lastig te vinden zijn als je de hostnaam/domeinnaam niet hebt. Een voorbeeld van zo'n hostnaam is: vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion. Het is dus een lange naam met ogenschijnlijk willekeurige karakters die eindigen met het TLD .onion. De karakters zijn niet helemaal willekeurig want ze zijn samengesteld uit een public key, checksum en versienummer. De hostnaam wordt ergens op het Tor netwerk aan een dienst gekoppeld die er dan weer zijn eigen ding mee doet. In de meeste gevallen zal dit een website zijn.Het voordeel van deze onion service is dat de verbinding altijd en volledig loopt via het Tor netwerk. Er is dus geen Exit relay nodig om de data van het internet te halen. Je privacy is dus nog beter vertegenwoordigd en de verbinding zelf is nog beter versleuteld dan wanneer je gebruik zou maken van een normale website met een SSL/TLS certificaat. Aan de andere kant is de website zelf ook beter beveiligd. Er is bijvoorbeeld geen publiek IP adres bekend waardoor de privacy van de eigenaar van de website ook beschermd wordt. Het platleggen van zo'n website door middel van bekende aanvallen wordt hierdoor ook een stuk moeilijker gemaakt. Een ander voordeel is NAT punching. Een onion service maakt alleen uitgaande verbindingen waardoor deze minder snel worden geblokkeerd door firewalls. Ze hebben hierdoor een geen NAT routering nodig om te kunnen werken. Zo kun je op je eigen laptop een SSH server draaien die dankzij een lokale Tor server veilig en zonder problemen beschikbaar is voor de buitenwereld, ongeacht waar je bent. Als je een internet verbinding hebt zou je via het Tor netwerk met de SSH server kunnen verbinden.
Het opzetten van een onion service is redelijk eenvoudig. Iedereen die zelf wel eens een webserver geïnstalleerd heeft op een Linux platform kan zonder meer een onion service installeren en configureren. In het kort vereist het dat je Tor installeert en dat je door middel van twee regels in de configuratie aangeeft waar je public en private keys worden opgeslagen en welke netwerkpoort je door wilt sturen naar de door jouw opgegeven host en poort. Je maakt dus eigenlijk een soort proxy. Het doorverwijzen kan dan ook naar ieder adres op het internet. Maar als je echt verborgen wilt blijven dan zorg je dat het verkeer je server niet verlaat en stuur je de data door naar de localhost of zelfs naar een Unix socket. Je kunt met één Tor server meerdere onion services aanmaken door de benodigde configuratieregels simpelweg te herhalen voor iedere benodigde service.
Tools
Tor Metrics - Relay searchAls je relay online is zou je deze na ongeveer 3 uur in de Tor Metrics terug moeten kunnen vinden. Via de relay search kun je eenvoudigweg op de naam van je server zoeken. In de gedetailleerde informatie zie je onder andere de uptime, flags, hostname, geadverteerde bandbreedte, land van herkomst en de exit policy. De geadverteerde bandbreedte komt meestal niet overeen met de maximale bandbreedte die je hebt ingesteld in je tor configuratie. Dit komt doordat Tor liever rekent met werkelijke prestaties dan met ingevoerde waarden. Naarmate je relay meer dataverkeer te verwerken krijgt zal je geadverteerde bandbreedte een betere weergave van de werkelijkheid tonen.
De grafieken laten je zien hoeveel dataverkeer er is geweest, hoeveel clients er met je bridge verbonden waren of de kans waarmee je middle relay als guard zal funtioneren. Deze grafieken updaten volgens mij maar eens per dag en het kan enkele weken duren voordat ze voor het eerst tevoorschijn komen.
Nyx
Nyx is de tool voor relay operators om realtime inzicht te krijgen in het dataverkeer en de verbonden clients. Ook laat Nyx zien welke flags er van toepassing zijn op je relay en wat de exit policy is. Je ziet hier ook direct de event log van je relay.
Bronmateriaal en overige links
https://www.torproject.org/https://trac.torproject.org/projects/tor/wiki/TorRelayGuide
Tor Directory Protocol v3
Wikipedia: Tor (netwerk)
https://skerritt.blog/how-does-tor-really-work/
https://robertheaton.com/2019/04/06/how-does-tor-work/
[ Voor 185% gewijzigd door 3raser op 23-06-2021 11:51 . Reden: Hidden services toegevoegd ]