VPN Tunnel nach Hause einrichten über SSH

Im folgenden Artikel zeige ich wie man mittels SSH eine sichere Verbindung ins häusliche Netzwerk erstellen kann um beispielsweise sicher von einem Hotspot mittels Firefox surfen zu können. Es gibt verschiedene Anwendungsfälle für einen VPN-Tunnel. Ich möchte in diesem Artikel jedoch nur zeigen, wie ich mich mit meinem NAS verbinde und damit “sicher” beispielsweise in einem offenen / öffentlichen WLan surfen.

Was ist ein VPN-Tunnel ?

VPN steht für “Virtual-Privat-Network” oder “virtuelles privates Netzwerk”.

Grob ausgedrückt kann man sagen, dass der VPN-Client eine Software ist, die dazu dient eine verschlüsselte, sichere und authentifizierte Verbindung von entfernten Standorten in ein Netzwerk zu ermöglichen. Wenn die Verbindung aufgebaut ist, erhält man eine IP-Adresse im jeweiligen Netz.

VPN einrichten

vpn-tunnel Wenn es um VPN-Tunneling geht hört man meist viel zum Thema Loopback-Adapter, Portweiterleitung, Proxys, Firewall, Ping, SSL und SSH / OpenSSH … Im Gegensatz dazu gibt es die “eierlegenden Wollmilchsäue” wie Hamachi und Freunde. Und nicht zu vergessen kann man natürlich auch mit Windows-Boardmitteln ein VPN aufbauen.

Ich nutze lediglich als VPN-Clienten Putty und als VPN-Server meine Synology 107+ / mein NAS (steht für “Network Attached Storage”). Auf der Synology läuft ein Linux mit einem SSH-Server. Ich musste nur den SSH-Port 22 bei meinem Linksys-Router auf meine NAS-Platte weiterleiten und schon war diese von außen erreichbar.

Da auch mein ADSL-Anbieter mir regelmäßig eine neue IP-Adresse gibt habe ich mir noch eine dynamische DNS-Adresse besorgt und diese wird von der Synology regelmäßig mit No-Ip.Org aktualisiert (ich stehe nicht so auf dyndns.com).

Besser als die NAS-Platte als VPN-Server zu nutzen ist noch der Router selbst. Mein LInksys WRT160n kann so etwas nicht, obwohl ich bei Gelegenheit mal schaue ob sich OPEN-WRT installieren lässt. Egal, wenn ihr einen Router habt der ein SSH kann und einen dynnamischen DNS-Abgleich kann, dann nehmt den. Ansonsten könnt ihr noch auf eurem Fileserver ein OpenSSH für Windows installieren (wenn es eine Linuxkiste dann brauche ich wohl keine weiteren Worte verlieren).

Vorbereitungen im Heimnetzwerk

Fassen wir zusammen:

  • VPN-Server installiert
  • SSH-Port 22 im Router weitergeleitet auf statische IP des SSH-Servers
  • Dynmischen DNS-Abgleich initialisiert

Alles schick? Weiter geht es!

Vorbereitungen am Laptop oder Handy

Ich nutze den VPN-Tunnel hauptsächlich an meinem Laptop, weil ich keine Lust habe dass jeder meinen Datenverkehr mit schneiden kann der mit mir im gleichen WLan-Netz ist. Ich kann den Tunnel auch mit meinem Symbian Handy nutzen, aber dafür bin ich nicht paranoid genug ;-)

An meinem Laptop mit Windows Vista habe ich mir Puttytray herunter geladen statt Putty, weil ich so Putty in den Tray minimieren kann (sagt der Name ja schon) und das Programm mir so nicht im Weg ist. Der VPN-Client muss nicht installiert werden.

Des Weiteren habe ich mir für Firefox das Extension SwitchProxy tool herunter geladen, so dass ich nicht immer wenn ich einen VPN-Tunnel aufbaue in den Netzwerkeinstellungen von Windows oder Firefox herum irren muss.

Aufbau des VPN-Tunnels nach Hause

