Synology L2TP-VPN mit Windows

Der Synology VPN Server bietet eine einfache und vor allem kostenlose Möglichkeit gesicherte Zugänge ins lokale Netzwerk herzustellen.

Der größte Vorteil ist, dass auf einem Windows-System keine zusätzliche Software installiert werden muss, es genügen ein oder zwei Einstellungen in der Registry und die Konfiguration des VPN-Tunnels per PowerShell. Vor allem wird die Geschwindigkeit des Windows Systems nicht beeinflusst, wie das zum Beispiel bei einem Lancom Advanced VPN-Client der Fall ist, mit dem sich der Startvorgang von Windows deutlich verlängert.

In diesem Blog geht es um die Einrichtung des VPN unter Windows. Damit der VPN-Server funktioniert, müssen die folgenden Punkte berücksichtigt werden:

  • Öffentliche IPv4-Adresse des Routers muss über einen DynDNS-Dienst erreichbar sein. Auch wenn eine feste IP-Adresse vom Provider vorhanden ist, empfehle ich deren Maskierung über einen DNS-Namen!
  • Der VPN-Server muss auf dem Synology NAS installiert und konfiguriert sein
  • Die Ports 500, 4500 und 1701 müssen für UDP vom Router auf das Synology NAS weitergeleitet werden

Hier der Screenshot einer FRITZ!Box mit den Weiterleitungen für L2TP, auf die interne IP-Adresse des Synology NAS (und damit dem VPN-Server) mit 172.16.16.13

image

Einmalig zu konfigurierende Einstellungen für das L2TP-VPN unter Windows

Microsoft beschreibt in diesem Artikel, mögliche Werte für die Konfiguration. Nach meiner Erfahrung befinden sich fast immer, sowohl der VPN-Client (also das Windows System) als auch das Synology NAS (und damit der VPN-Server) hinter einer mit NAT umgesetzten Umgebung. Darum habe ich den Wert 2 als Default in meinem Skript verwendet.

PowerShell L2TP-VPN Registry-Setting

Auszuführen ist der Code mit erweiterten Rechten in einer PowerShell-Sitzung (elevated), was aber im Skript ebenfalls abgeprüft wird. Nach dem Setzen des Wertes ist ein Neustart von Windows sinnvoll. Danach können von jedem Benutzer eigene, auf L2TP basierende VPN-Tunnels erstellt werden.

Erstellen eines L2TP basierten VPN-Tunnels

Der VPN-Zugang kann natürlich in den VPN-Einstellungen von Windows “durchgeklickt” werden, vor allem bei mehreren Benutzern und einfacher, ist die Verwendung der PowerShell und des folgenden Skriptes.

image

Zur Ausführung des Skriptes sind die folgenden Punkte zu beachten.

  • Das Skript wird im Benutzer-Kontext ausgeführt und ist individuell für jeden Benutzer anzupassen
  • Dafür sind ist die Variabel $User entweder mit einem Benutzer aus der Domäne zu belegen oder mit einem lokalen Benutzer auf dem Synology NAS. Ist ein AD / Domäne vorhanden, empfiehlt es sich diese zu verwenden, da dann das gleiche Passwort wie zur Anmeldung verwendet werden kann. Darüber hinaus bitte immer nur den Benutzernamen eintragen, die Domäne ist nicht notwendig

Generell sind für alle Benutzer die einen Zugang per VPN erhalten sollen, die folgenden Einstellungen zu treffen:

  • $ServerAddress = Ein über DNS (DynDNS) auflösbarer Name der vom Provider zugewiesenen IPv4 Adresse, die Konfiguration des DyDns-Providers kann man auf dem Router, dem Synology NAS oder einem anderen Endgerät durchführen
  • $L2tpPsk = Der im Synology VPN-Server hinterlegte Pre-Shared Key

