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

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

20 Stunden ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

22 Stunden ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

23 Stunden ago

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

1 Tag ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

2 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

2 Tagen ago