Surfen via ssh

Manchmal ist es hilfreich, über eine ssh-Verbindung zu surfen. Besonders dann, wenn man eine unverschlüsselten Verbindung nutzt und die Daten möglichst “verschlossen” gehalten werden sollten. Eine sehr einfache und zugleich effektive Methode besteht in der Möglichkeit, einen ssh-Tunnel zu einem Gerät herzustellen, das selbst in das Internet routen kann, zum Beispiel zu einem Server. Dazu braucht es folgende, einfache Zeile im Terminal:

ssh -D 127.0.0.1:8080 benutzername@servername.tld

Damit wird der Localhost über den Port 8080 auf den angegebenen Server umgeleitet und verschlüsselt. Man sollte aber beachten, dass die Verschlüsselung nur bis zum Server und in der Regel nicht darüber hinaus erfolgt. Allerdings muss man den Applikationen, mit den auf das Internet zugegriffen werden soll, diesen Weg mitteilen. Beim Firefox reichen dazu einige Einstellungen unter der Reiterkarte “Erweitert” und dort in der Unterrubrik “Netzwerk”. Unter “Festlegen, wie sich Firefox mit dem Internet verbindet” muss folgendes eingestellt werden:

Alle Felder leer lassen, ausser das Feld “SOCKS-Host” muss den gleichen Wert wie oben beschrieben aufweisen:

127.0.0.1 auf dem Port 8080

Damit wird der Verkehr vom Feuerfuchs über die ssh-Verbindung gelenkt und ist damit sauber in einem Tunnel untergebracht. Das funktioniert einwandfrei, zumindest bei meinen Versuchen.

Dieses Vorgehen muss natürlich bei allen Programmen gemacht werden, welche über jenen Tunnel mit dem Internet kommunizieren müssen. Von alleine merken die das nicht, dass sie den Tunnel nutzen sollten.

Wahrscheinlich gibt es noch weitaus elegantere Lösungen als die hier angesprochene. Aber zur Not reicht sie allemal.

Nachtrag:

Wie hier in den Kommentaren Marco beschrieben hat, ist es erforderlich, dem Firefox beizubringen, dass er auch für DNS-Auflösungen den Weg über SSH nutzt. Dazu muss folgende Zeile in der Adresszeile der Firefox eingetragen werden:

about:config

Darauf erscheint eine liebliche Warnung, die man am besten einmal durchlist. Danach verspricht man in der deutschen Version, dass man vorsichtig beim Editieren sein will.

In der ellenlangen Liste sucht man nun nach dem Wert

network.proxy.socks_remote_dns

und setzt ihn durch anklicken auf true. Das ist dann schon alles, was bei Firefox (nebst dem Proxy-Eintrag in den Einstellungen) gemacht werden muss.

Ähnliche Artikel

Schlagwörter: , , , , ,

8 Kommentare to “Surfen via ssh”

  1. MarcoNo Gravatar schrieb:

    Wichtig: In Firefox unbedingt noch network.proxy.socks_remote_dns auf true setzen. Sonst versucht der Client DNS Namen aufzulösen – ohne Nutzung des SSH Tunnels.

  2. Roman HanhartNo Gravatar schrieb:

    Danke für den Hinweis, Marco!

    Das macht man übrigens mit about:config in der Adresszeile des Firefox.

  3. ReneSNo Gravatar schrieb:

    Danke für den Tipp. So bekomme ich endlich Zugang zu meinem Firmennetz von einigen WiFi-Netzen, die unsere IP blocken. Ich habe zusätzlich noch -P 1234 eingefügt, weil man nicht zwangsweise seinen SSH-Port auf 22 laufen hat… Skript-Kiddies-Schutz für Arme.

  4. dasuxullebtNo Gravatar schrieb:

    Wie schon gesagt, nicht socks remote dns vergessen (ich finde es btw bescheuert dass das nicht die defaulteinstellung ist). Ansonsten kann das Ganze auch sinnvoll sein, wenn man grad mit GSM unterwegs ist, denn mittels -C kriegt man auch Compression rein (das CompressionLevel kann man in der ssh.conf-Datei festlegen).

    Gute Software (Firefox, Pidgin) unterstützt das Ganze, für die weniger gute Software unterstützt wenigstens normalerweise dann HTTP-Proxies, dafür gibt es dann z.B. sowas wie tinyproxy. Geht auch mit APT.

    Weiterhin gibt es so Sachen wie Socksify und Tsocks, das mittels ld_preload auch einige andere Programme dazu bringt, Socks zu benutzen.

    Außerdem gibt es Transocks, das leitet TCP-Verbindungen an Socks weiter, und erzeugt ein eigenes Netzwerkinterface.

    Natürlich muss man sich, wenn man schon bei Transocks angekommen ist, überlegen, warum man nicht gleich ein VPN benutzt.

  5. gutsyNo Gravatar schrieb:

    wenn man privoxy einsetzt (ja das geht auch ohne tor) kann man in die config
    “forward-socks5 / 127.0.0.1:9999 .”
    eintragen (port anpassen; ohne “”, aber mit .)
    und kann dann in jedem programm das kein socks kann (opera z.b.) den http-proxy localhost:8118 stattdessen verwenden. vorteil: keine dns-probleme

  6. Dirk DeimekeNo Gravatar schrieb:

    SSH ist schon eines der Schweizer Taschenmesser, das man dringend im Werkzeugkasten haben sollte. Der von Dir beschriebene “Poor Man’s Proxy” ist nur eines der Highlights, es gibt noch eine ganze Reihe weiterer spannender Möglichkeiten.

  7. foobarNo Gravatar schrieb:

    Bitte verwende wie in /etc/services dokumentiert doch den Port 1080 fuer SOCKS.

    ssh -D 1080 user@proxy.example.org

    Mit tsocks kannst du SOCKS-Proxy fuer andere Programme spielen.

  8. Roman HanhartNo Gravatar schrieb:

    @foobar: Danke! Wusste ich gar nicht, dass für SOCKS ein Port zugewiesen wurde.

Hinterlasse einen Kommentar

blogoscoop Blogverzeichnis - Blog Verzeichnis bloggerei.de