Sådan anonymiseres Node.js-applikationer ved hjælp af Tor

Masker HTTP-anmodningerne fra din Node.js-kode

Foto af Carlos på Unsplash

Som enhver udvikler finder jeg mig selv at skrive mange scripts, bots og cron-job, der regelmæssigt rammer visse servere. Lejlighedsvis har jeg brug for, at disse scripts ser ud til at være på tilfældige fjerntliggende steder. Nogle gange vil jeg teste, hvordan min nye botbeskyttelse opfører sig, se min hjemmeside eller applikation fra udlandet, eller få adgang til et websted, der ikke er tilgængeligt fra det land, jeg er i (jeg boede i Tyrkiet), eller bare maskerer hvem jeg er online. For at opnå dette problemfrit og pålideligt havde jeg brug for en pålidelig og anonym VPN eller proxy.

Jeg oprettede min egen VPN, som var en ret god løsning til nogle af mine brugssager. Men det var kompliceret at ændre placeringen af ​​VPN, det var ikke anonymt, og det var dyrt, da jeg ikke aktivt brugte den. Efter nogle tanker og noget research, har jeg indset, at Tor er perfekt til de fleste af mine brugssager. Det er pålideligt, anonymt og gratis!

I denne artikel skal jeg forklare, hvordan du kan indstille din egen kode til at arbejde over Tor og bruge dens fordele gratis. Lad os starte med at forstå, hvad Tor er.

Hvad er Tor?

Tor, eller som det plejede at kaldes “Onion Router”, er en tjeneste, der muliggør gratis anonym kommunikation over internettet. Den dirigerer internettrafik gennem gratis, verdensomspændende, frivillige betjente relæer til at maskere oprindelsen af ​​anmodninger. Tor-projektet sigter mod at hjælpe folk med at beskytte sig mod virksomheder, regeringer eller enkeltpersoner, der udfører trafikanalyse eller netværksovervågning.

De udviklede også Tor Browser til at erstatte din sædvanlige browser til daglig brug. For eksempel, hvis du er bekymret for, hvordan virksomheder som Facebook og Google overvåger din hver bevægelse for at vise dig relevante annoncer, kan du tjekke ud til Tor Browser. Det fungerer som enhver anden internetbrowser med nogle tilføjede funktioner og muligheder for at øge anonymiteten. Den bruger Tor's netværk til at skjule, hvem du er, og hvad du gør online. Derfor er det også den mest populære måde at få adgang til den skjulte del af internettet, der almindeligvis kaldes det dybe web. Ifølge Tor Metrics bruger ca. to millioner mennesker Tor Browser hver dag.

Hvad der især er interessant med Tor, er, hvor let det er at opsætte en lokal Tor-proxy og dirigere al vores trafik gennem den. Det er også helt gratis.

Opsætning af en Tor Proxy

Den mest stabile måde at gøre dette på er at køre en Tor-proxy selv og omdirigere vores Node.js-anmodninger gennem den. Opsætning af din egen proxy lyder kompliceret, men det er let. Jeg forklarer en nem måde og en ikke så nem måde at gøre dette på. Begge er relativt enkle, så bær med mig.

Normalt, når du installerer software som en proxy, er processen anderledes afhængigt af hvilket operativsystem du kører. Installation og konfiguration på Mac-server ville være anderledes end en Linux-server, så at gøre begge dele kræver gentagne anstrengelser. Dette er, hvad jeg kalder den ikke så lette måde, og den vil blive forklaret senere. Lad os nu forklare tværplatformen.

Nem vej

Som nævnt ovenfor er den nemme måde at installere og konfigurere Tor cross-platform ved hjælp af Docker. Docker er en containeriseringsløsning, der giver dig mulighed for at køre din software i et virtuelt maskine-lignende miljø for at isolere det fra ekstern interferens. Det giver dig også mulighed for at køre din software i et styret miljø, så du pålideligt og nemt kan køre den på tværs af platformen.

Hvis du ikke allerede har Docker, skal du installere den korrekte community-udgave til dit operativsystem her. Efter installation og start af det kører vi Docker-versionen af ​​Tor-proxy på vores maskine. Heldigvis tog nogen tid til at sætte den op i en Docker-beholder og åbne den. Vi skal bare køre det billede, de har offentliggjort. Kør denne kommando nedenfor på din foretrukne shell / terminal:

