Konfigurieren von VPN-Gerätetunneln in Windows 10

Gilt für: Windows Server 2022, Windows Server 2019, Windows 10 Version 1709

Always On VPN bietet Ihnen die Möglichkeit, ein dediziertes VPN-Profil für Geräte oder Computer zu erstellen. Always On-VPN-Verbindungen umfassen zwei Typen von Tunneln:

  • Der Gerätetunnel verbindet sich mit angegebenen VPN-Servern, bevor benutzer sich beim Gerät anmelden. Ein Gerätetunnel wird für Verbindungsszenarios vor der Anmeldung und zur Geräteverwaltung verwendet.

  • Der Benutzertunnel stellt nur eine Verbindung her, nachdem sich ein Benutzer beim Gerät anmeldet. Mit dem Benutzertunnel können Benutzer über VPN-Server auf Organisationsressourcen zugreifen.

Im Gegensatz zum Benutzertunnel, der sich nur nach der Anmeldung eines Benutzers mit dem Gerät oder Computer verbindet, kann der VPN-Tunnel eine Verbindung herstellen, bevor sich der Benutzer anmeldet. Sowohl Gerätetunnel als auch Benutzertunnel funktionieren unabhängig mit ihren VPN-Profilen, können gleichzeitig verbunden werden und können unterschiedliche Authentifizierungsmethoden und andere VPN-Konfigurationseinstellungen entsprechend verwenden. Der Benutzertunnel unterstützt SSTP und IKEv2, und Gerätetunnel unterstützt IKEv2 nur ohne Unterstützung für SSTP-Fallback.

Der Benutzertunnel wird in domänenverschlossenen, nicht domänenbezogenen (Arbeitsgruppen) oder Azure AD eingebundenen Geräten unterstützt, um Sowohl Unternehmens- als auch BYOD-Szenarien zu ermöglichen. Es ist in allen Windows Editionen verfügbar, und die Plattformfeatures sind für Dritte über die UWP-VPN-Plug-In-Unterstützung verfügbar.

Der Gerätetunnel kann nur auf Geräten mit Domänenmitgliedschaften konfiguriert werden, die Windows 10 Enterprise oder Education Version 1709 oder höher ausführen. Es gibt keine Unterstützung für die Kontrolle von Drittanbietern des Gerätetunnels. Der Gerätetunnel unterstützt nicht die Verwendung der Tabelle "Name Resolution Policy" (NRPT). Der Gerätetunnel unterstützt keinen Force-Tunnel. Sie müssen ihn als Geteilten Tunnel konfigurieren.

Geräte-Tunnel Anforderungen und Features

Sie müssen die Computerzertifikatauthentifizierung für VPN-Verbindungen aktivieren und eine Stammzertifizierungsstelle für die Authentifizierung eingehender VPN-Verbindungen definieren.

$VPNRootCertAuthority = "Common Name of trusted root certification authority"
$RootCACert = (Get-ChildItem -Path cert:LocalMachine\root | Where-Object {$_.Subject -Like "*$VPNRootCertAuthority*" })
Set-VpnAuthProtocol -UserAuthProtocolAccepted Certificate, EAP -RootCertificateNameToAccept $RootCACert -PassThru

Device Tunnel Features and Requirements

VPN-Gerät Tunnel Konfiguration

Im folgenden Beispielprofil-XML finden Sie eine gute Anleitung für Szenarien, in denen nur vom Client initiierte Pulls über den Gerätetunnel erforderlich sind. Datenverkehrsfilter werden verwendet, um den Gerätetunnel nur auf den Datenverkehr zu verwalten. Diese Konfiguration eignet sich gut für Windows Update, typische Gruppenrichtlinie (GP) und Microsoft Endpoint Configuration Manager Updateszenarien sowie VPN-Konnektivität für die erste Anmeldung ohne zwischengespeicherte Anmeldeinformationen oder Kennwortzurücksetzungsszenarien.

Bei serverinitiierten Pushfällen wie Windows Remoteverwaltung (WinRM), Remote GPUpdate und Remote-Configuration Manager Updateszenarien müssen Sie eingehenden Datenverkehr im Gerätetunnel zulassen, sodass Datenverkehrsfilter nicht verwendet werden können. Wenn Sie im Gerätetunnelprofil Datenverkehrsfilter aktivieren, verweigert das Gerät Tunnel eingehenden Datenverkehr. Diese Einschränkung wird in zukünftigen Versionen entfernt.

Beispiel für VPN-ProfileXML

Nachfolgend sehen Sie das Beispiel für VPN-ProfileXML.

<VPNProfile>
  <NativeProfile>
<Servers>vpn.contoso.com</Servers>
<NativeProtocolType>IKEv2</NativeProtocolType>
<Authentication>
  <MachineMethod>Certificate</MachineMethod>
</Authentication>
<RoutingPolicyType>SplitTunnel</RoutingPolicyType>
 <!-- disable the addition of a class based route for the assigned IP address on the VPN interface -->
<DisableClassBasedDefaultRoute>true</DisableClassBasedDefaultRoute>
  </NativeProfile>
  <!-- use host routes(/32) to prevent routing conflicts -->
  <Route>
<Address>10.10.0.2</Address>
<PrefixSize>32</PrefixSize>
  </Route>
  <Route>
<Address>10.10.0.3</Address>
<PrefixSize>32</PrefixSize>
  </Route>
