AA_keys_123rf-1914045_KirillBodrov.jpg

© Kirill Bodrov, 123rf.com

Sicherer Kanal

Daten verschlüsselt tauschen mit SocialVPN

18.02.2010
Auch ohne komplexe Konfiguration bauen Sie via SocialVPN schnell und einfach eine sichere Verbindung zum Tausch von Daten und Dateien auf.

Sie möchten den Desktop eines Bekannten steuern, kommen jedoch mit den dafür nötigen Portweiterleitungen vom Router auf den PC nicht zurecht? Sie möchten einen verschlüsselte Verbindung zum Austausch sensibler Daten nutzen, scheuen sich jedoch den Aufwand beim Einrichten eines VPN-Servers? Mit SocialVPN schicken Sie im Handumdrehen Daten über einen verschlüsselten Kanal durch Netzwerke und Router hindurch.

Virtuelle Private Netzwerke (kurz VPN) haben sich als effiziente und sichere Methode zum Datentausch zwischen Computern über das Internet bewährt. Die Rechner innerhalb des VPNs verhalten sich dabei so, als ob sie im selben lokalen Netzwerk stünden – Sie dürfen also auch Dienste wie Samba, RDP, VNC oder SSH einsetzen, ohne sich der Gefahr auszusetzen, dass jemand Sie ausspäht. Allerdings erfordert ein normales VPN einiges an Konfiguration, angefangen vom Server bis hin zum Portforwarding auf dem Router.

Auf dem Markt haben sich daher Produkte wie Hamachi [1] etabliert, die ein VPN durch Firewalls und Router hinweg ohne aufwändige Konfiguration ermöglichen. Allerdings handelt es sich bei dem Programm um Closed-Source-Software, sodass niemand aus der Community sich im Stande sieht, die Sicherheit des VPNs zu beurteilen.

Des Weiteren verlangt das Unternehmen hinter der Software, die Firma LogMeIn, Lizenzgebühren für den gewerblichen Einsatz, und es bedarf immer eines Accounts bei LogMeIn. Davon ab befindet sich die Linux-Variante in keinem guten Zustand, eine graphische Oberfläche bietet das Unternehmen nicht an.

Freie Alternative

Das SocialVPN-Projekt [2] positioniert sich als GPL2-lizenzierte Alternative zu dem kommerziellen Produkt. Letztendlich stellt es dieselben Funktionen bereit. SocialVPN gibt es derzeit für Windows und Linux, eine Version für Mac OS X befindet sich aktuell im Alpha-Stadium.

Das Programm vereint drei Open-Source-Projekte, um ein VPN zwischen beliebig vielen Rechnern aufzubauen. Die Bibliothek Brunet [3] ermöglicht das Erstellen von Peer-to-Peer-Netzwerken durch Router hindurch, ohne dass Sie Ports vom Router auf die Computer dahinter weiterleiten müssen. IPOP [4] übernimmt das Routing der Pakete zwischen den Netzen, und die Schnittstelle Jabber-Net-XMPP [5] das Authentifizieren der Benutzer sowie das Übermitteln der Schlüssel über einen sicheren Kanal.

Sie bedienen SocialVPN ganz einfach über den Webbrowser. Über eine grafische Oberfläche im klassischen Sinne verfügt SocialVPN nicht. Der Verzicht auf eine GUI erleichtert es aber, das Programm auf andere Betriebssysteme zu portieren.

Voraussetzung für den Einsatz von SocialVPN ist aufgrund der Authentifizierung via Jabber ein Account auf einem passenden Server. Besitzen Sie einen Mail-Account bei einem der Webmail-Anbieter Google Mail, GMX oder Web.de, verfügen sie bereits automatisch über einen Jabber-Account.

Ihre Jabber-Adresse lautet dann genauso wie ihre Mail-Adresse. Also zum Beispiel manfred.mustermann@gmail.de, manfred.mustermann@gmx.net oder manfred.mustermann@web.de. Sollten Sie noch keinen Jabber-Account besitzen, finden Sie etwa im Wiki von Ubuntuusers.de [6] eine kommentierte Liste öffentlicher Jabber-Server, auf denen Sie sich einen Account generieren können.

Installation

Unter Linux benötigen Sie die Laufzeitumgebung Mono. Ubuntu installiert Mono von Haus aus, bei anderen Distributionen holen Sie das über die Paketverwaltung oder von Hand nach.

Die Installation von SocialVPN geht ansonsten sehr einfach von der Hand: Sie laden das Programmarchiv [7] herunter und entpacken es. Die Konfiguration erfolgt über das Skript setup.sh. Dieses führen Sie ohne Root-Rechte aus (Listing 1) und geben beim Setup Ihre Jabber-ID sowie einen Rechner- und Benutzernamen ein.

