Aus Raspberry Pi Geek 02/2020

Dead Simple VPN bohrt spielend leicht einen Tunnel durchs Netz (Seite 2)

Listing 2

$ sudo dsvpn server vpn.key auto
Interface: [tun0]
net.ipv4.ip_forward = 1
Listening to *:443
$ sudo dsvpn server vpn.key auto 4443
Interface: [tun0]
net.ipv4.ip_forward = 1
Listening to *:4443

Weitergeleitet

In einem typischen Heimnetzwerk sorgt ein WLAN-Router dafür, dass die angebundenen Rechner den Weg ins Internet finden. Der umgekehrte Weg, vom Internet auf einen bestimmten Rechner im LAN, ist jedoch nicht ohne Weiteres möglich: Unaufgefordert zugesandte Anfragen aus dem Internet lässt der WLAN-Router in der Regel einfach fallen.

Für das VPN-Netzwerk müssen Sie daher eine Port-Weiterleitung vom WLAN-Router auf den mit DSVPN ausgestatteten Rechner einrichten. Das Vorgehen unterscheidet sich von Hersteller zu Hersteller kaum; wir konzentrieren uns auf eine Fritzbox mit aktueller Firmware in der Version 7.10. Öffnen Sie mit der URL http://fritz.box das Administrationsbackend in einem Webbrowser. Dort gelangen Sie über Internet | Freigaben in den Reiter Portfreigaben.

Mit einem Klick auf die Option Gerät für Freigaben hinzufügen am Ende der Seite starten Sie einen Assistenten, der Ihnen bei der folgenden Konfiguration hilft. Zuerst wählen Sie das passende Gerät aus, danach klicken Sie auf den Schalter Neue Freigabe. Im Dialog ändern Sie nun die Auswahl auf Portfreigabe und tragen die Daten wie in Abbildung 2 gezeigt ein. Die Bezeichnung dürfen Sie frei wählen, beim Port müssen Sie sich an dem beim Aufruf von dsvpn angegebenen Port orientieren.

Abbildung 2: In einem Heim- oder Büronetzwerk geht in Sachen VPN ohne eine Port-Weiterleitung vom Router auf den VPN-Server nichts. Typisch für ein VPN ist der Port 4443. Möchten Sie hingegen aus restriktiven Netzen ausbrechen, bietet sich Port 443 an.

Abbildung 2: In einem Heim- oder Büronetzwerk geht in Sachen VPN ohne eine Port-Weiterleitung vom Router auf den VPN-Server nichts. Typisch für ein VPN ist der Port 4443. Möchten Sie hingegen aus restriktiven Netzen ausbrechen, bietet sich Port 443 an.

Verbindungsaufbau

Zur Kontrolle rufen Sie ip addr show tun0 auf. Dessen Ausgabe sollte zeigen, dass es nun mit tun0 ein neues Netzwerkgerät gibt, und auch dessen IP-Adresse ausgeben (Listing 3). Ob die Port-Weiterleitung funktioniert, können Sie mit Seiten wie Canyouseeme.org überprüfen (Abbildung 3). Die Seite sollte automatische Ihre externe IP-Adresse ermitteln, sodass Sie nur noch die Portnummer (hier 4443) korrigieren müssen. Ergibt die Überprüfung Success, können Sie zum nächsten Schritt übergehen.

Listing 3

$ ip addr show tun0
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none
    inet 192.168.192.254 peer 192.168.192.1/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 64:ff9b::c0a8:c0fe peer 64:ff9b::c0a8:c001/96 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::f7eb:4642:e501:e5f6/64 scope link stable-privacy
       valid_lft forever preferred_lft forever
Abbildung 3: &Uuml;ber die Webseite Canyouseeme.org pr&uuml;fen Sie, ob die Port-Weiterleitung funktioniert. Beachten Sie, dass dabei auch der DSVPN-Server aktiv sein muss.

Abbildung 3: Über die Webseite Canyouseeme.org prüfen Sie, ob die Port-Weiterleitung funktioniert. Beachten Sie, dass dabei auch der DSVPN-Server aktiv sein muss.

Mit dem Kommando aus Listing 4 aktivieren Sie für einen ersten Test die VPN-Verbindung aus einem entfernten Netz heraus zu Ihrem Rechner nach Hause, etwa über einen vom Handy aufgespannten Hotspot. Danach sollten Sie umgehend alle Ressourcen des Heim- oder Büronetzes auch von unterwegs nutzen können. Dazu gehören zum Beispiel Dateifreigaben oder Netzwerklaufwerke (Abbildung 4). Die Verbindung bleibt so lange erhalten, bis Sie DSVPN mit [Strg]+[C] auf dem Server oder dem Client wieder beenden.

