net | SSH mit Tunneln nutzen

SSH Tunnel (Quelle: Wikipedia)
Oft genug bin ich unterwegs und brauche eigentlich den Zugriff auf einen Rechner, der zu Hause steht. Das kann verschiedene Gründe haben: Der Server zu Hause mukkt rum, ich habe vergessen einen Film aufzunehmen, die Firewall des Routers muß umkonfiguriert werden, usw. Natürlich könnte man jetzt für alle Dinge in der Firewall eine Ausnahme definieren und den Zugriff erlauben – das ist natürlich nicht zu empfehlen, da auch böse Zeitgenossen auf die Idee kommen und die Schwachstellen für Ihre Zwecke mißbrauchen könnten.

Genau aus diesem Grund habe ich mir einen Router gekauft, auf den ich OpenWRT installiert habe. OpenWRT ist ein kleines Linux, welches auf so abgespeckter Hardware abgestimmt ist. Vorteil des Ganzen ist auch, das die Konsolenzugriffsvariante ssh genutzt wird – mein Sprungbrett in mein lokales Netzwerk.

Aber von Anfang an:  Zu der Installation von OpenWRT auf einen handelsüblichen Router werde ich jetzt nix schreiben – da gibt es einige Anleitungen.  Sollte aber der Bedarf sein, so sagt mir bitte Bescheid und ich reiche das nach.

Router von Außen erreichbar machen

Damit der Router (und damit das Netzwerk dahinter) im Internet erreichbar ist, muß zuerst ein eineindeutiger Name für den Router registriert werden. Dazu nutzt man am Besten einen der vielen dynamischen DNS-Dienste wie dyndns.org und Co. Als Nächstes installiert man sich in OpenWRT (Menü System/Software) das Paket luci-app-ddns und damit wird automatisch das Paket ddns-scripts mit ausgewählt.

OpenWRT - DDNS installieren

Nun kann man unter Services/Dynamic DNS seine Account-Daten eingeben

OpenWRT - DDNS einrichten

Damit wird bei jedem IP-Wechsel der DNS-Dienst aktualisiert.

Nun muß noch für den SSH-Dienst der Port ins Internet geöffnet werden. Das geschieht im Menü Network/Firewall/Traffic Control

OpenWRT - Traffic Control

OpenWRT - SSH Port

Damit ist die Grundlage geschaffen. Man kann sich nun aus dem Internet auf den Port 22 der dynamischen IP mit Hilfe des dynamischen DNS-Eintrags einwählen.

SSH-Tunnel definieren

Je nach SSH-Client gibt es verschiedene Möglichkeiten, wie genau man solch einen SSH-Tunnel definieren kann. Das Grundprinzip ist aber jedes Mal gleich:

Ich definiere einen lokalen Port (also einen nicht benutzten Port) auf meinem Rechner, ganz gleich welcher Port das ist und leite diesen Port um, so das er durch den SSH-Tunnel geleitet wird und am anderen Ende des SSH-Tunnels wieder auseinandergepflückt wird und an das richtige definierte Endgerät weitergeleitet wird.

Ein Beispiel: Ich möchte per VNC von meinem Windows-Rechner  auf meinen iMac zu Hause zugreifen. Was benötige ich dafür?

  1. Den dynamischen DNS-Namen meines Routers.
  2. Die IP des iMacs in meinem Netzwerk zu Hause.
  3. Den Port des Dienstes, auf den ich zugreifen will.
  4. Einen freien lokalen Port auf meinem lokalen Rechner.

In meinem Beispiel ist das

  1. test.dyndns.org
  2. 192.168.1.10
  3. VNC hat den Port 5900
  4. den willkürlich gewählten Port 2900

Auf der Kommandozeile würde der Tunnel wie folgt aufgebaut

ssh -L 2900:192.168.1.10:5900 root@test.dyndns.org

Der Syntax lautet also

ssh -L LokalerPort:ZielIP:ZielPort Benutzername@Router

In meinem Beispiel könnte ich nun mir den Bildschirm des iMacs auf meinen Windows-PC holen.

TightVNC - localhost:2900

Jetzt ist es der Phantasie überlassen, welche Sachen man darüber machen kann – Probiert Euch aus und schreibt doch mal, ob und wozu Ihr SSH-Tunnel nutzt.