Listing 1
$ ./setup.sh
Enter userid (jabberid@host.com): manfred.mustermann@jabber.example.com
Enter PCID (home-pc): beispielrechner
Enter Name (Jane Doe): Manfred Mustermann
Creating certificate…
Certificate creation successful
Run ./socialvpn as root

Über das Skript generieren Sie dann individuelle Zertifikate. Sollten sie SocialVPN unter Windows betreiben, müssen sie zuvor das Microsoft .NET Framework [8] installieren. Anstatt setup.sh führen Sie dann die Datei setup.cmd über einen Doppelklick auf das Symbol aus. Das Skript versucht in einem ersten Schritt alte Installationen von SocialVPN zu deinstallieren (selbst wenn SocialVPN noch gar nicht installiert war) und installiert anschließend die aktuelle Version. Die passenden Geräte-Treiber sind nicht signiert; die Warnung der Installationsroutine vor den Treibern müssen Sie daher selber akzeptieren.

Das VPN starten

Nach der Installation starten Sie das VPN unter Linux über das Skript socialvpn (Listing 2). Beachten Sie, dass Sie für das Einrichten der Routen und der virtuellen Netzwerkschnittstelle zwingend Root-Rechte benötigen.

Listing 2
$ sudo ./socialvpn
Set 'tapipop' nonpersistent
Set 'tapipop' persistent and owned by uid 1000
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Listening on LPF/tapipop/0e:b0:52:6e:66:f7
Sending on   LPF/tapipop/0e:b0:52:6e:66:f7
Sending on   Socket/fallback
DHCPDISCOVER on tapipop to 255.255.255.255 port 67 interval 3
DHCPOFFER of 172.31.0.2 from 172.31.0.1
DHCPREQUEST of 172.31.0.2 on tapipop to 255.255.255.255 port 67
DHCPACK of 172.31.0.2 from 172.31.0.1
 * Reloading /etc/samba/smb.conf smbd only
   …done.
bound to 172.31.0.2 – renewal in 1294 seconds.
Point your browser to http://127.0.0.1:58888

Gibt das Skript beim Start keine Fehlermeldungen aus, öffnen Sie Ihren Webbrowser und geben in die Adresszeile die URL http://127.0.0.1:58888 ein. Unter dieser Adresse finden Sie das Webfrontend von SocialVPN.

Der Start von SocialVPN unter Windows verläuft nicht viel anders als unter Linux. Um das VPN zu starten oder zu stoppen, stehen Ihnen die Skripte start_socialvpn und stop_socialvpn zur Verfügung. Unter Windows Vista oder Windows 7 müssen Sie die Skripte auf jeden Fall über einen Rechtsklick und Als Administrator ausführen mit administrativen Rechten starten: Sonst gelingt es nicht, die virtuelle Netzwerkschnittstelle zu konfigurieren.

Kontakte einfügen

Nachdem Sie und Ihre möglichen VPN-Partner SocialVPN eingerichtet und gestartet haben, müssen Sie ähnlich wie bei einem Instant-Messaging-Programm Kontakte zu SocialVPN hinzufügen. Achten Sie jedoch darauf, sich über den Link Login mit Ihrer Jabber-ID und dem passenden Passwort auf dem Server anzumelden. Nach dem erfolgreichen Anmelden sehen Sie links neben dem Login-Link die Meldung [[Online]].

Haben Sie sich eingeloggt, fügen Sie Ihrem VPN Kontakte hinzu. Im Webfrontend finden Sie dazu unter Add Friends den passenden Link. In der Maske müssen Sie nun den Kontakt im Format Jabber-IDFingerprint eintragen (Abbildung 1), etwa anne.mustermann@jabber.example.com SVPN:123456789. Es reicht also nicht. nur die Jabber-ID des Kontakts zu kennen: Sie benötigen zusätzlichen noch den Fingerabdruck des SocialVPN-Clients, erst dann können sie die VPN-Verbindung aufbauen.

Abbildung 1: Fügen sie SocialVPN Kontakte hinzu.

Tauschen Sie den Fingerabdruck mit Ihren Kontakten nur über ein sicheres Kommunikationsmittel aus, sonst bestünde die Gefahr, dass unautorisierte Personen Ihr VPN betreten. Um bidirektional kommunizieren zu können, sollten Sie Ihre Jabber-ID und den Fingerabdruck ebenfalls an Ihren Kontakt schicken, sodass dieser in der Lage ist, Sie als Kontakt hinzu zu fügen.

Haben Sie und ihre Kontakte jeweils die Jabber-ID und den Fingerabdruck eingeben, dann erscheint der Kontakt als Online. Ab diesem Zeitpunkt sind Ihre Rechner miteinander vernetzt. Im Webfrontend sehen sie die IPs und Rechnernamen (Siehe Abbildung 2) ihrer Kontakte, über die sie miteinander kommunizieren können. Als ersten Test schicken sie Pings zwischen Ihren Rechnern hin und her – etwa via ping beispielrechner.manfred.mustermann.jabber.example.ipop oder ping 172.38.12.34. Die korrekten Daten entnehmen sie dem Webfrontend von SocialVPN.

