HOWTO: Erzwingen einer VPN-Verbindung in öffentlichen Netzwerken

Problemstellung:

Da das Home-Office auch 2023 weiterhin stark verbreitet ist, erreichen uns dazu viele Kundenanfragen. Neben der Performance-Optimierung ist die Verbesserung der Security eines der Top-Themen. Ich möchte in diesem Blog-Artikel meine Ideen für ein VPN-Enforcement in öffentlichen Netzwerken veranschaulichen. Unser Ziel ist es außerhalb des Domänen-Netzwerks sämtlichen Datenverkehr sicher über die Firmenfirewall zu erzwingen. Die Angriffsfläche des mobilen Arbeitsplatzes (z. B. im Home-Office) wird mit der Personal Firewall auf ein Minimum reduziert.

Inspiration:

Der kostenpflichtige WatchGuard VPN Client „WatchGuard IPSec VPN Client“ (Provided by NCP) bietet mit der integrierten Firewall das benötigte Feature. Da der Premium VPN-Client kostenpflichtig und auf IPSEC eingeschränkt ist (der WatchGuard Client unterstützt nur IKEv1), möchte ich einen alternativen Weg aufzeigen.

Lösung:

In meinem Setup nutze ich den Windows Built-In IKEv2 und alt. den SSLVPN Client (OpenVPN Technologie) von WatchGuard. Beide Clients sind kostenfrei erhältlich und der Standard bei WatchGuard Kunden. Als Personal-Firewall konfigurieren wir die Windows-Defender Firewall via Gruppenrichtlinie.

Testaufbau:

  • Windows Domain-Controller (Server 2016)
  • Windows 10 und Windows 11 als Clients
  • VPN-Clients: IKEv2 Windows Built-In und SSLVPN-Client von WatchGuard (12.10)
  • WatchGuard T40 mit Fireware v12.10

Technische Umsetzung:

Sie sollten vorab prüfen, ob die bevorzugte VPN-Verbindung reibungslos funktioniert. Wählen Sie sich über ein öffentliches Netz (z. B. Mobile-Hotspot des Smartphones) in den VPN ein. Mit dem Powershell Befehl „Get-NetConnectionProfile“ können Sie prüfen, ob die Netze als „Public“ oder „DomainAuthenticated“ eingestuft wurden. Im VPN muss der FQDN Ihrer Domäne als DNS-Suffix konfiguriert sein (siehe weiterführende Links).

Notebook im öffentlichen Netz (ohne VPN-Verbindung):

Notebook im öffentlichen Netz (mit VPN-Verbindung)

1. Windows Firewall

a) Grundeinstellung
Die Windows Firewall kann entweder manuell oder auch mit GPO konfiguriert werden. Das folgende Beispiel zeigt die Konfiguration via Gruppenrichtlinie. In meinem Fall nutze ich die Richtlinie „VPN-Enforcement“ und habe diese der passenden OU zugeordnet.

Navigieren Sie in der Computerkonfiguration zu Richtlinien -> Windows Einstellungen -> Sicherheitseinstellungen -> Windows-Firewall mit erweiterter Sicherheit -> Windows-Firewall mit erweiterter Sicherheit und wechseln Sie in den Reiter „Öffentliches Profil“:
-Ändern Sie den Status der Firewall wie auf dem nachfolgenden Screenshot.
-Unter Einstellungen -> Anpassen -> Sollten Sie in der Regelzusammenführung ein „nein“ auswählen -> Somit werden die lokalen Firewall-Policies im Öffentlichen Netz ignoriert.
– Optional: Aktivieren Sie das Logging abgelehnter Pakete über Protokollierung -> Anpassen -> „Pfad und Größenlimit anpassen“

b) Firewall-Policies (ausgehend)
Ausgehend wird nun jeglicher Traffic blockiert. Definieren Sie die notwendigen Ausnahmen wie folgt in dem GPO:

Anbei die Policies in Textform für Copy-Paste. Ich empfehle ein Prefix für den Namen, um auf dem Endgerät die Policies von der Gruppenrichtlinie schnell identifizieren zu können.