Der Pre-Shared Key ist auf dem VPN-Server hinterlegt und muss auch in allen Konfigurationen auf den Endgeräten verwendet werden, er ist also immer gleich. Wer bei der Einrichtung einen hinreichend langen Key erstellen will, kann sich der auskommentierten Zeile 13 und PowerShell bedienen.

image

Damit ist die Konfiguration auch schon fertig, nun stellt sich nur die Frage was tun, wenn der Zugang nicht funktioniert?

Update 01.05.2024

Will man ein L2TP-VPN von einem Apple IOS Device nutzen (iPad Pro), dann darf der Pre-Shared Key nicht länger als 128 Zeichen sein. Thanks Apple for this unnecessary limitation. Sonst klappt die Verbindung nicht!

Das hat übrigens nichts mit diesen Support-Artikel von Apple zu tun. Dieser besagt lediglich, dass die Option Enable SHA-254 compatible mode (96Bit) nicht aktiviert werden darf.

Troubleshooting, Allgemeine Checks (DNS und Ports)

Ein korrekt über das Skript angelegter VPN-Zugang taucht als zusätzlicher WAN Miniport (L2TP) Adapter in den Netzwerkverbindungen auf, konfiguriert man mehrere Zugänge, dann gibt es auch mehrere Netzwerkverbindungen.

image

Prüfen ob von Windows aus der Synology VPN Server per nslookup auflösbar ist.

Nochmalige Prüfung on die drei UDP-Ports wirklich auf das NAS zeigen und ob auch wirklich UDP und nicht TCP verwendet wurde. Die Portnummern sind, nochmals zur Vollständigkeit 500, 4500 und 1701

Troubleshooting, Fehler 787

Für den Fall, dass der Aufbau des VPNs mit einem Fehler 787 fehlschlägt, ist ebenfalls in einer PowerShell-Sitzung mit erweiterten Rechten der unten stehende Code zur Ausführung zu bringen. Die dort beschriebene Änderung hat Microsoft ebenfalls in einem Artikel dokumentiert.

image

Bisher musste ich diesen Wert nur 2x setzen, darum habe ich ihn im als Download verfügbaren Skript deaktiviert.

Troubleshooting, die Namensauflösung durch den Tunnel funktioniert nicht

Bei einem aufgebauten VPN-Tunnel funktioniert die Auflösung der dahinter liegenden DNS-Namen nicht. Der Grund dafür ist relativ einfach, Windows verwendet den DNS-Server mit dem Netzwerkadapter mit der kleinsten InterfaceMetric.

image

Wird nun der VPN-Verbindung die niedrigste InterfaceMetric zugewiesen, dann gehen die Abfragen des DNS durch den Tunnel.

image

Abfragen und ändern der InterfaceMetric kann man über die folgenden beiden PowerShell-Befehle erreichen.

image

Damit wird der, auf dem VPN-Server konfigurierte DNS verwendet und eine Verwendung und Abfrage von Namen als FQDN ist möglich.

Die niedrige InterfaceMetric für den VPN-Netzwerkadapter spielt im Betrieb ohne VPN keine Rolle, da dann der Netzwerkadapter deaktiviert ist.

Für und wider dem Synology VPN Server

Der Synology VPN Server hat eine Reihe von Eigenschaften die bekannt sein sollten, bevor man sich für diese Lösung entscheidet.

  1. Es ist nicht möglich ein Site-2-Site VPN zu erstellen, dass behält Synology seinen Routern vor
  2. Die Verwendung von DNS-Splittunneling ist nicht möglich, auch das geht nur mit Synology Routern (oder natürlich alternativen VPN-Lösungen)
  3. Wireguard ist schneller

Warum verwende ich dann trotzdem den Synology VPN Server?

  • Er ist kostenlos
  • Windows ist als VPN-Client einfach per PowerShell zu konfiguieren und es muss kein Agent installiert werden. Damit entfallen Updates und es werden Sicherheitsrisiken reduziert

Enjoy it, b!