Synology DiskStation Tutorial: VPN Server (OpenVPN)

In diesem Tutorial geht es darum, auf der DiskStation einen VPN-Server einzurichten und mit einem Client eine Verbindung aufzubauen. Für einen VPN-Server gibt es unterschiedliche Gründe. Hauptgrund ist aber, Zugriff auf das eigene Heimnetzwerk – bzw. Ressourcen und Dienste, die sich in diesem befinden – ohne den Zugang über das Internet öffentlich zu machen. Natürlich kann man den Zugang zu den Ressourcen selbst auch absichern und VPN-Protokolle sind auch nicht ultimativ sicher, aber es ist einfacher mit einem gesicherten Zugang Zugriff auf mehrere Ressourcen zu erlangen, als mehrere Ressourcen einzeln zu sichern.

VPN-Server einrichten

  1. Installiert das VPN-Server-Paket aus dem Paketzentrum.

    VPN-Server-Paket
    VPN-Server-Paket
  2. Öffnet den VPN-Server. Synology stellt 3 Protokolle zur Verfügung: PPTP, OpenVPN und L2TP/IPSec. PPTP ist aufgrund von Sicherheitslücken allerdings nicht zu empfehlen. Nachfolgen beschreibe ich die Einrichtung von OpenVPN.
  3. Öffnet den OpenVPN Tab.
  4. Aktiviert den OpenVPN-Server und nehmt folgende Einstellungen vor (eventuell ist hier schon einiges vor-ausgefüllt):
    1. Dynamische IP Adresse: Der VPN-Client bekommt die IP dynamisch zugewiesen, wählt hier ein Netz aus, das dafür benutzt wird. Die VPN-Clients haben ein anderes Netz als eure LAN, als Netz eignen sich 192.168.x oder 10.0.0. Auch wenn die IP dynamisch vergeben wird, im Normalfall bekommt ihr immer die selbe IP zugewiesen, sofern ihr nicht mehrere Verbindungen gleichzeitig aufbaut. Durch das andere Netz könnt ihr auch sehr gut über die Firewall der DS regeln, ob ein Benutzer – wenn er über das VON verbunden ist – mehr oder weniger darf als wenn er sich direkt im LAN befindet.
    2. Max. Anzahl von Verbindungen: Hier legt ihr fest, wie viele gleichzeitige Verbindungen (egal welcher User) der Server zulässt. Wählt hier den niedrigsten Wert, der euer geplantes Setup ermöglicht. Ihr könnt nur in 5er-Schritten aus einem Drop-Down wählen.
    3. Max. Anzahl von Verbindungen mit dem selbe Konto: Auch hier solltet ihr aus Sicherheitsgründen einen möglichst niedrigen Wert wählen. Nehmt am besten 2 (eine für den Notfall, solltet ihr nur einen Benutzer für VPN vorgesehen haben), solltet ihr nicht gerade mehr benötigen. Hier geht es um gleichzeitige Verbindungen, selbst bei einem Wert von 1 könnt ihr euch immer noch von unterschiedlichen Geräten aus verbinden, nur eben nicht gleichzeitig und mit dem selben User. Generell empfiehlt es sich, für unterschiedliche Aufgaben auch unterschiedliche Benutzer anzulegen, die dann eben nur die Berechtigungen haben, die für diese Aufgabe notwendig ist.
    4. Post: 1194
    5. Protokoll: UDP
    6. Verschlüsselung: Hier könnt ihr den voreingestellten Wert belassen
    7. Authentifizierung: Hier könnt ihr den voreingestellten Wert belassen
    8. Komprimierung verwenden: Hier könnt ihr den voreingestellten Wert belassen
    9. Clients den Server-LAN-Zugriff erlauben: Diese Option ist besonders wichtig, wenn ihr das VPN nicht als Zugang zum Internet verwenden wollt, sondern auf die Ressourcen in eurem Heimnetzwerk zugreifen wollt.
    10. IPv6: Hier könnt ihr den voreingestellten Wert belassen

      OpenVPN-Einstellungen
      OpenVPN-Einstellungen
  5. Übernehmt die Einstellungen und klickt auf „Konfigurationsdateien exportieren“. Diese müsst ihr auf das Gerät kopieren, dass sich mit dem VPN verbinden soll.
  6. Im Tab Übersicht sollte das Icon bei OpenVPN nun blau sein.
  7. Unter Allgemeine Einstellungen könnt ihr ausstellen, dass jeder neu angelegte DSM-Benutzer zugriff auf das VPN erhält. Außerdem könnt ihr auch das Blocken nach x fehlgeschlagenen Authentifizierungsversuchen einstellen.
  8. Unter Privileg könnt ihr festlegen, welche Benutzer Zugriff auf welches VPN-Protokoll erhält.

 