Name Profil Programm Remoteadresse Protokoll Lok. Port Rem. Port Erläuterung
GPO_PUBLIC_Allow_DHCP Öffentlich Beliebig Beliebig UDP 68 67 IP Zuweisung per DHCP
GPO_PUBLIC_Allow_DNS-TCP-53 Öffentlich Beliebig Beliebig TCP Beliebig 53 DNS per TCP
GPO_PUBLIC_Allow_DNS-UDP-53 Öffentlich Beliebig Beliebig UDP Beliebig 53 DNS per UDP
GPO_PUBLIC_Allow_TCP_DCs Öffentlich Beliebig IP‘s der DCs TCP Beliebig 53, 88, 135, 389, 445, 636, 1024-65535 Kommunikation zu den DCs für die Zonenerkennung
GPO_PUBLIC_Allow_UDP_DCs Öffentlich Beliebig IP‘s der DCs UDP Beliebig 53, 123, 137, 389,  1024-65535 Kommunikation zu den DCs für die Zonenerkennung
GPO_PUBLIC_Allow_WG-SSLVPN – openvpn.exe Öffentlich %ProgramFiles% (x86)\WatchGuard\WatchGuard Mobile VPN with SSL\openvpn.exe Beliebig Beliebig Beliebig Beliebig WatchGuard SSLVPN via .exe
GPO_PUBLIC_Allow_WG-SSLVPN – wgsslvpnc.exe Öffentlich %ProgramFiles% (x86)\WatchGuard\WatchGuard Mobile VPN with SSL\wgsslvpnc.exe Beliebig Beliebig Beliebig Beliebig WatchGuard SSLVPN via .exe
GPO_PUBLIC_Allow_IKEv2-Destination Öffentlich Beliebig Ext. IP des VPN-Gateways Beliebig Beliebig Beliebig IKEv2 via ext. IP

Optional – weitere ausgehende Policies:

 

Name Profil Programm Remoteadresse Protokoll Lok. Port Rem. Port Erläuterung
GPO_PUBLIC_Allow_ICMPv4 Öffentlich Beliebig Beliebig ICMPv4 Beliebig Beliebig Nützlich für Debugging
GPO_PUBLIC_Allow_
AgentSvc.exe
Öffentlich %ProgramFiles% (x86)\Panda Security\Panda Aether
Agent\AgentSvc.exe
Beliebig Beliebig Beliebig Beliebig WatchGuard Endpoint Security
GPO_PUBLIC_Allow_
PSANHost.exe
Öffentlich %ProgramFiles% (x86)\Panda Security\WAC
\PSANHost.exe
Beliebig Beliebig Beliebig Beliebig WatchGuard Endpoint Security
GPO_PUBLIC_Allow_
PSInfo.exe
Öffentlich %ProgramFiles% (x86)\Panda Security\Panda Aether
Agent\Additional files\PSInfo.exe
Beliebig Beliebig Beliebig Beliebig WatchGuard Endpoint Security
GPO_PUBLIC_Allow_
TeamViewer.exe
Öffentlich %ProgramFiles%\TeamViewer\
TeamViewer.exe
Beliebig Beliebig Beliebig Beliebig TeamViewer Remote-Support
GPO_PUBLIC_Allow_
TeamViewer_Service.exe
Öffentlich %ProgramFiles%\TeamViewer\
TeamViewer_Service.exe
Beliebig Beliebig Beliebig Beliebig TeamViewer Remote-Support

c)Firewall-Polcies (eingehend)
Eingehend wird jeglicher Traffic blockiert. Sie sollten den eingehenden Traffic auf ein Minimum einschränken.

Optional – eingehende Policies:

Name Profil Programm Remoteadresse Protokoll Lok. Port Rem. Port Erläuterung
GPO_Public_Allow_NetworkAccessEnforcement Public %Programfiles% Security\Panda Aether Agent\AgentSvc.exe Beliebig TCP 33000 Beliebig Ermöglicht eine Prüfung des WG-Endpoints durch die Firebox (Network Access Enforcement)
2. IKEv2

Der IKEv2-VPN ist die derzeit performanteste VPN-Technologie auf den Fireboxen, da ein dediziertes Krypto-Modul die Last von der Firewall-CPU nimmt. Das Feature Start-Before-Logon spricht ebenfalls für IKEv2 (passende Blogbeiträge sind am Ende verlinkt). Der Windows Built-In Client hat in unseren Tests ohne weitere Anpassungen problemlos funktioniert.