Abbildung 2: SocialVPN führt Ihre Kontakte und deren Netzwerkdaten auf.

Klappt das, haben Sie die Möglichkeit, aufwändigere Dienste zu nutzen. Bedenken Sie aber, dass SocialVPN nur das Netzwerk zwischen den entfernten Rechnern bereit stellt, jedoch keine Dienste zum Übertragen des Desktops oder von Dateien. Sollten sie Hilfestellung bei Problemen leisten wollen, dann müssen sie dazu auf VNC zurückgreifen oder sich via SSH einloggen. Daten tauschen sie etwa über Samba oder FTP aus.

In unseren Tests haben sich besonders Dienste bewährt, die auf Avahi aufsetzen [9]. So war es problemlos möglich, via Vinagre/Vino den Desktop eines entfernten Rechners zu steuern, via Pidgin und Bonjour zu chatten oder mittels Giver Dateien und Ordner zu übertragen, ohne zuvor Serverdienste einrichten zu müssen (Abbildung 3).

Abbildung 3: Dank Avahi tauschen Sie im Nu über SocialVPN Daten und Dateien aus.

Fazit

SocialVPN eignet sich sehr gut zum Überbrücken der Hürden, die ein NAT-Router zwischen zwei über das Internet verbundenen Rechnern aufbaut. Wollen Sie etwa mit Freunden ein Netzwerkspiel spielen, das sich nur im LAN, aber nicht via Internet spielen lässt, oder via VNC auf den Desktop eines Bekannten schauen, ohne sich Gedanken um Portweiterleitungen oder SSH-Tunnel machen zu müssen, dann erweist sich SocialVPN eine gute Wahl. Das VPN zwischen zwei oder mehreren Rechner ist schnell und recht unkompliziert aufgebaut.

Bei komplizierten Vorhaben scheitert SocialVPN jedoch. Aus einem Netzwerk heraus, in dem eine Firewall alle ausgehenden Verbindungen blockiert und nur HTTP über einen Zwangsproxy sowie HTTPS zulässt, gelang es im Test nicht, eine Verbindung via SocialVPN herzustellen. Ebenso war es im Test nicht möglich, SocialVPN über eine weitere VPN-Verbindung zu legen. SocialVPN lässt sich also nicht aus Netzen nutzen, die lediglich über eine VPN-Schnittstelle verfügen.

Das Programm eignet sich ideal, um einfach und schnell – über verschiedene Betriebssysteme hinweg – ein virtuelles privates Netzwerk aufzubauen. Besonders kleine Unternehmen oder Heimanwender, die den Zugang zum Internet über DSL-Anschlüsse realisieren, profitieren von SocialVPN: Die aufwändige Konfiguration des Netzwerks entfällt. Ein Setup für Windows sowie Pakete für diverse Linux-Distributionen könnten das Setup noch vereinfachen.

Infos

[1] Hamachi: https://secure.logmein.com/products/hamachi2/

[2] SocialVPN: http://socialvpn.wordpress.com

[3] Brunet: http://github.com/johnynek/brunet/tree

[4] IPOP: http://www.grid-appliance.org/wiki/index.php/IPOP

[5] Jabber-Net-XMPP-API: http://code.google.com/p/jabber-net/

[6] Kommentierte Liste öffentlicher Jabber-Server: http://wiki.ubuntuusers.de/Jabber/Öffentliche_Server

[7] Download von SocialVPN: http://code.google.com/p/socialvpn/downloads/list

[8] Microsoft .NET Framework 3.5: http://tinyurl.com/lu1002-dotnet

[9] Giver: Christoph Langner, "Kopflos", LinuxUser 03/2009, S. 38, http://www.linux-community.de/artikel/17851/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare
Erst mit GMail ein Erfolg?
Björn Abheiden (unangemeldet), Samstag, 10. April 2010 14:51:53
Ein/Ausklappen

Gemäß des Artikels sollten Verbindungen mit SocialVPN und sein Betrieb mit jedem XMPP-Account möglich sein. Ich habe einige Jabber-Dienstanbieter ausprobiert, doch immer wieder erhielt ich eine Fehlermeldung beim Verbindungsversuch.

Zufall?
Scheinbar ist dies aber nicht ungewöhnlich denn auch andere Benutzer berichteten, dass sie mit einem x-beliebigem XMPP-Account nicht weiter kamen. Ein Konto beim großen Suchmaschinenbetreiber Google hat dann die Erlösung von stundenlanger Fehlersuche gebracht.

Womit hat der Autor des Artikels SocialVPN getestet? Er verweist darauf, dass es sich um einen "passenden" Server handeln muss, führt allerdings nicht aus, was er mit "passend" meint.


Bewertung: 142 Punkte bei 13 Stimmen.
Den Beitrag bewerten: Gut / Schlecht