Router konfigurieren

Damit ihr euch von außerhalb mit dem VPN-Server verbinden könnt, müsst ihr den Port (1194) auch freigeben. Dazu müsst ihr den externen Port 1194 auf den internen Port 1194 mappen. Wo genau ihr das bei eurem Router macht, müsst ihr in der Hilfe nachsehen bzw. nach einer Anleitung für euren Router googlen.

Manche Router lassen sich über die DS selbst konfigurieren und zwar in der Systemsteuerung unter Externern Zugriff –> Routerkonfiguration. Probiert, ob sich euer Router hinzufügen lasst. Achtung: Mein Router hat sich zwar hinzufügen und konfigurieren lassen, die Portfreigabe hat aber nicht funktioniert, bei einem Blick in das Webinterface des Routers musste ich feststellen, dass die Einträge in der falschen Tabelle gemacht wurden.

 

Client einrichten

Damit ihr die Verbindung einrichten könnt, muss sich euer Gerät in einem anderen Netzwerk befinden, am besten ihr öffnet mit eurem Smartphone einen Hotspot.

  1. Ladet euch den OpenVPN Client für Windows herunter und installiert ihn.
  2. Kopiert die exportierte Konfiguration nach:
  3. Öffnet jetzt die Konfigurationsdatei (.ovpn-Datei) und nehmt folgende Einstellungen vor:
    1. In der Zeile remote YOUR_SERVER_IP 1194, müsst ihr YOUR_SERVER_IP ersetzen, als IP müsst ihr die externe IP eures Routers/Internetzugangs verwenden und zwar nur dann, wenn ihr eine statische IP von eurem Provider zugewiesen bekommen habt. In den meisten Fällen bekommen private Kunden aber eine dynamische IP. In diesem Fall müsst ihr die DDNS-Adresse – oder falls ihr eine Domain eingerichtet habt, diese – eurer DiskStation verwenden. Wie ihr zu einer DDNS-Adresse kommt bzw eine Domain für eure DS einrichtet, findet ihr in diesem Artikel.
    2. Das wars eigentlich schon, mehr ist nicht notwendig um eine Verbindung zu eurem VPN-Server aufzubauen. Es gibt aber diverse Fälle, in denen ihr die Konfig weiter anpassen wollt bzw. müsst, dazu aber weiter unten mehr.
  4. Ihr könnt euch jetzt mit dem VPN verbinden. Geht sicher, dass ihr mit dem Testrechner außerhalb eures LANs seid (Handy-Hotspot). Macht einen Rechtsklick auf das OpenVPN-Client Icon in der Statusleiste und klickt auf „Connect“. Ihr solltet jetzt Benutzername und Passwort eingeben können. Nachdem die Verbindung aufgebaut wurde minimiert sich das Fenster und ihr habt eine neue IP zugewiesen bekommen (10.0.0.x). Testen das VPN, indem ihr auf eine Ressource/einen Dienst der DS zugreift, den ihr aus dem Netz nicht erreicht (Webserver, DSM, putty, Netzlaufwerk, etc.). Achtet dabei aber, dass ihr den Zugriff nicht durch die DS-Firewall eingeschränkt habt. Erlaubt ihr den Zugriff auf DSM z.B. nur mit IPs aus dem LAN (192.168.1.1 – 192.168.1.255) dann könnt ihr aus dem VPN nicht zugreifen (10.0.0.x). Ihr müsstet dazu die Firewall-Regeln anpassen.

