Tunnel je webverkeer via SSH

Er zijn webservers die alleen lokaal verkeer toestaand, bijvoorbeeld Marktplaats.nl die bepaalde landen niet toestaat om een account aan te maken. Als gebruiker met louter goede bedoelingen heb je dan een probleem maar gelukkig is daar een oplossing voor: tunnellen via SSH.

SSH Host

Als eerste is er een SSH verbinding nodig naar een SSH-server in het land dat wel toegestaan is, bijvoorbeeld Nederland. Een familielid of kennis die dit voor je zou willen hosten… Je hebt in feite genoeg aan een desktop PC of een Raspberry PI. Die laatste draait onder Linux en daar zit bijna altijd standaard al een SSH daemon in. Verstandig is het om SSH via een Authentication key te laten lopen en Authentication via een password uit te zetten. Dat kan op de Raspberry Pi vrij eenvoudig:

sudo ssh-keygen

Hiermee wordt een key-pair gegenereerd in de directory ~/.ssh Het bestand authorized_keys gaan we alsvolgt aanpassen:

  1. verwijder de eerste twee regels
  2. plaat nu helemaal vooraan in het bestand de tekst: ssh-rsa gevolgd door een spatie
  3. verwijder de laatste regel
  4. voeg achteraan in het bestand een spatie toe en de tekst: pi@raspberry
  5. zorg er nu voor dat alle tekst op één regel staat, dus de line-breaks verwijderen.
  6. kopieer nu de tekst uit het bestand id_rsa en plak dit in een bestand op je Windows PC, inclusief de eerste en laaste regel
  7. Download op de PC het bestand puttygen en open dit programma. Klik op load en laad het textbestand uit de vorige stap
  8. Klik op ‘Save private key’ (zonder wachtwoord) en geef het een naam.

SSH Client

Aan de client side, voor Windows is er putty.exe, dient een tunnel aangemaakt te worden. Eerst de SSH verbinding:

Start putty.exe en in het sessions-scherm kan de externe servernaam (of IP adres) ingevuld worden.

putty-session

Hierna via de Category SSH->Tunnels maken we een Dynamische tunnel aan op poort 1080 voor de socks-proxy:

putty-dynamic-tunnelVervolgens maken we nog een tunnel, Local poort 80 naar de externe server op poort 80 (http).

putty-tunnel-remote

Als laatste dient het authenticatiebestand toegekend te worden. Ga naar SSH -> Auth en browse naar de private key die in de stappen hierboven is aangemaakt op de Windows-PC.

keyGa terug naar session en sla de instellingen op om ze niet elke keer te hoeven instellen. Klik op ‘Open’ om een verbinding op te zetten. Laat het scherm geminimaliseerd staan zolang als nodig is.

Hierna dient de Web Browser ingesteld te worden om de proxy service SOCKS via localhost op poort 1080 te gebruiken.

Web Browser

In Firefox ga je naar de Options, Advanced, kies de Netwerk-tab, Settings en vul daar de socks proxy in:

firefox_proxy

In IE ga je naar Internetopties, Verbindingen-tab, LAN-instellingen, Proxyserver – Geavanceerd:

ie-proxyHierna blader je op Internet met een extern IP adres van je externe.server, controleer dit even door te browsen naar myipaddress.com