AA_PO-21440-123RF-fckncg.jpg

© fckncg, 123RF

Beinahe-VPN per SSH

Schlichter Tunnel

Der in OpenSSH eingebaute SOCKS-Proxy und das auf SSH aufbauende Python-Programm Sshuttle springen in die Bresche zwischen einfachem Port-Forwarding und einem vollwertigen VPN.

Transparente Netzwerk-Verbindungen via Tunnel in ein virtuelles privates Netz (VPN) helfen nicht nur, wenn Sie sich als Mitarbeiter von zu Hause oder beim Außentermin in das interne Netzwerk einer Firma einklinken möchten. Sie eignen sich auch, um ohne HTTPS-Verschlüsselung in offenen WLANs zu surfen, auf Rechner hinter dem NAT-Router zu Hause zu zugreifen oder überhaupt erst ins Internet zu gelangen.

Einen eigenen VPN-Server aufzusetzen setzt selbst mit OpenVPN [1] zumindest entsprechende Kenntnisse voraus, viel Zeit und vor allem einen Server, der die Möglichkeit bietet, den VPN-Endpunkt einzurichten [2]. Dazu brauchen Sie in fast allen Fällen Root-Rechte auf dem Server, und gerade die stehen selten bereit.

Ein Rechner, der ein Login per SSH (Secure Shell, heute meist in Form der OpenSSH-Implementation [3]) erlaubt, lässt sich jedoch einfach organisieren – und das reicht oft schon für ein rudimentäres VPN aus.

SOCKS-Proxy mit SSH

Das Protokoll SOCKS [4] erlaubt es prinzipiell, beliebige Client-Server-Protokolle über einen Proxy-Dienst zu tunneln. OpenSSH als SSH-Client bringt bereits seit langer Zeit einen solchen generischen SOCKS-Proxy mit. Es leitet alle über diesen Proxy gemachten Verbindungen über einen Tunnel zur Endstelle der SSH-Verbindung auf den entfernten Rechner weiter. Dazu braucht am anderen Ende nicht einmal ein OpenSSH-Server laufen: Es genügt ein schlanker Dropbear-SSH-Server [5], wie man ihn oft auf WLAN-Routern mit OpenWRT [6] findet.

Das ermöglicht es bereits, über einen SSH-Tunnel Webseiten in einem Intranet anzusteuern oder unverschlüsselt in einem offenen WLAN zu surfen, ohne dass jemand im selben Netzwerk mitliest, wohin Sie surfen oder welche Dateien Sie herunterladen. Das klappt bereits nur mit Bordmitteln von OpenSSH und ohne besondere Berechtigungen auf dem entfernten Rechner.

Das Bereitstellen eines SOCKS-Proxys erledigen Sie bei OpenSSH über den Parameter -D und die Angabe der vom Proxy zu verwendenden Port-Nummer (üblicherweise 1080):

$ ssh -D 1080 Host

Das aktiviert den SOCKS-Proxy zusätzlich zum normalen Shell-Login auf dem entfernten Rechner.

Möchten Sie ausschließlich den SOCKS-Proxy nutzen und keine Shell auf dem entfernten Rechner starten, so empfehlen sich zusätzlich die Optionen -N und -f: Erstere bewirkt, dass keine Shell auf dem entfernten Rechner startet, und Letztere, dass SSH nicht im Vordergrund arbeitet und somit die lokale Shell wieder freigibt.

Eine weitere nützliche Option ist -o ExitOnForwardFailure=yes. Sie sorgt dafür, dass SSH die Verbindung wieder abbaut, wenn es den SOCKS-Proxy nicht einrichten konnte. Der Fall tritt ein, wenn der lokale Port bereits belegt ist, weil schon ein SOCKS-Proxy auf dem lokalen Rechner läuft.

Konfiguration

Viele Anwendungen bieten die Möglichkeit, direkt auf einen SOCKS-Proxy zuzugreifen, etwa der Webbrowser Firefox (Abbildung 1) oder das Chat-Programm Pidgin (Abbildung 2). Oft, aber nicht immer, ist die für SOCKS-Proxies übliche Portnummer 1080 voreingestellt.

Abbildung 1: Firefox bietet die Möglichkeit, über einen SOCKS-Proxy ins Netz zu gehen.
Abbildung 2: Bei Bedarf wickeln Sie die Kommunikation von Pidgin über den SOCKS-Proxy von OpenSSH ab.

Unterstützt eine Applikation nur Version 4 des SOCKS-Protokolls, so löst das Programm die Namen der Rechner immer lokal auf dem Rechner auf. Version 5 des SOCKS-Protokolls unterstützt dagegen das Weiterleiten von DNS-Anfragen und IPv6-Verbindungen über den Proxy.

Bietet eine Software keinen direkten Support für einen SOCKS-Proxy, verhilft ihr in den meisten Fällen das Helferprogramm Tsocks [7] zu den entsprechenden Fähigkeiten. Dieser Helfer biegt durch vorhergehendes Laden einer bestimmten Bibliothek alle Systemaufrufe zum Aufbau einer TCP/IP-Verbindung auf einen SOCKS-Proxy um (Listing 1).

Listing 1

$ ssh -D 1080 -f -o ExitOnForwardFailure=yes -N 192.0.2.42
$ lynx -dump http://checkip.dyndns.org/
   Current IP Address: 192.0.2.23
$ tsocks lynx -dump http://checkip.dyndns.org/
00:14:56 libtsocks(398): Call to connect received on completed request 3
   Current IP Address: 192.0.2.42

Über die Konfigurationsdatei /etc/tsocks.conf teilen Sie Tsocks mit, dass es Verbindungen zu gewissen IP-Bereichen nicht durch den SOCKS-Proxy umleiten soll, weil diese beispielsweise zum lokalen Netzwerks gehören. In vielen Distributionen fungiert dies als Standard-Einstellung für die typischen privaten IP-Ranges.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Quick-and-Dirty-Tunnel mit SSH und Sshuttle
    Für den schnellen Zugriff von unterwegs auf private Daten ist ein VPN oft überdimensioniert. Das geniale kleine Tool Sshuttle dagegen durchtunnelt unsichere Netze auch ohne langwierige Vorbereitungen auf dem Server.
  • Mit SSH einen SOCKS-Proxy einrichten
    Wer im Büro oder an der Hochschule Zugriff auf besondere Web-Angebote hat, kann diese auch von zu Hause aus nutzen, wenn ein Büro-/Uni-Rechner via SSH erreichbar ist. Wir zeigen, wie Sie SSH, Firefox und weitere Programme passend konfigurieren.
  • Neues auf der Heft-DVD
  • Aber sicher!
    Sicheres Arbeiten auf entfernten Rechnern und verschlüsselte Datenübertragung – das alles und noch viel mehr bietet SSH.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...