Konfiguration von Sonderfällen

lokalen DNS verwenden/DiskStation als Host richtig auflösen

Diese Anpassung ist dann notwendig, wenn ihr auf Dienste der DiskStation per Hostnamen zugreifen wollt. Wenn ihr im LAN den Hostnamen bzw. die Hostnamen für eure DiskStation nutzen wollt, braucht ihr einen lokalen DNS, wie ihr den einrichtet, könnt ihr ebenfalls in diesem Artikel nachlesen. Wenn ihr den DNS-Server eingerichtet habt, dann habt ihr im Normallfall euren Router so konfiguriert, dass er die lokale IP eurer DS als DNS-Adresse ausliefert, oder ihr habt sie manuell konfiguriert. Seit ihr jetzt mit eurem VPN-Server verbunden, bekommt ihr die DNS-Adresse erst mal nicht mitgeteilt. Ihr könnt zwar auf eurer DS mit der lokalen IP direkt zugreifen, greift ihr aber per Hostnamen/Domain auf die DS zu (z.B. auf den Webserver eurer DS) dann passiert folgendes: der Client will auf www.meinedomain.com zugreifen, er fragt den DNS (die Adresse hängt davon ab von welchem Netz aus ihr euch mit dem VPN-Server verbunden habt, entweder ist es ein lokaler DNS, ein spezifische, konfigurierter DNS oder wie im Falle des Handy-Hotspots, der DNS des Providers) welche IP hinter der Domain steckt. Das Ergebnis hängt davon ab ob ihr den entsprechenden Port in eurem Router freigegeben habt. Wenn ihr nicht gerade eine rein lokale Domain verwendet, sollte der DNS die externe IP eures Routers liefern. Habt ihr dort Port 80 bzw. 443 freigegeben, leitet dieser die Anfrage an eure DS weiter.

So weit so gut, ihr greift zwar jetzt auf die gewünschte Ressource zu, allerdings habt ihr den Umweg über das Internet genommen, anstatt lokal auf eure DS zuzugreifen. Nehmen wir an ihr wollt auf DSM zugreifen und ihr habt den entsprechenden Port nicht freigegeben. Hier werdet ihr mit dem Hostnamen nicht erfolgreich sein, nur die lokale IP wird funktionieren. Es gibt auch noch einen weiteren Fall in dem ihr auf Probleme stoßen werdet. Nehmen wir an, der Webserver eurer DS ist von außen erreichbar aber eine bestimmte Applikation oder Seite auf die ihr den Zugriff nur aus dem lokalen Netz und dem VPN-Netz erlaubt. Ihr verbindet euch mit dem VPN und ruft die Seite per Domain auf und stellt fest, der Zugriff wird euch verweigert. Ein Blick in das Access-Log des Webservers wird euch zeigen, der Zugriff ist nicht mit der VPN-IP erfolgt sondern mit der externen IP eures Routers. Warum das so ist, habe ich oben erklärt. Obwohl sich VPN-Server und Webserver auf dem selben Gerät befinden, geht ihr den Umweg über das Internet.

Hier 2 Beispiele:

  1. Ihr habt PHPMyAdmin installiert, der Webserver eurer DiskStation ist aber nicht aus dem Internet erreichbar. Ihr habt eine lokale Domain die auf eure DiskStation zeigt (meinedomain.lan –> 192.168.1.10). Ihr ruft PHPMyAdmin im LAN mit meinedomain.lan/phpmyadmin auf. Versucht ihr das selbe, wärend ihr mit dem VPN verbunden seid, erhaltet ihr eine Fehlermeldung, ihr werdet über das Internet geleitet und dort kennt kein DNS meinedomain.lan. Versucht ihr 192.168.1.10/phpmyadmin kommt ihr sehr wohl auf die Seite.
  2. Ihr habt PHPMyAdmin installiert, der Webserver eurer DiskStation ist vom Internet aus erreichbar. Ihr habt eine Domain die auf eure DiskStation zeigt (meinedomain.com –> externe IP eures Netzes/Routers), ihr habt auf eurer DS den DNS-Server laufen, der die Domain im LAN auf die lokale IP der DS auflöst (meinedomain.com –> 192.168.1.10).
    Ihr wollt aber, dass der PHPMyAdmin nur vom LAN und dem VPN aus aufrufbar ist. Dafür erstellt ihr eine .htaccess. Im Lan könnt ihr den PMA (meinedomain.com/phpmyadmin) aufrufen, vom Internet aus nicht, der Versuch über VPN scheitert ebenfalls. Die .htaccess erlaubt IPs aus dem lokalen Netz und aus dem VPN-Netz. Aber der Zugriff erfolgt trotz VPN mit einer IP aus dem Internet.

