per.foyer@xyx.se / 2018-06-22

 

Att konstruera en transparent Tor gateway

Att konstruera en transparent Tor gatewaySammanfattningBakgrundInte bara surfTor MiddleBox - allmäntEgenskaperAtt välja rätt WiFi-adaterHOWTO: Tor MiddleBoxFörberedelserKonfigurationKontrollera att TMB fungerarAllmäna rådSlutligen

Sammanfattning

I den här texten beskrivs hur en Tor MiddleBox (nedan TMB) konstrueras . Till TMB:s klientsida kan godtycklig dator- eller mobilutrustning anslutas via TMB:s egen WiFi-access-punkt. TMB byggs kring en Raspberry Pi 2 eller 3 (RPI1 och RPI Zero kan inte användas). Operativsystemet NetBSD 8.0/arm7 används. Förrutom Raspberryn behövs en extern USB-ansluten WiFi-adapter ("WiFi-pinne"), ett 16 GB microSD-kort, en ethernet-kabel och en strömadapter. RPI:ns ethernet ansluts till utgående switch eller router. Längre ner i beskrivningen finns en länk till en SD-image. Om WiFi-adaptern är, som i exemplet, en Cisco/Linksys WUSB54G behöver inga filer i SD-imagen modifieras. Används en annan WiFi-adapter behövs bara små konfigurationsändringar som förklaras senare.

Tor middlebox

 

Bakgrund

Av olika anledningar finns det ibland behov av att vara anonym på nätet. Det finns VPN-tjänster att ta till, men gemensamt för dessa är att det är övervakningstekniskt förhållandevis lätt att korrelera IP-numren på var sida om VPN-förbindelsen, vilket i praktiken betyder total avsaknad av anonymisering.

Tor network är ett nät i nätet, där trafik tar olika och slumpmässiga vägar mellan noder. Innehållen i paketen är krypterade mellan varje hopp och nod, från sändare och mottagare (och vice versa). Trafiken dekrypteras i slutnoden. Tor har framkallat stor irritation hos amerikanska NSA eftersom det är hart när ogörligt att korrellera start- och slutnod i trafiken. Det är ett bra betyg på att tekniken är mycket robust.

Tor stod från början för "The Onion Router" och togs fram av amerikanska marinen och DARPA för att göra det möjligt för försvarsstyrkor att kunna kommunicera säkert över Internet på ett sätt som gör det omöjligt att veta var sändaren är och vilken destination sändaren kopplar upp sig mot. Tor ("The Tor network") används bland annat av dissidenter och oliktänkande i totalitära stater. I Tor-tekniken ingår att med slumpmässiga intervall byta sändarens IP-adress för att försvåra geografisk pin-pointning.

Mer om tekniken bakom Tor finns att läsa hos Electronic Frontier Foundation och på WikiPedia.

Inte bara surf

Det finns en dedicerad webbläsare, Tor Browser, som är baserad på en härdad version av webbläsaren Firefox samt ett antal browser-plugins. Tor Browser finns i versioner för Windows, Mac och Linux, men även som källkodsdistribution i OpenBSD:s port-träd. Tor Browser är enkel att installera och använda, men som andra webbläsare hanterar den just bara webbtrafik med Tor network i botten. Det finns Tor-baserade appar för Android och iOS, men de innehåller ofta sårbarheter, har oklar implementation och uppdateras för det mesta sällan.

Så, om vi vill att ALL vår trafik ska gå över Tor-nätet oavsett vilken dator och/eller protokoll vi använder, hur ska det då gå till?

Tor MiddleBox - allmänt

En "Tor MiddleBox" (nedan TMB) är en hårdvaruenhet som helt transparent leder trafik från en sändare till en mottagare över Tor network. Sändaren - klienten - har ingen kunskap om att trafiken leds via Tor vilket även gäller måltjänsten på andra sidan. Enkelt uttryckt är en TMB en helt transparent router där ingen kommunikation går att avlyssna eller spåra på den sekundära sidan. Rent tekniskt skulle en TMB kunna bestå av en liten dator med två nätverksuttag med ett lämpligt och minimalistiskt operativsystem som kör en Tor-server. Om vi betecknar nätverksuttaget mot klienten ("Tor-sidan") som ETH0 och sidan mot Clear-net (Internet) ETH1 så:

Egenskaper

Den TMB som beskrivs i den här texten har följande egenskaper:

Att välja rätt WiFi-adater

Förvisso har en Raspberry Pi 3 inbyggd WiFi-adapter, men empiriska tester pekar på att den är alldeles för skakig och har för dålig sändareffekt för att användas som en access-punkt. Lämpligt är istället att använda en extern USB-ansluten WiFi-adapter. Kravet på adaptern är att den ska klara av att köras som AP-host (som accesspunkt) samt att den ska ha inbyggd firmware. Många billiga WiFi-adaptrar lutar sig mot att firmware emuleras med hjälp av en drivrutin i operativsystemet och sådana adaptrar går inte att använda.

Tor-net används inte för att surfa snabbt, det primära är att trafiken är helt anonymiserad, så en USB-ansluten WiFi-adapter som har några år på nacken duger bra. Högre hastigheter än vad 802.11g kan erbjuda är knappast nödvändigt.

WiFi-adaptrar som innehåller chipset från Ralink Technology eller Atheros fungerar garanterat.

 

HOWTO: Tor MiddleBox

För att konstruera en Tor transparent gateway behövs bara ett fåtal saker:

Förberedelser

