Vertraute Verbindung aus unsicheren Netzen

Warum?

Es ist sicher schon jedem passiert: Man befindet sich in einem unbekannten Netz, mag es in einem Café, ein offenes Netz in der Stadt oder auf Arbeit sein. Neben dem eigenen Sicherheitsgefühl nicht zu wissen, wer im Netz mithört, existiert ein solches oft auch auf Seiten des Netzbetreibers, der bestimmte Inhalte oder Teile des Internets sperrt.
Die eigene Sicherheit lässt sich bereits deutlich steigern, in dem man Ende-zu-Ende-Verschlüsselung benutzt, beispielsweise Seiten mit https aufruft, Email- und Chatverbindungen mit verschlüsselten Protokollen aufbaut. Doch das ist nicht immer möglich und gesperrte Inhalte sind noch immer nicht zugänglich.

Wie?

Eine Lösung für dieses Problem kann die Nutzung eines SSH-Tunnels als SOCKS-Proxy sein. Dazu benötigt man einen eigenen SSH-Server.

Windows

Windows bietet von Haus aus keine Unterstützung für SSH an, daher benötigt man unter Windows ein Programm, welches eine SSH-Verbindung aufbauen kann. Meine Empfehlung heißt PuTTY.

In PuTTY konfiguriert man nun die Porteinstellungen unter Connection => SSH => Tunnels und fügt dort Port 7070 als dynamischen Port hinzu.

Einstellungen für das Portforwarding in PuTTY

Optional kann man unter Connection => SSH unterbinden, dass eine Shell nach der Anmeldung geöffnet wird.

Keine Shell beim Verbindungsaufbau

Fehlt noch die Angabe der Serververbindung: Die Daten zu Nutzer und Server gibt man auf dem Eingangsfenster unter Session ein. Hier besteht auch die Möglichkeit, alle gemachten Einstellungen zu Speichern, indem man einen Namen unter Saved Sessions eingibt und auf Save klickt. Die Sitzung startet mit einem Klick auf Open.

Herstellen der Verbindung zum SSH-Server

Nun muss man diese Verbindung natürlich auch noch nutzen können, wozu man Browser oder das System konfigurieren muss. Für die Proxyeinstellung im Firefox führt der Weg über die Einstellungen und dort über Erweitert => Netzwerk => Verbindungen. Dort gibt man entweder an, die Systemeinstellungen zu verwenden oder trägt localhost mit Port 7070 als SOCKS-Host ein. Wer eine dynamischere Proxyverwaltung wünscht, sollte sich das Addon FoxyProxy ansehen.

Proxyeinstellungen für Mozilla Firefox

Im Internet Explorer nimmt man gleichzeitig die systemweiten Einstellungen für Windows vor. Die Proxyeinstellungen findet man in den Interneteinstellungen unter Verbindungen => LAN-Einstellungen. Dort aktiviert man zunächst den Haken Proxyserver für LAN verwenden und findet dann über den Button Erweitert die Proxyeinstellungen. Hier wird unter Socks localhost als Server mit Port 7070 eingetragen.

Proxyeinstellungen für das System und den IE

Mac OS

Zuerst öffnet man das Terminal (z.B. über Spotlight)

Auswählen des Terminals in Spotlight

Im Terminal wird die Verbindung zum SSH-Server hergestellt:

ssh -D 7070 -N user@server [-p port]

Mit der Option -D 7070 gibt man den lokalen, dynamischen Port an, über den später die Kommunikation laufen soll. Die Option -N besagt, keine weiteren Programme wie z.B. eine Shell zu starten. Läuft der SSH-Server nicht auf dem Standardport 22 gibt man optional den Port mit -p gefolgt von der Portnummer an.

Anschließend stellt man in den Systemeinstellungen unter Netzwerk die systemweiten Proxywerte ein. Dazu klickt man auf Weitere Optionen und wählt den Reiter Proxies und aktiviert dort den SOCKS-Proxy. Als Proxy-Server trägt man localhost ein und verwendet den Port 7070. Damit geben wir an, die im vorangegangenen Schritt eröffnete SSH-Verbindung zu nutzen. Im unteren Feld besteht die Möglichkeit, Ausnahmen zu definieren.

Einstellungen eines SOCKS-Proxyservers

Ab diesem Zeitpunkt verwenden alle Programme, die die vom System vorgegebenen Proxyeinstellungen akzeptieren und verwenden den Weg über den SSH-Tunnel. Anderen Programmen (z.B. vlc) muss der Proxyserver manuell beigebracht werden.

Bekannte Ausnahmen

  • Opera: Der Browser bietet keine SOCKS-Unterstützung. Denkbar wäre ein Umweg über einen http-Proxy, der über den SSH-Tunnel nach außen geht.

Quelle: Vertraute Verbindung aus unsicheren Netzen