Netzzensur per SSL-Tunnel aushebeln

Wer Netzwerkbegrenzungen umgehen will, kann dafür Protokolle nutzen, die immer zur Verfügung stehen – etwa HTTPS. Ein SSL-Tunnel verbindet sich so zu einem speziell konfigurierten Apache-Webserver, der als externer Proxy Anfragen annimmt.

In Pocket speichern vorlesen Druckansicht 118 Kommentare lesen
Lesezeit: 15 Min.
Von
  • Michael Renner
Inhaltsverzeichnis

Viele Unternehmen sowie manche Länder gewähren nur gefilterten Zugriff auf das Internet. Einen Ausweg aus solchen Sperren bietet ein externer Proxy unter eigener Kontrolle. Wenn die Zugriffe auf ihn wie gewöhnlicher HTTPS-Datenverkehr aussehen, funktioniert das durch die meisten Firewalls hindurch und minimiert das Risiko einer Entdeckung.

Kaum ein größeres Unternehmen verzichtet auf Schutzmaßnahmen für seine IT-Infrastruktur. Neben Viren - scannern auf den Windows-Desktops haben sich Proxy-Server etabliert, die Zugriffe auf Webseiten filtern und deren Benutzung per Firewall-Regel zwingend vorgeschrieben ist (Zwangs- Proxies). Sie prüfen meist nicht nur den Datenverkehr auf Malware, sondern sperren anhand einer Blacklist einzelne Sites von vornherein.

Das nutzen nicht nur Arbeitgeber dafür, die mit YouTube und eBay verbrachte Zeit zu begrenzen. Ganze Staaten sperren aus politischen, religiösen, wirtschaftlichen oder moralischen Gründen den Zugriff auf bestimmte Webseiten. Darüber hinaus ist der Zugriff auf andere Ports als 80 (HTTP) oder 443 (HTTPS) oft unterbunden, womit die meisten Internet-Radios und viele andere Dienste außerhalb des WWW unabhängig von deren Inhalten komplett unerreichbar sind.

Derartige Sperren sollte jedoch niemand, der sie einrichtet, als vollkommen sicher betrachten. Wer einen freien Informationsfluss benötigt, bekommt ihn mit einem gewissen Aufwand. Eine Möglichkeit, solche Restriktionen zu umgehen, besteht darin, über einen entsprechend konfigurierten Browser und einen eigenen Proxy-Server aufs Internet zuzugreifen. Als Proxy dient ein unter eigener Regie laufender oder zur Verfügung gestellter Rechner in einem ungefilterten Teil des Internet, dem Zugriffe auf beliebige Webseiten und Dienste erlaubt sind. Damit die Netzwerkkommunikation vom und zum Proxy nicht in einem leicht verfolgbaren Klartext stattfindet, müssen Client und Proxy verschlüsselt miteinander kommunizieren – durch einen Tunnel.

Wer ein wenig mit Netzwerken vertraut ist, kommt schnell auf eine simple Idee: Ein SSH-Tunnel zum eigenen Proxy muss her. Dank Putty ist auch unter Windows ein solcher Tunnel rasch zusammengeklickt. Selbst einen eventuell vorhandenen Zwangs-Proxy kann PuTTY berücksichtigen. Wer OpenSSH zum Tunneln verwendet, benutzt zusätzlich prtunnel, falls ein Zwangs-Proxy im Weg ist.

Die Netzwerkanalyse mit Wireshark verrät die Natur der Verbindung – hier ein typischer ssh-Handshake (Abb. 1).

Diese vermeintlich einfache Lösung hat jedoch einen gravierenden Nachteil: Ein SSH-Tunnel ist leicht nachweis- und blockierbar. Schon während des Verbindungsaufbaus lassen sich SSH und SSL- verschlüsseltes HTTP voneinander unterscheiden. Ein telnet auf den Port 22 eines SSH-Servers zeigt, was beim Tunnelaufbau im Klartext über die Netzwerkleitung geht: Der sshd meldet sich mit der Angabe des unterstützten Protokolls, seiner Version sowie der verwendeten Distribution. Die meisten Intrusion-Detection-Systeme (IDS) erkennen solche SSH-Meldungen bereits mit der Grundkonfiguration. Erschwerend kommt hinzu, dass SSH-Tunnel aus Performance-Gründen nicht für jeden einzelnen Seitenaufruf infrage kommen (auch wenn es für Unix die Möglichkeit gibt, mithilfe des inetd einen „SSH-Tunnel on demand“ zu realisieren), sondern in der Regel für mehrere Minuten oder gar Stunden bestehen. Die Entdeckung solcher Tunnel ist nur eine Frage der Zeit.

Besser also, wenn statt eines SSH- ein SSL-Tunnel zum Einsatz kommt. SSL erfüllt den Zweck ähnlich gut, es erregt jedoch nicht sofort den Argwohn von Paket-Sniffern. Ein Programm, das den Aufbau eines SSL- verschlüsselten Tunnels erlaubt, ist stunnel. Die gängigen Linux-Distributionen bringen die Version 4 mit, für Windows sind fertige Binaries auf der Projektseite von Cygwin zu finden.