Listing 4

$ sudo dsvpn client vpn.key Externe IP 4443
Abbildung 4: Nur ein Beispiel f&uuml;r den Nutzen einer VPN-Verbindung: Hier greifen wir &uuml;ber den Hotspot eines Smartphones aus dem Mobilfunknetz heraus auf die Netzwerkfreigaben im heimischen Netzwerk zu.

Abbildung 4: Nur ein Beispiel für den Nutzen einer VPN-Verbindung: Hier greifen wir über den Hotspot eines Smartphones aus dem Mobilfunknetz heraus auf die Netzwerkfreigaben im heimischen Netzwerk zu.

Möchten Sie das DSVPN regelmäßig verwenden, empfiehlt es sich, noch eine DynDNS-Adresse zu holen und den Dienst auf dem WLAN-Router einzurichten. Dadurch erreichen Sie Ihr Netz nicht mehr nur über die sich immer wieder ändernde Internet-IP, sondern über eine sprechende URL. Die meisten Router-Hersteller integrieren eine entsprechende Funktion in die Konfigurationsoberfläche; bei einer Fritzbox finden Sie die Einstellungen unter Internet | Freigaben | DynDNS. Viele DynDNS-Anbieter verlangen allerdings eine monatliche Gebühr. Es gibt jedoch auch engagierte Services wie etwa den DynDNS Service von Ddnss.de, der bis zu fünf Hosts kostenlos anbietet [3].

Automatisieren

Dead Simple VPN bleibt in vielen Bereichen seinem Motto treu: Es gibt weder ein Werkzeug zum Erstellen der Schlüsseldatei noch eine Benutzerverwaltung. Der Entwickler hält sich auch dabei zurück, das Programm als Dienst in das System zu integrieren. Zu Systemd schreibt er auf der Homepage des Projekts: “Ich werde nie und nimmer irgendwelche Funktionsvorschläge akzeptieren, die irgendetwas mit Systemd zu tun haben”. Seine Abneigung gegen das Init-System bedeutet allerdings nicht, dass sich DSVPN nicht mit Systemd verwalten ließe: Man muss nur die entsprechenden Service-Dateien von Hand anlegen.

Basierend auf den Vorlagen des griechischen Entwicklers Evaggelos Balaskas ist das schnell gemacht [4]. Legen Sie dazu unter /etc/systemd/system/ die Dateien dsvpn_server.service und dsvpn_client.service an, und befüllen Sie sie mit den Inhalten aus Listing 5 (Server) und Listing 6 (Client). Vergessen Sie dabei nicht, den Pfad zur Schlüsseldatei, die IP-Adresse des Servers sowie die Port-Nummer des vom WLAN-Router auf den DSVPN-Server weitergeleiteten Ports anzupassen.

Listing 5

[Unit]
Description=Dead Simple VPN - Server
[Service]
ExecStart=/usr/local/sbin/dsvpn server /root/vpn.key auto 4443
Restart=always
RestartSec=15
[Install]
WantedBy=network.target

Listing 6

[Unit]
Description=Dead Simple VPN - Client
[Service]
ExecStart=/usr/local/sbin/dsvpn client /root/vpn.key IP-Adresse 4443
[Install]
WantedBy=network.target

Danach müssen Sie die Systemd-Konfiguration mit dem Kommando sudo systemctl daemon-reload auf dem Client wie auch dem Server aktualisieren. Anschließend lässt sich die Verbindung von Hand oder bei Bedarf auch automatisch während des Bootens aktivieren (Listing 7). Tauschen Sie das enable in den letzten zwei Kommandos gegen disable, schalten Sie den automatisierten Start wieder ab.

Listing 7

### VPN-Verbindung von Hand aufbauen:
$ sudo systemctl restart dsvpn_server.service
$ sudo systemctl restart dsvpn_client.service
### Bei jedem Start VPN automatisch aktivieren:
$ sudo systemctl enable dsvpn_server.service
$ sudo systemctl enable dsvpn_client.service

Firewall

Ist man auf größtmögliche Privatsphäre angewiesen, gilt es darauf zu achten, dass keine Daten am VPN vorbei ins Internet tröpfeln oder “leaken”, wie der Netzwerker sagt. Dazu braucht es jedoch eine Firewall, die sämtliche am VPN vorbeiströmenden Datenpakete abfängt. In einem Blog-Beitrag beschreibt der bereits erwähnte Entwickler Evaggelos Balaskas, wie sich eine solche mit Iptables umsetzen lässt [6].

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben