Windows Nutzer können die Apps der VPN-Provider nutzen, wenn der gesamten Datenverkehr über einen VPN-Server gehen sollen. Das ist die einfachste Variante, bei der man Konfigurationsfehler vermeidet. Außerdem hat man in dem GUI einfachen Zugriff auf alle Server des Providers und kann mit einem Klick wechseln, um ein Land als Exit zu wählen und Geo-IP Sperren zu umgehen.
IPsec/IKEv2 mit Windows Boardmitteln
Außerdem bringt Windows 10 einige vollständige VPN-Implementierung mit, beispw. IPsec/IKEv2. Man kann sich einen IPsec Client in Einstellungen für "Netzwerk und Internet" zusammenklicken.
Vollständigen Zugriff auf alle Parameter hat man nur mit der
Powershell. Eine Übersicht über alle
VPN Client Cmdlets der Powershell findet man in der Dokumentation von Microsoft.
- Eine IPsec/IKEv2 VPN-Verbindung wird mit folgendem Cmdlet erstellt:
Add-VPNConnection -AllUserConnection -Name "meinVPN"
-ServerAddress 1.2.3.4 -TunnelType "Ikev2" -AuthenticationMethod "EAP"
-RememberCredential
- Es wird eine IPsec VPN Verbindung erstellt, die alle Anwender nutzen können.
- Der Name kann frei gewählt werden. Er dient nur der Anzeige und wird in den folgenden Kommandos verwendet, im die VPN-Verbindung auszuwählen.
- Der VPN-Server hat die IP-Adresse 1.2.3.4. Man kann auch einen DNS Namen angeben. Die Adresse(n) der VPN-Server findet man auf der Webseite des VPN-Providers oder bekommt sie von der IT Abteilung der Firma - je nach Einsatzzweck.
- Die Authentifizierung gegenüber dem Server erfolgt mit Username/Passwort (EAP).
- Die Login Credentials werden beim erfolgreichen Login gespeichert. Wenn man die Login Credentials nicht speichern möchte, kann man den letzten Parameter weglassen.
Standardmäßig vertraut Windows 10 den Certification Authorities (CAs) im Store, um die Identität des VPN-Servers anhand seines X509v3 Zertifikates zu bestätigen.
Unter Umständen kann es nötig sein, das Root Zertifikat von der Webseite des VPN Providers herunter zu laden, wenn der VPN Provider aus Sicherheitsgründen eine eigene CA verwendet statt der bekannten Certification Authorities. Bei ProtonVPN muss man z.B. das Zertifikat der ProtonVPN Root CA herunterladen und mit folgendem Powershell Befehl importieren:
Import-Certificate -FilePath "C:\Users\XYZ\Download\ProtonVPN_ike_root.der" -CertStoreLocation Cert:\LocalMachine\Root
Um Man-in-the-Middle Angriffe auf die VPN-Verbindung zu erschweren, kann man das CA Root Zertifikat festlegen, mit dem das Zertifikat des VPN Server signiert sein muss ("CA Pinning").
Wenn man beispielsweise ProtonVPN verwendet, könnte man nach dem Import des CA Root Zertifikates mit folgenden Powershell Kommandos die CA für diese VPN Verbindung festlegen:
$ca = Get-ChildItem Cert:\LocalMachine\Root | ? Subject -EQ 'CN=ProtonVPN Root CA'
Set-VpnConnection -ConnectionName "meinVPN"
-MachineCertificateIssuerFilter $ca
Der erste Befehl filtert das CA Root Zertifikat der Liste der vertrauenswürdigen CAs. Der zweite Befehl legt fest, dass dieses Root Zertifikat die Identität des VPN-Servers bestätigen muss.
- Ein guter VPN Provider wird seine Server so konfigurieren, das nur sichere Cipher für die Verschlüsselung verwendet werden. Wenn man den Admins des VPN-Servers diesbezüglich nicht vertraut, kann man mit folgendem Cmdlet die VPN Verbindung anpassen anpassen, um sichere Ciphersuiten gemäß NSA Suite-B-128 zu erzwingen:
PS C:\> Set-VpnConnectionIPsecConfiguration
-ConnectionName "meinVPN"
-CipherTransformConstants GCMAES128
-EncryptionMethod AES128
-PfsGroup ECP256 -DHGroup ECP256
-IntegrityCheckMethod SHA256
-AuthenticationTransformConstants SHA256128
- Man kann festlegen, dass bestimmte Anwendungen nur via VPN genutzt werden dürfen. Es wird automatisch das VPN gestartet, wenn eine der definierten Anwendungen gestartet wird. Man definiert die VPN-only Anwendungen mit folgendem Cmdlet:
PS C:\> Add-VpnConnectionTriggerApplication -ConnectionName "meinVPN"
-ApplicationID <Path> | <Package Family Name>
Legacy Anwendungen werde dabei über den Path der EXE-Datei spezifiziert, moderne Anwendungen werden über den Package Family Name referenziert.