Networking & IT Security Blog
RSS Icon Email-Icon Home-Icon
  • Anonymes surfen: HTTP-Verkehr durch SSH tunneln

    Geschrieben am 24. April 2009 Christian Book Keine Kommentare

    Immer mehr Unternehmen bekommen negative Presse, weil sie ihre Mitarbeiter ausspionieren. Insbesondere das Auswerten von Internet-Zugriffen ist dabei technisch problemlos möglich und schwer nachweisbar. Wer sich also ungern ausspionieren lässt oder häufig in Netzen arbeitet, denen er im Bezug auf die Netzwerksicherheit nicht vertraut, der sollte die folgende Lösungen anschauen. Es wird beschrieben, wie mit einem einfachen (virtuellen) Server und etwas Freeware der gesamte HTTP-Datenverkehr das lokale Netzwerk verschlüsselt durchquert.

    1. Voraussetzungen

    Für das folgende Szenario wird ein Linux-Server benötigt, auf dem admistrative Berechtigungen bestehen. Weiterhin müssen in der Firewall die Ports 3128 (Squid-Proxy) und 22 (SSH) freigegeben werden.

    2. Installation des Proxy-Servers

    Zunächst wird der Proxy-Server Squid, einer der meistverbreitesten seiner Art, installiert. In der Regel kann Squid über den Paketverwaltungsdienst installiert werden (bspw. apt-get install squid). Unbedingt beachtet werden sollten die Hinweise des BSI zur Sicherheitsuntersuchung der Squid Proxy-Servers. Hier werden wichtige Hinweise zur Absicherung des Servers gegeben. Weitere Konfigurationen sind nicht notwendig.

    3. Konfiguration von PuTTY

    Das Programm PuTTY ist ein freier SSH/Telnet-Client, der kostenfrei bezogen werden kann. Es steht für alle gängigen Betriebssysteme zur Verfügung.
    Nach dem Ausführen erscheint zunächst eine Eingabemaske, in der die IP-Adresse und der SSH-Port des Servers eingegeben werden muss. Über das Menü Connection > SSH > Tunnels kann die Tunnel-Konfiguration erreicht werden. Der lokale Source-Port kann entsprechend der Richtlinien zur Portvergabe frei gewählt werden. Jeder Datenverkehr, der das lokale System auf diesem Port erreicht, wird von nun an über den SSH-Tunnel an den Server übertragen. Als Destination-Adress dient die Kombination der Server-Adresse und des Squid-Ports, in der Regel Port 3128. Nachdem diese Einstellungen gespeichert wurden, kann die Verbindung zum Server nun aufgebaut werden.

    Konfiguration eines SSH-Tunnels mittels PuTTY - 1

    Konfiguration eines SSH-Tunnels mittels PuTTY - 1

    Konfiguration eines SSH-Tunnels mittels PuTTY - 2

    Konfiguration eines SSH-Tunnels mittels PuTTY - 2

    Wichtig: PuTTY bzw. die Verbindung zum Server darf keinesfalls beendet werden, sonst ist ein verschlüsselter Internet-Zugriff nicht möglich!

    4. Konfiguration der Internetverbindung

    Nachdem der Server nun als Proxy-Server arbeitet und ein SSH-Tunnel zwischen dem lokalen System und der Server aufgebaut ist, muss nun der Internet-Datenverkehr in diesen SSH-Tunnel geleitet werden. Dazu muss in den Internetoptionen lediglich die Option Proxy-Server aktiviert werden. Als Server-Adresse wird localhost verwendet, als Port der im Abschnitt 3 definierte lokale Source-Port.

    Konfiguration der Internet-Einstellungen zur Nutzung eines Proxy-Servers - 1
    Konfiguration der Internet-Einstellungen zur Nutzung eines Proxy-Servers – 1
    Konfiguration der Internet-Einstellungen zur Nutzung eines Proxy-Servers - 2
    Konfiguration der Internet-Einstellungen zur Nutzung eines Proxy-Servers – 2

    5. Funktionstest

    Um zu prüfen, ob auch wirklich der gesamte HTTP-Datenverkehr verschlüsselt über den SSH-Tunnel bis zum Proxy-Server transportiert wird, kann mit Hilfe eines Sniffers (bspw. Wireshark) der Paketfluss analysiert werden. Während der Sniffer analysiert, können beliebige Internetseiten aufgerufen werden. Dabei sollten keine HTTP-Verbindungen im Sniffer erkennbar sein. Sofern lediglich SSH- und TCP-Pakete sichtbar sind, ist die Kommunikation korrekt verschlüsselt.

    Überprüfung des SSH-Tunnels mittels Wireshark
    Überprüfung des SSH-Tunnels mittels Wireshark

    Kommentare sind deaktiviert.