Too Cool for Internet Explorer

SSH Tunnel


Ich möchte für meinen Arbeitgeber an einem Projekt von zu Hause aus arbeiten. Auf meiner Linux Workstation in der Arbeit ist das Java basierte Web-Framework inkl. dem Tomcat als Application Server installiert. Zugriff auf meine Linux Workstation habe ich dort über einen Gate Server an dem ich mich anmelde und von dem aus ich dann auf meine Workstation gelange. Da ich über den Gate Server keine Tunnelverbindung aufmachen kann und will, muss eine andere Lösung her.

Zu Hause verbinde ich mich über eine fritzbox fon ins Internet. Über die fritzbox sind SSH Tunnelverbindungen auch nicht so ohne weiteres möglich. Glücklicherweise gibt es eine Lösung für das Problem:

Mit Hilfe der hervorragenden Anleitung auf der Seite tecchannel.de habe ich mir zunächst auf meiner fritzbox einen SSH Server installiert, sodass ich mich von aussen per SSH mit meiner fritzbox verbinden kann.

Wenn das funktioniert, kann ich nun einen SSH Tunnel von meiner Workstation in der Arbeit auf meinen Rechner zu Hause aufmachen. Das funktioniert über einen "Local Port Forward" mit Hilfe des folgenden Befehls:

ssh -f -N -L 2222:192.168.xxx.xxx:22 root@externe-ip-fritzbox

-f Bewirkt, dass SSH als Hintergrunsprozess gestartet wird und somit das Terminal nicht von SSH blockiert wird
-N Bewirkt, dass kein Befehl auf dem Verbundenen Server ausgeführt wird, denn das ist bei lediglich einer Port Weiterleitung nicht erforderlich.
-L Lokale Port Weiterleitung: Alle Anfragen an den Port '2222' auf der Linux Workstation in der Arbeit (von der aus ich diese Kommandos absetze) werden durchgereicht - und zwar an Port '22' des über die IP Adresse spezifizierten Rechners in meinem lokalen Netz zu Hause. Die IP Adresse 192.168.xxx.xxx ist tatsächlich die Adresse, über die mein Rechner zu Hause der fritzbox bekannt ist.
  Als letzter Parameter wird der Login und die IP Adresse angegeben unter der mein Heimnetz im Internet erreichbar ist.

Nun wäre ein SSH-Tunnel zwischen meiner Workstation in der Arbeit und meinem Rechner zu Hause aufgebaut. Per 'ssh -p 2222 username@localhost' sollte man sich nun auf den Rechner zu Hause per SSH anmelden können (beispielsweise zum Test der Verbindung). Die fritzbox wird dadurch praktisch "untertunnelt".

Anschliessend kann über diesen bestehenden SSH Tunnel ein sogenannter "Remote Port Forward" eingerichtet werden. Damit ich von zu Hause aus via "http://localhost:8080/" über meinen Browser auf den Tomcat in der Arbeit zugreifen kann, gebe ich folgenden Befehl (wiederum auf der Linux Workstation in der Arbeit) ein:

ssh -p 2222 -f -N -R 8080:localhost:8080 harald@localhost

-p Bewirkt, dass SSH den Port '2222' für die Verbindung verwendet - das ist mein Tunnel, also die direkte Verbindung zu meinem Rechner zu Hause
-f Bewirkt, dass SSH als Hintergrunsprozess gestartet wird und somit das Terminal nicht von SSH blockiert wird
-N Bewirkt, dass kein Befehl auf dem Verbundenen Server ausgeführt wird, denn das ist bei lediglich einer Port Weiterleitung nicht erforderlich.
-R Remote Port Weiterleitung: Der SSH Server auf meinem Rechner lokal zu Hause öffnet den Port 8080 für Verbindungen zurück zu meinem Rechner in der Arbeit. D.h. alle Anfragen an localhost:8080 von meinem Rechner zu Hause aus werden an meine Workstation in der Arbeit ebenfalls an Port 8080 durchgereicht.
  Als letzter Parameter wird der Name des Useraccounts auf meinem Rechner zu Hause, jedoch der Hostname "localhost" angegeben (da ich mich wie weiter oben ja schon beschrieben, per 'ssh harald@localhost' direkt von der Workstation in der Arbeit auf meinem Rechner zu Hause einloggen kann.

Die Eingabe von "http://localhost:8080/" in meinen Browser zu Hause sollte mir nun die altbekannte Startseite des Tomcat in der Arbeit liefern.



Trackbacks

Keine Trackbacks

Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Wow. Ne echt, wow.

Schön zu sehen dass ich nicht der einzige Nerd in Dachau bin. Lass mal von dir hören, vielleicht darf ich bei dir ja noch was lernen ;-) Liebe Grüsse, Nils (auch aus Dachau)
#1 Nils+Hitze (Link) am 05.04.2007 20:29 (Reply)


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA