ssh-tunnel

Das Problem

Viele Netze sind durch eine Firewall so gesichert, dass nur bestimmte, kontrollierte Verbindungen ins Internet möglich sind. Das ist an sich auch eine gut Idee, kann aber auch recht hinderlich sein wenn man von solch einem Netz aus eine ssh Verbindung zu einem entfernten Rechner aufbauen möchte.

Die Lösung

Besteht darin die ssh Verbindung durch ein erlaubtes Protokoll zu tunneln. Da aus den meisten LANs heraus eine nutzung des WWW möglich ist bietet sich hier https an. Es ist also nützlich immer einen ssh-server parat zu haben der auf Port 443 lauscht. Https hat gegenüber http den Vorteil, dass es ohnehin für den Transport verschlüsselter Datenströme gedacht ist, so dass eine ssh Verbindung im Vergleich zum Vorgesehenen Protokoll nicht auffällt.

Wenn der Zugang zum WWW nur über einen Proxy möglich ist, dann muß die ssh Verbindung zusätzlich durch den http(s) Proxy getunnelt werden, aber auch das ist kein Problem, da ssh über die Option ProxyCommand die Verwendung eines beliebigen Programms zum Aufbau der Verbindung gestattet. Das kleine Perlscript ssh-tunnel.pl von Urban Kaveus gestattet den Verbindungsaufbau über das CONNECT Komando eines http(s) Proxy.

Beispiel

$ ssh remote -o'ProxyCommand ssh-tunnel.pl www-proxy 8080 remote 443'

Weitere Tunnel-Tools

corkscrew von Pat Padgett ist ein sehr portables, in C geschriebenes kleines tool, das ähnlich ssh-tunnel.pl als Proxy-Command seinen Dienst verrichtet.
©2004-2009 Sascha Wilde