AA_PO-21440-123RF-fckncg.jpg

© fckncg, 123RF

Schlichter Tunnel

Beinahe-VPN per SSH

20.08.2012
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
 

Ä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 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...