7 Gedanken zu „net | SSH mit Tunneln nutzen

  1. Pingback: controlc.de» Blogarchiv » mac | Console einer virtuellen Maschine remote holen

  2. Norbert

    Hallo,

    ich weiß zwar nicht, ob ich mit meinem Anliegen hier an der richtigen Stelle bin, aber ich versuche es mal, da sich hier ja viele OpenWRT- und WLAN-Profis tummeln.

    Ich bin auf der Suche nach einer Lösung, über die ich einen PC per OpenWRT-Router an einem HotSpot ins Internet bringen kann. Der PC soll per LAN-Kabel mit OpenWRT-Router verbunnden sein und dieser soll die WLAN-Verbindung mit dem HotSpot aufbauen. Damit brauche ich auf dem PC kein WLAN einzurichten bzw. freizugeben und könnte den PC zusätzlich über eine Firewall auf dem OpenWRT-Router schützen. Ich würde dann nur noch eine einfache Möglichkeit beötigen, um die WLAN-Konfiguration im Router einzurichten.
    Hat hier schon mal jemand was in dieser Richtug gelesen oder gar gemacht?

    Wäre über jeden nützlichen Hinweis dankbar.

    MfG
    Norbert

    Antworten
    1. makomi Beitragsautor

      Hallo Norbert,

      ob hier Experten sind, kann ich Dir nicht sagen :), aber ich kann versuchen Dir zu helfen.

      Prinzipiell ist alles mit OpenWRT möglich – wohl aber nicht Out-of-the-box, sprich über die Weboberfläche. Wenn Du Dich aber etwas einarbeitest und das Wiki von OpenWRT zu Rate ziehst und im Zweifelsfalle im IRC #openwrt bei freenode nett nachfragst, dann sollte das zu machen sein.

      Ich kann Dir erstmal folgende Links zum Einlesen anbieten:

      https://dev.openwrt.org/ticket/3830
      http://martybugs.net/wireless/openwrt/client.cgi
      http://wiki.openwrt.org/oldwiki/openwrtdocs/whiterussian/clientmode

      makomi

      Antworten
  3. Norbert

    Hallo Makomi,

    vielen Dank erst einmal für die schnelle Antwort und für die Hinweise. Ich werde versuchen mich da mal durchzuarbeiten, wobei mir dafür im Moment noch die Hardware und noch mehr die Zeit fehlt.
    Für mich steht aber zunächst einmal im Vordergrund, ob sich das so überhaupt realisieren läßt. Das mit der Verbindung zwischen PC und Router ist natürlich kein Problem. Der Router müsste dann ja aber (was ja sonst nicht so üblich ist) zwischen WLAN und LAN routen. Normalerweise wird ja zwischen WLAN und WAN-Port geroutet.
    So ganz heimlich hatte ich ja gehofft, das sich hier jemand meldet und schreib: genau das habe ich gerade so oder so gemacht. Ein wenig träumen ist ja wohl erlaubt 🙂
    Aber solange sich dieser Helfer nicht meldet, werde ich mich wohl deiner genannten Lektüre widmen müssen.

    Also nochmal vielen Dank für die Hilfe.

    MfG
    Norbert

    Antworten
  4. Norbert

    Hallo Makomi,

    soweit ich das bis jetzt überblicken kann, passen deine Links schon sehr gut zu meinen Fragen. Ich hätte da aber noch ein anliegen. Kannst du mir sagen, ob es auch möglich ist, alles über WLAN abzuwickeln? Also die Verbindung zwischen PC und Router in einem WLAN-Netz und zwischen Router und Hot-Spot in einem anderen WLAN-Netz, wobei die Routerfirewall zwischen den beiden WLAN hängt.
    Geht so was?

    MfG

    Antworten
    1. makomi Beitragsautor

      Ja, sowas kann gehen, hängt aber stark von der von Dir verwendeten Hardware ab. Normalerweise können WLAN-Router sich nur mit einem WLAN-Netz verbinden – es gibt auch auch solche, die sich mit mehreren verbinden können. Welche Router das können kann ich Dir nicht sagen – das Stichwort lautet aber multiradio. Wenn Du was gefunden hast, dann sag doch bitte hier Bescheid.

      Antworten
  5. Norbert

    Hallo Makomi,

    ich informiere dich gerne, wenn ich was passendes gefunden habe. Weißt du denn zufällig auch, ob das von OpenWRT unterstützt wird?

    MfG
    Norbert

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.