Corkscrew: So tunnelt man SSH durch HTTP-Proxies

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.

ZDNet.de Redaktion

Recent Posts

Apple meldet Rekordumsatz im vierten Fiskalquartal

Die Einnahmen klettern auf fast 95 Milliarden Dollar. Allerdings belastet der Steuerstreit mit der EU…

2 Tagen ago

Microsoft steigert Umsatz und Gewinn im ersten Fiskalquartal

Das stärkste Wachstum verbucht die Cloud-Sparte. Microsoft verpasst bei der Umsatzprognose für das laufende Quartal…

2 Tagen ago

Bezahlkarten: Infineon verspricht weniger Plastikmüll

Ein Coil-on-Module-Package integriert Chip und Antenne, was den Kartenkörper fast vollständig recycelbar machen soll.

3 Tagen ago

Firefox 132 schließt elf Sicherheitslücken

Mindestens eine Anfälligkeit erlaubt das Einschleusen von Schadcode. Außerdem erweitern die Entwickler den Support für…

3 Tagen ago

Telekom nennt Termin für 2G-Ende

Zum 30. Juni 2028 soll das 2G-Netz komplett abgeschaltet werden und den Weg für schnellere…

3 Tagen ago

Alphabet übertrifft die Erwartungen im dritten Quartal

Gewinn und Umsatz legen deutlich zu. Zum Wachstum tragen auch die Sparten Cloud und Abonnements…

3 Tagen ago