3. SSLVPN (OpenVPN)

Die Konfiguration des SSLVPN Clients (basiert auf OpenVPN) hat leider einige Herausforderungen mit sich gebracht. Da der Verbindungsaufbau gegenüber dem IKEv2 wesentlich länger dauert und erst nach einiger Zeit die nötigen Routen gesetzt werden, scheitert die Erkennung des Domänen-Netzes durch die Windows-Firewall. Folgende Settings konnten die genannten Probleme beheben.

a) Registry-Einträge um den Negative-DNS Cache zu deaktivieren (Quelle unter weiterführende Links). Bsp. im vorher erstellten Gruppenrichtlinienobjekt:

b) Erstellen von manuellen Routen zu den DCs über das Default-Gateway des SSLVPN-Clients (beschleunigt die Verbindung zum DCs für die Erkennung des Domain-Netzes):
Verbinden Sie sich mit dem SSLVPN-Client und führen Sie einen Doppelklick auf das Icon im Sys-Tray aus. Sie können das Default-Gateway hier auslesen:

Die Routen zum DC setze ich ebenfalls mit der Gruppenrichtlinie:

Führen Sie auf Ihrem Test-Notebook einen Reboot durch und prüfen Sie in der Registry, ob die Werte entsprechend gesetzt wurden. Mit dem Befehl „Route Print“ können Sie über die Windows Konsole prüfen, ob die ständige Route gesetzt wurde.

4. Test

ohne VPN-Verbindung:

mit VPN-Verbindung (Beispiel SSLVPN):

Fazit:

Durch die Personal-Firewall können eingehende Verbindungen zu den mobilen Arbeitsplätzen unterbunden werden. Die ausgehenden Zugriffe sind auf ein Minimum reduziert, außer man leitet den Traffic durch einen sicheren 0-Route-Tunnel. Durch die strikten Firewall-Policies auf den Endpoints wird die Angriffsfläche enorm reduziert und somit die Gefahr durch infizierte Rechner im Public-WLAN oder Home-Office eingedämmt.

Eine mögliche Einschränkung im Gäste-WLAN könnte ein vorgeschaltetes Voucher-System sein, welches durch die Personal-Firewall geblockt wird! Der NCP nutzt hierfür einen dedizierten abgespeckten Browser. Ggf. könnte dieses Setup ein Lösungsansatz sein.

Da es sich in diesem Beitrag um „Laborbedingungen“ handelt, sollte er als Inspiration gesehen werden. Ich empfehle euch vorab mit Test-Maschinen und einer Test-OU euer gewünschtes Setup zu evaluieren.

Weiterführende Links:

2 Kommentare zu “HOWTO: Erzwingen einer VPN-Verbindung in öffentlichen Netzwerken”

  1. Norman

    IKEv2 ist deutlich performanter als SSLVPN, wird aber an manchen orten geblockt
    SSLVPN port 443 geht fast immer durch die firewall/router
    SSLVPN mit UDP bringt etwas bessere performance

    gibt es mit watchguard die möglichkeit über radius die authentifizierung per client certifikat zu machen ?

    1. Johannes Wolfsteiner Post Author

      Hallo und herzlichen Dank für die Hinweise/Fragen,

      wir empfehlen gerne die Kombination aus IKEv2 und SSLVPN, wobei wir IKEv2 wegen der Performance (ded. Crypto-Modul, schlankes Protokoll,…) und Start-Before-Logon bevorzugen. SSLVPN dient als Backup und kann bei Verwendung der identischer Auth-Server/Gruppen dieselben Policies wie IKEv2 verwenden (das Regelwerk bleibt also schlank).
      Client-Zertifikate sind für SSLVPN und IKEv2 leider nicht möglich. Ich empfehle in diesem Fall gerne folgenden adaptiven Schutz: https://www.boc.de/watchguard-info-portal/2022/06/howto-absichern-des-mobile-vpn-zugriffs-via-secure-vpn/

      Gruß

      Johannes Wolfsteiner

Leave a Reply

Your email address will not be published. Required fields are marked *