<!-- traffic filters for the routes specified above so that only this traffic can go over the device tunnel -->
  <TrafficFilter>
<RemoteAddressRanges>10.10.0.2, 10.10.0.3</RemoteAddressRanges>
  </TrafficFilter>
<!-- need to specify always on = true -->
  <AlwaysOn>true</AlwaysOn>
<!-- new node to specify that this is a device tunnel -->
 <DeviceTunnel>true</DeviceTunnel>
<!--new node to register client IP address in DNS to enable manage out -->
<RegisterDNS>true</RegisterDNS>
</VPNProfile>

Abhängig von den Anforderungen jedes bestimmten Bereitstellungsszenarios ist ein weiteres VPN-Feature, das mit dem Gerätetunnel konfiguriert werden kann, die vertrauenswürdige Netzwerkerkennung ist.

 <!-- inside/outside detection -->
  <TrustedNetworkDetection>corp.contoso.com</TrustedNetworkDetection>

Bereitstellung und Testen

Sie können Gerätetunnel mithilfe eines Windows PowerShell Skripts konfigurieren und die Windows Verwaltungsinstrumentation (WMI)-Brücke verwenden. Der Always On VPN-Gerätetunnel muss im Kontext des LOKALEN SYSTEMkontos konfiguriert werden. Dazu ist es erforderlich, PsExec, eine der psTools , die in der Sysinternals-Suite von Dienstprogrammen enthalten sind, zu verwenden.

Richtlinien zum Bereitstellen eines Geräts (.\Device) im Vergleich zu einem Benutzerprofil (.\User) finden Sie unter Verwenden von PowerShell-Skripts mit dem WMI-Brückeanbieter.

Führen Sie den folgenden Windows PowerShell Befehl aus, um sicherzustellen, dass Sie ein Geräteprofil erfolgreich bereitgestellt haben:

Get-VpnConnection -AllUserConnection

Die Ausgabe zeigt eine Liste der geräteweiten VPN-Profile an, die auf dem Gerät bereitgestellt werden.

Beispiel für Windows PowerShell Skript

Sie können das folgende Windows PowerShell Skript verwenden, um das Erstellen ihres eigenen Skripts für die Profilerstellung zu unterstützen.

Param(
[string]$xmlFilePath,
[string]$ProfileName
)

$a = Test-Path $xmlFilePath
echo $a

$ProfileXML = Get-Content $xmlFilePath

echo $XML

$ProfileNameEscaped = $ProfileName -replace ' ', '%20'

$Version = 201606090004

$ProfileXML = $ProfileXML -replace '<', '&lt;'
$ProfileXML = $ProfileXML -replace '>', '&gt;'
$ProfileXML = $ProfileXML -replace '"', '&quot;'

$nodeCSPURI = './Vendor/MSFT/VPNv2'
$namespaceName = "root\cimv2\mdm\dmmap"
$className = "MDM_VPNv2_01"

$session = New-CimSession

try
{
$newInstance = New-Object Microsoft.Management.Infrastructure.CimInstance $className, $namespaceName
$property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ParentID", "$nodeCSPURI", 'String', 'Key')
$newInstance.CimInstanceProperties.Add($property)
$property = [Microsoft.Management.Infrastructure.CimProperty]::Create("InstanceID", "$ProfileNameEscaped", 'String', 'Key')
$newInstance.CimInstanceProperties.Add($property)
$property = [Microsoft.Management.Infrastructure.CimProperty]::Create("ProfileXML", "$ProfileXML", 'String', 'Property')
$newInstance.CimInstanceProperties.Add($property)

$session.CreateInstance($namespaceName, $newInstance)
$Message = "Created $ProfileName profile."
Write-Host "$Message"
}
catch [Exception]
{
$Message = "Unable to create $ProfileName profile: $_"
Write-Host "$Message"
exit
}
$Message = "Complete."
Write-Host "$Message"

Weitere Ressourcen

Nachfolgend sind weitere Ressourcen aufgeführt, die Ihnen bei der VPN-Bereitstellung helfen.

VPN-Clientkonfigurationsressourcen

Nachfolgend sind VPN-Clientkonfigurationsressourcen aufgeführt.

Ressourcen des Remotezugriffsservergateways

Nachfolgend sind Remotezugriffsserver-Gatewayressourcen (RAS)-Gatewayressourcen aufgeführt.

Wichtig

Wenn Sie Device Tunnel mit einem Microsoft RAS-Gateway verwenden, müssen Sie den RRAS-Server so konfigurieren, dass die IKEv2-Computerzertifikatauthentifizierung unterstützt wird, indem Sie die IKEv2-Authentifizierungsmethode zulassen, wie hier beschrieben. Sobald diese Einstellung aktiviert ist, wird dringend empfohlen, dass das Cmdlet "Set-VpnAuthProtocol PowerShell" zusammen mit dem optionalen Parameter "RootCertificateNameToAccept " verwendet wird, um sicherzustellen, dass RRAS IKEv2-Verbindungen nur für VPN-Clientzertifikate zulässig sind, die mit einer explizit definierten internen/privaten Stammzertifizierungsstelle verknüpft sind. Alternativ sollte der Speicher für vertrauenswürdige Stammzertifizierungsstellen auf dem RRAS-Server geändert werden, um sicherzustellen, dass er keine öffentlichen Zertifizierungsstellen enthält, wie hier erläutert. Ähnliche Methoden müssen möglicherweise auch für andere VPN-Gateways berücksichtigt werden.