Damit ihr diesen Umweg nicht mehr geht und euch somit Zeit erspart bzw. die Verbindungsgeschwindigkeit nicht zusätzlich verringert wird und auch eure Zugriffsbeschränkungen (basierend auf dem VPN-Netz bzw IP-Adressen daraus) funktioniert, müsst ihr 2 kleine Änderungen vornehmen. Achtung: Ihr müsst den DNS-Server auf eurer DiskStation laufen haben und ihr so konfiguriert haben, dass er den oder die Domains mit der lokalen IP eurer DS auflöst. Wie das geht, findet ihr in diesem Artikel.

  1. Anpassung im DSM
    • Loggt euch im DSM ein.
    • Öffnet die Systemsteuerung.
    • Geht auf Netzwerk.
    • Im Tab Allgemein findet ihr den Punkt „DNS Server manuell konfigurieren“, setzt dort den Haken und tragt bei „Bervorzugter DNS-Server“ die lokale IP eurer DiskStation ein (z.B. 192.168.x.x) und bei „Alternativer DNS-Server“ tragt ihr entweder die lokale IP eures Routers ein, oder die IP eines anderen DNS-Servers, falls ihr einen nutzt.

      DNS-Server-Einstellungen
      DNS-Server-Einstellungen
  2. Anpassung der VPN-Config
    • Öffnet eure Open-VPN-Konfiguration.
    • Sucht den Punkt #dhcp-option DNS DNS_SERVER_IP.
    • Löscht das #.
    • Ersetzt DNS_SERVER_IP mit der lokalen IP eurer DiskStation.

Wenn ihr jetzt mit dem VPN verbunden seid und auf eine Domain zugreift, die auf eure DiskStation zeigt, werdet ihr lokal weitergeleitet und nicht mehr über das Internet.

Internetzugriff über das VPN-Netz

Standardmäßig wird der VPN-Tunnel nur genutzt, um auf Ressourcen innerhalb des VPN-Netzes zuzugreifen. Der Zugriff auf das Internet erfolgt weiterhin über das Internet-Gateway des Netzes, in dem sich der Client befindet. Ist der Internet-Zugriff in diesem Netz eingeschränkt, so kann man den kompletten Traffic durch den VPN-Tunnel leiten. Jede Anfrage an das Internet wird dann an den VPN-Server geschickt, der diese dann an sein Internet-Gateway (euren Router) weiterleitet und von dort weiter ins Internet. Antworten werden ebenfalls an euren Router zuhause geschickt der sie dann über den VPN-Server und den VPN-Tunnel an den Client weitergibt.

Damit das passiert, müsst ihr in der Konfigurationsdatei (.ovpn) die Zeile #redirect-gateway def1 suchen und das # löschen.

Weitere Optionen

Natürlich ist das nicht alles an Optionen, die ihr habt. In der Konfigurationsdatei sind einige Basis-Flags. OpenVPN bietet aber noch viel mehr, im Reference Manual werdet ihr fündig.

 

Wenn ihr euch erfolgreich mit eurem VPN verbunden habt, könnt ihr euch jetzt Gedanken zum Thema Sicherheit machen. Überlegt euch, welche User Zugriff auf das VPN haben sollen, welche Aufgaben ihr mit dem VPN erledigen wollt und ob ihr dazu zusätzliche User verwenden wollt. Überlegt euch auch welche Ressourcen bzw. Dienste eurer DiskStation ihr über VPN nutzen wollt. Passt die Firewall eurer DiskStation entsprechend an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.