Wir starten Putty und tragen die dynamische Domain statt der IP-Adresse ein und wählen den Port 22 bzw. SSH-Verbindung.

1. Grundlagen der SSH-Verbindung:

Host Name: DynDNS

Port: 22

Connection Type: SSH

Saved Sessions: Irgend ein Name ohne Leerzeichen (Save drücken)

vpn tunnel putty

2. Umleitung der Ports bzw. der Daten durch Putty / den VPN-Clienten

Source Port: 7070

Destination: localhost

Dynamic und Auto aktiviert!

vpn tunnel

3. First Contact

Ihr startet Putty, klickt doppelt auf den Namen, akzeptiert den SSH-Schlüssel (nur beim ersten Kontakt) und gebt Eurer SSH-Passwort ein.

putty

Unter Firefox  geht ihr in Extras > Einstellungen > Erweitert >Netzwerk > Verbindung Einstellungen und gebt unter

  • SOCKS-Host: localhost ein und den
  • Port 7070

firefox vpn

Test der VPN-Verbindung

Ob du wirklich richtig stehst siehst du wenn das Licht an geht… oder wenn Deine IP-Adresse sich geändert hat.

Dafür rufen wir im Firefox YourIp.de oder einen anderen dieser Dienste. Um den Unterschied zu verdeutlichen verbinde ich mich mit einem meiner Webserver.

Zunächst:

ip adresse

Später mit VPN-Tunnel

ip-vpn-tunnel

Wechsel zwischen gesicherter und ungesicherter Verbindung

Putty

Um schnell einen Tunnel aufbauen zu können kann man Putty per Verknüpfung noch den Namen des Profils und den Login mit gegen. Das sieht dann so aus:

“C:ProgrammePuTTYputty.exe” -load NAME-DES-PROFILS -l LOGINNAME -pw PASSWORT

Anmerkung: Da das Passwort ausgeschrieben ist sollte man vielleicht auf diese Möglichkeit verzichten und das Passwort selbst eingeben!

Mozilla Firefox

Den Eintrag in Firefox kann man natürlich auch in jedem anderen Browser und auch in jder einen Proxy unterstützenden Software eintragen bzw. nutzen. Die zuvor beschriebenen Einstellungen unter Firefox solltet ihr wieder löschen und dafür den Proxy bzw. den VPN-Tunnel im Extension SwitchProxy Tool eintragen.

Den Tunnel kann man noch für vieles nutzen….

Suchfunktion

