Corkscrew: So tunnelt man SSH durch HTTP-Proxies

In manchen Fällen kann es hilfreich sein, das Netzwerkprotokoll SSH durch eine HTTP-Verbindung zu tunneln. Mit der Software Corkscrew geht das im Handumdrehen. Aber Vorsicht: Sicherheitsrichtlinien dürfen nicht unterwandert werden.

Manche Umgebungen und ISPs haben sehr strenge Firewall-Richtlinien, die einem das Leben schwer machen können. In einigen Fällen sind diese Regeln absolut notwendig, in anderen vielleicht nicht so sehr. Wenn man in einer Umgebung arbeitet, die die Nutzung von SSH verbietet und die Verwendung eines http-Proxys erzwingt, kann man OpenSSH beibringen, mittels Corkskrew einen solchen Tunnel herzustellen.

In dem Artikel geht es keineswegs darum, das Umgehen einer Firewall zu propagieren. Richtlinien die das Aushebeln von Sicherheitsmaßnahmen verbieten oder ausgehenden SSH-Traffic explizit verhindern, müssen eingehalten werden. Allerdings gibt es oft drakonische Firewall-Richtlinien, die mehr Kummer als nötig verursachen. In diesen Fällen hilft eine Ausnamegenehmigung von den Verantwortlichen.

Wer sich seiner Fürsorge bewusst ist und eine Erlaubnis hat, kann Corkscrew anwenden, um SSH-Traffic durch einen HTTP-Proxyserver zu tunneln. Wer Corkscrew nicht in seiner Linux-Distribution findet, lädt sich die Quelldateien von der Corkscrew-Homepage herunter. Corkscrew ist ein HTTP-Tunnel-Programm, das keinerlei serverseitiger Modifikationen bedarf, um zu funktionieren. Es ist außerdem plattformunabhängig und funktioniert auf den meisten Client-Systemen.

Corkscrew lässt sich nach dem Auspacken mit den folgenden Befehlen kompilieren:

./configure
make

Danach kopiert man die resultierende Anwendung Corkscrew irgendwo möglichst in das eigene PATH-Verzeichnis, beispielsweise /usr/local/bin. Als Nächstes ist die SSH-Konfigurationsdatei (~/.ssh/config) zu bearbeiten und Folgendes hinzuzufügen:

Host somehost
Hostname somehost.example.com
ProxyCommand /usr/local/bin/corkscrew proxy.example.com 8080 %h %p

Den Hostnamen ersetzt man durch den Host, zu dem per SSH eine Verbindung hergestellt werden soll und "proxy.example.com" durch den bestehenden http-Proxy. Eventuell muss auch der Port (8080) geändert werden, wenn der Proxy auf einen anderen Port hört (zum Beispiel Port 3128 bei Squid). OpenSSH wandelt transparent das %h in den Hostnamen (somehost.example.com) um, mit dem eine Verbindung hergestellt werden soll, sowie den entsprechenden Port (standardmäßig 22).

Die Zeile ProxyCommand fordert OpenSSH dazu auf, das Programm Corkscrew zu starten, um die eigentliche Verbindung zum SSH-Zielserver herzustellen. Es lassen sich Einträge für alle Hosts erstellen, mit denen eine Verbindung hergestellt werden soll. Zudem ist es möglich einen einfachen regulären Ausdruck oder den globalen Stern (*) in der Zeile Host zu verwenden (* fordert OpenSSH dazu auf, diese Host-Zeile für alle Verbindungen zu nutzen).

Wenn dies erledigt ist, sollte man ssh somehost ausführen und die Verbindung herstellen können, gerade so, als würde man die Verbindung direkt herstellen. Dabei ist zu bedenken, dass dies nicht unbedingt mit allen Proxys funktioniert. Der Proxy muss den Connect-Befehl unterstützen, der eine beliebige TCP-Verbindung mit einem anderen Host herstellt. Bei den meisten öffentlichen Proxies ist diese Funktion deaktiviert, damit Spammer ihn nicht für ihre eigenen Zwecke missbrauchen können.

Wer keinen geeigneten Proxy findet und seinen eigenen aufsetzen möchte, sollte nach Möglichkeit nur Connect-Befehle zum SSH-Port 22 erlauben. Auf jeden Fall sollten Verbindungen zum SMTP-Port 25 verboten werden, sonst kann man sich sicher sein, dass der Proxy bald durch Fremde für den Versand von Spam genutzt wird.

Ist die SSH-Verbindung einmal hergestellt, ist es möglich, mit den SSH-Portforwarding und Tunnelfunktionen weitere Verbindungen zu schaffen. Dass solche Verbindungen auch von Cyberkriminellen genutzt werden, um mithilfe von illoyalen Mitarbeitern unbemerkt von außen in Unternehmensnetze einzudringen, zeigt der Artikel Gefahr durch SSH: Portforwarding außer Kontrolle.

Fanden Sie diesen Artikel nützlich?
7 von 8 Lesern fanden diesen Artikel nützlich.

Aktuelle Job-Angebote

ZDNet.de Live

wow! ...

wow! ein wirklich schickes Android, das nicht Tablet-Größe hat: t.co/... ... leider nur mäßige technische Daten.

10.02.12, 21:25 von coke4all
Googl ...

Google arbeitet angeblich an Home Entertainment System mit Cloudanbindung t.co/...

10.02.12, 21:10 von zdnet_de
Why ...

Why are young Japanese men losing interest in sex? t.co/...

10.02.12, 20:55 von ZDNet
What ...

What AMD's new roadmap means for users t.co/...

10.02.12, 20:40 von ZDNet
Manch ...

Manchester City is expanding its online reach to Japan t.co/...

10.02.12, 20:35 von ZDNet
Fours ...

Foursquare evolving into one-stop shop with NFC support t.co/...

10.02.12, 20:35 von ZDNet
Websi ...

Website der Gelben Seiten baut Bewertungsfunktionen aus t.co/...

10.02.12, 20:30 von zdnet_de
Motor ...

Motorola: Android-Updates verzögern sich wegen der Hardware-Vielfalt t.co/...

10.02.12, 20:00 von zdnet_de
Aktie ...

Aktienkurse dort wo man sie am liebsten sieht: auf dem Mülleimer! t.co/...

10.02.12, 19:50 von coke4all
Faceb ...

Facebook details Zuckerberg's $500,000 salary, 45% bonus t.co/...

10.02.12, 19:45 von ZDNet
New ...

New Microsoft Office University product comes with tougher verification rules t.co/...

10.02.12, 19:35 von ZDNet
#Prad ...

#Prada Phone by #LG 3.0 ausgepackt und ausprobiert - #smartphone #android t.co/...

10.02.12, 19:30 von cnet_de
Schon ...

Schon im Test: Prada Phone by LG 3.0 mit Android und superhellem Display t.co/...

10.02.12, 19:30 von cnet_de
Beta ...

Beta von Chrome 18 erweitert Hardwarebeschleunigung t.co/...

10.02.12, 19:30 von zdnet_de
Sage ...

Sage helps chocolate business manage seasonality t.co/...

10.02.12, 19:20 von ZDNet
Colum ...

Columbia University excludes Google Docs t.co/...

10.02.12, 19:20 von ZDNet
Benq ...

Benq bringt XGA-Projektor mit 4000 ANSI-Lumen t.co/...

10.02.12, 19:00 von zdnet_de
Germa ...

Germany postpones ACTA signing in wake of protests t.co/...

10.02.12, 18:45 von ZDNet
Iran ...

Iran cuts off access to popular Web sites t.co/...

10.02.12, 18:40 von ZDNet