docker run -it -p 9050: 9050 -d person / torproxy

Denne kommando henter thedperson / torproxy-billede fra den offentlige Docker Hub og kører det lokalt på din Docker-opsætning. Det udsætter også denne proxy på port 9050, så du kan forbinde dine scripts til proxy via denne port.

Ikke så nem måde

Hvis du allerede har konfigureret Tor på det forrige trin, kan du springe dette over. Jeg vil forklare, hvordan man gør det uden at bruge Docker.

For at opsætte Tor uden at bruge Docker, er vi nødt til at installere det manuelt.

Til Ubuntu / Debian

For at installere Tor på Ubuntu / Debian, er vi nødt til at opdatere kildelisten for apt og derefter installere Tor med apt. Der er små forskelle afhængigt af den version af det operativsystem, du bruger. Tor Project har allerede et dokument med trinene og den nøjagtige kode, du har brug for at køre, baseret på dit operativsystem. I stedet for at gentage disse oplysninger her, anbefaler jeg, at du kigger på deres dokument her.

Til Mac OSX

Det er lettere for OSX sammenlignet med Linux-distributioner. Der er to populære pakkeadministratorer til Mac, Homebrew og Macports. Installer en af ​​dem, hvis du ikke allerede har gjort det. Hvis du ikke ved, hvilken du skal vælge, kan jeg anbefale Homebrew, da jeg er ganske tilfreds med det:

  • homebrew
  • macports

Afhængig af hvilken pakkehåndtering du valgte at installere, kør enten:

bryg installation tor

eller

sudo port installere tor

Kører Tor uden Docker

Heldigvis er denne del meget enkel. Bare kør:

tor

Eller for at køre det i baggrunden:

tor &

Denne kommando starter Tor-proxy og udsætter den over port 9050.

Test vores Tor-forbindelse

Nu har vi vores helt eget Tor-indgangspunkt og kører, lad os teste, at det gør, hvad vi vil have det til at gøre. En nem måde at gøre dette på er at fremsætte en HTTP-anmodning gennem Tor til et websted for at se, hvad de mener, at vores IP-adresse er. Du kan f.eks. Bruge en hvilken som helst HTTP-klient - curl, httpie eller wget - og stille en anmodning til enhver "Hvad er min IP-adresseløsning." Her er et eksempel på en kommando, jeg påkaldte, og resultatet:

(Berlin, Tyskland)

Lad os nu bruge vores lokale Tor Socks5 Proxy til den samme anmodning:

(Roubaix, Frankrig)

ifconfig.me (eller et hvilket som helst websted, som jeg får adgang til via Tor) mener nu, at jeg er i Frankrig, selvom jeg er i Tyskland.

Det er også muligt at vælge det land, du vil se ud til at være i. Angiv blot -l indstillingen til din Docker-kommando med ISO-landekoden, og Tor skal bruge en exit-knude i det land. Eksempel:

docker run -it -p 9050: 9050 -d person / torproxy -l "US"

Husk, at Tor takket være sin komplicerede natur kan være for langsom til en pålidelig Netflix eller lignende streamingoplevelse. Det frarådes at bruge det til disse formål.

Tilslutning af Node.js-scripts til Tor

Det næste trin er at konfigurere vores kode, så alle anmodninger, der genereres fra vores Node.js-kode, går gennem denne proxy. De fleste HTTP-klienter giver dig mulighed for at specificere en proxy eller en HTTP-agent, der skal bruges. Et populært Socks Proxy-middel, du kan bruge i dine scripts, er sokker-proxy-agent. Nedenfor er en implementering ved hjælp af Nodes indbyggede HTTP-klient https:

Her er et andet eksempel på implementering, denne gang ved hjælp af det populære JavaScript HTTP-klientbibliotek, Axios:

Afsluttende ord

Tillykke - dit script blev lige meget sværere at spore og identificere. Brug denne evne med omhu!

Lad mig vide, hvad du synes om denne artikel, og hvilke applikationer, du har, kunne drage fordel af denne tilgang.

Ressourcer

  • Tor Proxy Docker-billede
  • Tor Manuel installationsvejledning