19 Kommentare zu VPN Tunnel nach Hause einrichten über SSH
    • Ronny :
    • Also am Anfang des Artikels war ich nicht begeistert. Er sieht sehr stark nach “Made for Google” aus und liest sich am Anfang auch so. Wichtige Keywords sind hervorgehoben anstelle von wichtigen Inhalten. Keywordansammlungen anstelle von weiterführenden Erklärungen und Keywordlinks aufs eigene Projekt.

      Dann gabs ab der Mitte doch noch die im Teaser versprochene Anleitung. Und die war auch gut. Vielen Dank ;)

    • # 1 23.11.08 04:57

    • Tim :
    • Hi Ronny,
      ja der Artikel ist für Google optimiert, aber der Anfang (nach dem “Teaser”) ist vor allem für Leute die wirklich wenig Ahnung haben um was es geht. VPN… virtuelles Netzwerk…äähhh was?
      Ich habe hauptsächlich Leser, die keine Geeks sind. Mein Ziel ist es ein bißchen Grundlagen zu vermitteln und dann eine möglichst einfache und dabei noch saubere Lösung zu präsentieren.
      Beim nächsten Artikel werde ich schreiben, dass man den Grundlagen Teil direkt überspringen kann, wenn man das schon kennt. Was meinst Du?

    • # 2 23.11.08 11:49

    • Ronny :
    • Oder Du baust einfach einen Anker alá “Expertenwissen weiter unten” ein. Damit ersparst Du den Fachlesern sogar noch das scrollen.

      Grüße

    • # 3 23.11.08 15:39

    • Peter :
    • Hallo an alle,

      ist dies nicht eigentlich eher eine SSH Tunnel oder verstehe ich da etwas falsch?

      Gruß
      Peter

    • # 4 29.1.09 16:00

    • Tim :
    • @Peter: Was ein VPN ist habe ich zuvor grob erklärt und ansonsten gibt es Wikipedia.
      SSH ist in meinem Beispiel der Typ der Verbindung und Putty dient als VPN-Client.
      Wie auch immer Du eine Verbindung zwischen zwei physikalisch getrennten Netzen herstellst ist Deine Sache, aber diese Verbindung nennt man gewöhnlich virtuelles privates Netz (VPN).

    • # 5 29.1.09 16:54

    • SdK :
    • Nun, dann lies bitte mal, was ein Netzwerk ist. Hier wird beschrieben, wie man mit SSH einen Socks Proxy aufbaut. Das ist ein Proxy – nicht mehr und nicht weniger. Ein “Tunnel” auf das man mit geeigneter Software (die Socks unterstützt) zugreifen kann.

      Ein VPN ist nicht Port, sondern IP/Netz basiert. D.h. ganze Netze werden verschlüsselt auf den Weg geschickt (privates Netzwerk).

      Der Ausdruck VPN ist in diesem Fall hier ganz klar falsch.

      Und grade Anfängern sollte man nicht gleich eine falsche Terminologie beibringen. Putty als VPN Client. Sorry, mich schüttelts da. Bitte überarbeiten.

      Gruß,
      SdK

    • # 6 27.2.09 18:00

    • Tim :
    • Tu mir einen Gefallen und ließ an anderer Stelle!

    • # 7 27.2.09 22:52

    • mømø :
    • An dieser Stelle muss ich SdK recht geben, du verdrehst einen verschlüsselten Proxy mit einem VPN.

      Gerade wenn du Wikipedia zitierst – es wird schon seinen Grund haben, dass weder Putty noch Socks noch OpenSSH bei de.wikipedia.org/wiki/Virtual_Private_Network#Implementierungen steht.

      Noch eindeutiger wirds bei der Englischen:
      en.wikipedia.org/wiki/Virtual_private_network
      “A virtual private network (VPN) is a computer network in which some of the links [Anm: Data-Link-Layer, OSI-Schicht 2) between nodes are carried by open connections or virtual circuits in some larger network (e.g., the Internet) as opposed to running across a single private network.”

      Jetzt schau dir mal an, auf welchem Layer SOCKS (was du da oben nutzt) arbeitest: en.wikipedia.org/wiki/SOCKS
      “SOCKS performs at Layer 5 of the OSI model – the Session Layer (an intermediate layer between the presentation layer and the transport layer).”

    • # 8 03.3.09 09:16

    • kayoone :
    • Der begriff VPN in diesem Artikel ist definitiv falsch, das ganze ist ein SSH Tunnel, nicht mehr und nicht weniger.

    • # 9 11.11.09 10:54

    • Tim :
    • Nach so vielen Kommentaren sage ich es mal platt: Die Überschrift VPN Tunnel verspricht zu viel. Ich gebe es zu ;-), aber ändern…ne und die Anleitung taugt als SSH-Tunnel für fortgeschrittene Anfänger.

    • # 10 11.11.09 11:47

    • TheRocK :
    • Auch wenn der Titel falsch sein mag, die Anleitung selbst ist super, wollte mich direkt mal bedanken, hab sie direkt gebookmarkt!

    • # 11 03.12.09 13:05

    • janorama :
    • Also die Diskussion ob das nun VPN heißen darf oder nicht….etwas peinlich. Stattdessen hätte ich hier viel lieber gelesen, wie sich diese Methode, die ich echt schlank und schick finde, noch ausbauen lässt bzw. wozu man das noch gebrauchen kann. Soweit ich verstanden habe baue ich eine SSH-Verbindung zum Heimrechner auf und Putty stellt dann den Port 7070 auf dem mobilen Rechner zur Verfügung, um alles was da reinkommt nach Port 22 des Heimrechners zu schicken. Reicht hier denn “SSH-Port 22 im Router weitergeleitet auf statische IP des SSH-Servers” aus ? In meinem Fall läuft der Server auf Ubuntu. Muß ich da nicht noch das Routing auf diesem editieren oder macht der SSH-Server das selbst ? Bitte berichtigt mich wenn ich hier was nicht verstanden hab.
      Und vielen Dank, ich liebe Step-by-Step-Anleitungen mit Screenshots, das hilft mehr als jede arrogant-kryptische Scriptkiddi-Fachsimpelei.

    • # 12 11.12.09 09:46

    • SdK :
    • @janirama:
      na eben WEIL es kein VPN ist brauchst du auch kein Routing einzurichten. Das ist ein Socks Proxy. Alle Andwendungen die Socks unterstützen kannst du damit über den SSH Port raus schicken. Das ist komplett unabhängig vom Routing. SSH bekommt die Daten, überträgt sie, verbindet sich remote und schickt die Antwort zurück. Dein lokales LAN bleibt (im Gegensatz zum VPN) komplett unangetastet.

      Port 7070 hier ist lediglich der lokale Port auf dem die Putty Socks Proxy Implementierung lauscht. Darüber verbindet sich die Anwendung mit Putty und Putty schickt die Daten über den SSH Port weiter.

      Von Client Seite (da wo Putty läuft) muss nur der SSH Port nach draussen offen sein.

      Auf Server Seite muss der SSH Port von aussen erreichbar sein (in einem NAT Netzwerk muss der Port nach draussen frei geschaltet werden. Ich glaube das war hier mit Routing gemeint.

      Kurz: wenn du dich per SSH auf dem Server einloggen kannst reicht das aus. Zusätzliches Routing etc. ist nicht notwendig und wird von Putty/SSH geregelt.

      Optional:
      a) wenn du den Proxy automatisiert restarten willst – nimm nicht putty dafür sondern google nach myentunnel. Sitzt im Tray und kümmert sich um die Verbindung.
      b) wenn du hinter ner Firewall sitzt, kommst du meistens raus, indem du die Firewall in Putty konfigurierst und Port 443 als SSH Port verwendest (der Server muss auch auf 443 lauschen). Aber bitte beim Admin nachfragen ob das erlaubt ist, da du effektiv einen Tunnel auf machst, der in beide Richtungen geht.

    • # 13 11.12.09 10:39

    • janorama :
    • Danke SdK,
      schnelle und hilfreiche Antwort ! Besonders das unter b), danach hab ich gesucht :-) . Myentunnel werd ich testen. Die Methode an sich bekam ich beim ersten Versuch zum Laufen – dank der guten Anleitung.

    • # 14 11.12.09 19:40

    • togusa :
    • Problem with this solution: Your DNS Queries are made through the DNS-Proxy of the insecure net. So if you go to youporn.com, everybody can see, that your Laptop surfs on youporn.com, but not know what exactly. With this it would be also possible to spoof the DNS packets and redirect your homebankingsite to a desiered ip without recognising it. This solution is not completely secure.

    • # 15 15.4.10 23:43

    • SdK :
    • @togusa:
      oh the solution is pretty simple. I’ve no putty available so I can not give you the exact location, but there is an option to do DNS lookups at proxy end. Then the DNS queries are redirected through the “tunnel” and resolved on the remote side.

      Regards,
      SdK

    • # 16 16.4.10 08:01

    • SdK :
    • Oh – my entry might wrong… I’m connecting over a local proxy. I think the option means to lookup at the local proxy. So the DNS queries are visible again… I’ll check.

    • # 17 16.4.10 08:03

    • liebesiech :
    • Thanks for this article. It looks like the Linksys WRT160N v2 with firmware version 15 should be capable work now with VPN

    • # 18 12.5.10 13:30

    • liebesiech :
    • Did you try to use DD-WRT? Looks very complicated and risky to me! I’dont want to brick my router ;-)

    • # 19 16.5.10 11:55


Kommentar schreiben

Artikel-Zusatzinformationen

  • Geschrieben am 21. November 2008