Börja med att hämta denna komprimerade SD-image (218 MB) som är en färdiggjord OS-installation baserad på NetBSD 8.0/arm7. Imagen innehåller alla konfigurationer som behövs för att komma igång. Beroende på vilken WiFi-adapter som används kan några konfigurationsfiler behöva ändras vilket gås igenom nedan.

  1. Dekomprimera SD-imagen. I Windows kan det göras med hjälp av 7-zip. På en Mac kan det göras med hjälp av Keka eller med kommandot xz vid prompten i ett terminalfönster. I Linux/BSD används enklast kommandot xz, men grafiska alternativ finns också beroende på OS-distribution.
  2. Skriv den dekomprimerade SD-imagen till ett microSD-kort. I Windows är det enklast att använda Win32DiskImager och på en Mac, Linux eller BSD-maskin är det nog enklast att använda kommandot dd i ett terminalfönster. Varning: Att använda dd mot fel målenhet kan sluta i olycka. Om man råkar välja hårddisken som målenhet blir den givetvis överskriven och datorn går sedan inte att starta (då gäller total ominstallation), så dubbelkolla att målenheten verkligen är SD-kortet.
  3. Stoppa in microSD-kortet i Raspberryn, koppla in WiFi-adaptern, anslut ethernet-kabeln till hemma-/kontorsnätet och anslut strömmen. TMB:n kommer nu att boota och hämta en IP-adress från Internet-routern på ethernet-sidan.

Om WiFi-adaptern är en Cisco Linksys WUSB54G (drivrutin rum0 i OS) som på bilden ska det nu gå att ansluta till TMB direkt via SSID TorGW med lösenordet "kissekatt" (WPA2-PSK).

För andra WiFi-adaptrar behöver man gå igenom några konfigurationssteg för att kontrollera vilken drivrutin som associerats till den valda WiFi-adaptern, kontrollera om adaptern går att använda som AP-host (som accesspunkt), samt göra några enkla ändringar i några konfigurationsfiler.

För att realisera TMB används följande konfigurationsfiler, varav de som markerats med asterix kan behöva ändras beroende på vilken WiFi-adapter som används:

Innehållet i konfigurationsfilerna är från början: dhcpcd.conf, dhcpd.conf, hostap.conf, ifconfig.rum0, myname, pf.conf, rc.conf, resolv.conf samt torrc.

Konfiguration

För att kontrollera om vald WiFi-adapter kan användas som accesspunkt:

  1. Starta TMB med ethernet-kabeln och WiFi-adaptern anslutna.

  2. Ta reda på vilken IP-adress TMB fick när den anslöts till nätet via ethernet-kabeln. En enkel metod brukar vara att logga in i routern närmast Internet och titta i routerns DHCP lease table:

    Router lease table

  3. Logga in som root i TMB med lösenordet "kissekatt" via ssh .

  4. Kontrollera om WiFi-adaptern detekterats genom att ge kommandot ifconfig -a. WiFi-adaptern är den som inte heter usmsc0 (ethernet) och lo. Saknas någon annan än dessa har WiFi-adaptern inte detekterats och därför inte användas. Välj en annan adapter och upprepa ovanstående. Exempel på beteckningar på detekterade WiFi-adaptrar är rum0, ral0, athm0 med flera.

  5. Om den detekterade adaptern visas som rum0 behöver inte några konfigurationsfiler ändras. För andra adaptrar, kontrollera manualsidan för adaptern och leta efter texten "Host AP: In this mode the driver acts as an access point...". Exempel: För adaptern ral0 ge kommondot man 4 ral, för athn0 ge kommandot man 4 athn och så vidare. Saknas ovanstående "Host AP"-text kan adaptern inte användas. Välj en annan. Exempel på adaptrar som inte kan användas som accesspunkter är wpi och zyd.

  6. Om adaptern detekterades och manualsidan innehöll texten i punkt 5 ovan, ändra alla förekomster av rum0 i de filer som markerats med asterix ovan, det vill säga /etc/hostap.conf , /etc/pf.conf och /etc/rc.conf . Döp om filen /etc/ifconfig.rum0 så att namnet efter punkten i filen motsvarar namnet på den WiFi-adapter som ska användas. Exempel: för adaptern athn0 döp om filen till /etc/ifconfig athn0.

  7. Klart! Starta om TMB och anslut till SSID TorGW med lösenordet "kissekatt" (WPA2-PSK).

Lösenordet till WiFi-adaptern kan ändras i filen /etc/hostap.conf och lösenordet till användaren root ändras vid prompten med kommandot passwd root i vanlig UNIX-ordning.

Kontrollera att TMB fungerar

Gå till adressen check.torproject.org och kontrollera verifieringen. På sidan anges den exit-nod som används i just denna session. På siten www.showmyip.gr går det förutom att se IP-numret även att kontrollera på en karta var slutnoden befinner sig geografiskt.

Allmäna råd

Surfa inte över Tor network med webbläsaren Chrome. Den innehåller intensiv kommunikation med Google vilket antagligen röjer anonymiteten totalt. Använd istället Firefox ESR med webbläsartilläggen Privacy Badger och HTTPS Everywhere från EFF, uBlock Origin samt NoScript. Ta för vana att surfa över Tor med JavaScript avstängt. Webbläsares WebRTC (Web Real-Time Communications) är notoriskt för att läcka information, så stäng av det i Firefox konfiguration genom att ge URL:en about:config och söka upp variabeln variabeln media.peerconnection.enabled och sedan sätta den till false. Starta sedan om Firefox.

Slutligen

Feedback på denna text är välkommen. Likaså synpunkter om texten innehåller några typos eller behöver förtydligas.

 

EOF