To main content

Mit SSH-Tunnel restriktrive Proxies umgehen

Veröffentlicht von Benjamin Marwell am
Wer kennt das nicht: Man sitzt in der Uni und kommt nicht auf seine Lieblingsseite, sie wird vom lokalen Proxy gefiltert und gesperrt. Was also tun? Ganz einfach: einen SSH-Tunnel bauen und den Browser auf eben diesen stroßen. Wie es geht und was man braucht, soll dieser Artikel beschreiben.

Voraussetzungen

So ganz einfach ist es nicht unbedingt. Erstmal braucht man folgende Zutaten:
  • Einen Internetserver, auf dem ein Unixoides System läuft - mit Benutzerkonto
  • Unter Linux (z.B. Ubuntu): Den SSH-Client, per Vorgabe aber installiert
  • Unter Linux am Besten noch Corkscrew
  • Unter Windows bietet sich putty an.

Installation

Ubuntu

Unter Ubuntu gestaltet sich die Installation denkbar einfach. Man gibt einfach folgenden Befehl auf der Shell seiner Wahl ein:
sudo aptitude install corkscrew openssh-client
Daraufhin wird der SSH-Client installiert, sowie corkscrew, mit dem man den Proxy der Institution umgehen kann.

Windows

Ladet euch einfach putty herunter und startet es. Es ist tatsächlich nur eine kleine .exe-Datei.

Nutzung

Ubuntu

Nun muss man noch folgenden Befehl auf der Shell ausführen:
ssh -D 8080 -o "ProxyCommand /usr/bin/corkscrew proxyHost proxyPort %h %p" -p Port user@host.de
Was passiert hier also? Hier einmal die Optionen erklärt:
  • -D 8080: Die Weiterleitungen werden an Port 8080 entgegengenommen und dynamisch weitergeleitet. Im Gegensatz zum Tunnel mit -L wird erst auf dem Zielrechner vom Applikationsprotokoll bestimmt, wie die Anfrage weitergeleitet werden soll.
  • -o ProxyCommand: Der Befehl corkscrew lässt die SSH-Verbindung über den Instituts-Proxy laufen. Sonst wüsste SSH ja nicht, dass es einen Proxy braucht, um nach außen zu kommen.
  • -p Port: Der Port auf dem Server, den man besitzt, auf dem SSH lauscht.
  • user: Sein Benutzerkonto auf dem entfernten Host
  • host.de: Die IP oder der Hostname des entfernten Servers
Aha, Bahnhof? Nicht so schlimm. Hier noch, was ihr davon ändern müsst:
  • proxyHost: Die Adresse des Proxies. Steht im Browser (z.B. proxy.domain.de)
  • proxyPort: Der Port des Institutionsproxies (z.B. 3128)
  • Port: I.d.R. 22
  • user@host.de: Mit Benutzernamen und Hostnamen ersetzen.
Wichtig: "%h" und %p" müssen stehenbleiben! Wenn alles geklappt hat, werdet ihr nach dem Passwort eures Benutzerkontos auf dem entfernten Server gefragt.

Windows

Startet PuTTY und gebt folgende Daten ein:
  • Startbildschirm: Host: wie oben Port: wahrscheinlich 22
  • Connection -> Proxy ProxyType: Ausprobieren, wahrscheinlich HTTP Hostname: wie oben proxyHost Port: wie oben proxyPort
  • Connection -> SSH -> Tunnel Source Port: 8080 Typ: Dynamic "Add" klicken
  • Wenn gewünscht, auf die Startseite zurückkehren und die Einstellungen erstmal speichern
  • Startseite: Verbinden klicken
Jetzt solltet ihr ein Fenster sehen, in dem sich das entfernte Terminal befindet. Falls ja: geschafft! Gratuliere! Nicht schlecht, für einen Windows-Nutzer ;-)

Den Browser konfigurieren

Ist die Verbindung aufgebaut, braucht ihr das Terminal bzw. Putty nicht weiter zu beachten. Jetzt muss nur noch euer Browser den Tunnel benutzen. Die Konfiguration ist ab jetzt unabhängig von Windows oder Linux. Geht jetzt in euren Browser und gebt jetzt folgenden Proxy an:
  • Host: localhost
  • Port: 8080
Verbindungseinstellungen für den Tunnel in Firefox
Verbindungseinstellungen für den Tunnel in Firefox
Wenn alles geklappt hat, solltet ihr jetzt unbegrenzt surfen können :-)

Mögliche Probleme

Verbindungsprobleme

Es ist möglich, dass entweder euer Serverrechner im Internet oder dessen Port gesperrt ist. Kontrolliert noch einmal die Proxyeinstellungen, sowie die IP und den Port eures Servers. Legt gegebenfalls den SSH-Port eures Servers auf 443, dieser ist nur in den seltensten Fällen gesperrt. Intelligente Firewalls könnten auch einfach erkennen, dass ihr SSH-Daten übertragt. Falls das der Fall ist, seid ihr machtlos! :-(

Fingerprint oder Passwort stimmt nicht

Die Firewall oder der Proxy könnten versuchen, eure Verbindung mitzuschneiden. Wenn ihr einen falschen Fingerprint seht, macht nicht weiter! Habt ihr trotzdem schon ein Passwort eingegeben, ist es gut möglich, dass der Admin eurer Institution nun euer Passwort kennt...

Verbindung bricht ab

Es gibt einen Timeout seitens des Institutions-Proxies. Ihr müsst entweder den Heartbeat-Patch installieren oder ab und zu einen Befehl über die Promt schicken. In der Regel liegt dieser Timeout bei etwa zehn Minuten. Liegt der Timeout bei einer halben Minute, wirds nervig.. So, ich hoffe allen Lesern damit geholfen haben!