Delen via


VPN-apparaattunnels configureren in Windows-client

AlwaysOn VPN biedt u de mogelijkheid om een toegewezen VPN-profiel te maken voor een apparaat of computer. AlwaysOn VPN-verbindingen bevatten twee typen tunnels:

  • Device tunnel connects to specified VPN servers before users log on to the device. Scenario's voor connectiviteit voor aanmelding en beheer van apparaten gebruiken de apparatentunnel.

  • User tunnel connects only after a user logs on to the device. Gebruikerstunnel biedt gebruikers toegang tot organisatiebronnen via VPN-servers.

Unlike user tunnel, which only connects after a user logs on to the device or machine, device tunnel allows the VPN to establish connectivity before the user logs on. Both device tunnel and user tunnel operate independently with their VPN profiles, can be connected at the same time, and can use different authentication methods and other VPN configuration settings as appropriate. Gebruikerstunnel ondersteunt SSTP en IKEv2 en apparaattunnel ondersteunt ALLEEN IKEv2 zonder ondersteuning voor SSTP-terugval.

Gebruikerstunnel wordt ondersteund op apparaten die lid zijn van een domein, niet aan een domein zijn toegevoegd (werkgroep), of die verbonden zijn met Microsoft Entra ID, om zowel bedrijfs- als BYOD-scenario's mogelijk te maken. Het is beschikbaar in alle Windows-edities en de platformfuncties zijn beschikbaar voor derden via UWP VPN-invoegtoepassingsondersteuning.

Apparaattunnel kan alleen worden geconfigureerd op apparaten die lid zijn van een domein waarop Windows 10 Enterprise of Education versie 1709 of hoger wordt uitgevoerd. Er is geen ondersteuning voor het beheer van derden over de apparaattunnel. Als er alleen een apparaattunnel wordt gebruikt op een systeem, kunt u een NRPT (Name Resolution Policy Table) configureren. Als een gebruikerstunnel en een apparaattunnel op een systeem worden gebruikt, kunt u de NRPT-tabel (Name Resolution Policy) alleen gebruiken voor de gebruikerstunnel.

Apparaattunnel biedt geen ondersteuning voor Force-tunnel. U moet deze configureren als splitstunnel. |

Prerequisites

U moet verificatie van computercertificaten voor VPN-verbindingen inschakelen en een basiscertificeringsinstantie definiëren voor het verifiëren van binnenkomende VPN-verbindingen.

$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

Functies en vereisten voor apparaattunnels

Configuratie van VPN-apparaattunnel

De voorbeeldprofiel-XML hieronder biedt goede richtlijnen voor scenario's waarbij alleen door clients geïnitieerde pulls nodig zijn via de apparaattunnel. Verkeersfilters worden gebruikt om de apparaattunnel alleen te beperken tot beheerverkeer. Deze configuratie werkt goed voor Windows Update, typische groepsbeleidsscenario's (GP) en Microsoft Endpoint Configuration Manager-updatescenario's, evenals VPN-connectiviteit voor eerste aanmelding zonder referenties in de cache of scenario's voor het opnieuw instellen van wachtwoorden.

Voor door de server geïnitieerde pushcases, zoals Windows Remote Management (WinRM), Remote GPUpdate en remote Configuration Manager-updatescenario's, moet u binnenkomend verkeer toestaan op de apparaattunnel, zodat er geen verkeersfilters kunnen worden gebruikt. Als u in het apparaattunnelprofiel verkeersfilters inschakelt, weigert de apparaattunnel binnenkomend verkeer. Deze beperking wordt in toekomstige releases verwijderd.

Voorbeeld van VPN-profielXML

Hier volgt het voorbeeld van VPN-profielXML.

<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>

Afhankelijk van de behoeften van elk specifiek implementatiescenario is een andere VPN-functie die kan worden geconfigureerd met de apparaattunnel , vertrouwde netwerkdetectie.

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

Implementatie en testen

U kunt apparaattunnels configureren met behulp van een Windows PowerShell-script en de WMI-brug (Windows Management Instrumentation). The Always On VPN device tunnel must be configured in the context of the LOCAL SYSTEM account. To accomplish this, it will be necessary to use PsExec, one of the PsTools included in the Sysinternals suite of utilities.

Zie (.\Device) voor richtlijnen voor het uitrollen van een per apparaat (.\User) versus een per gebruiker profiel.

Voer de volgende Windows PowerShell-opdracht uit om te controleren of u een apparaatprofiel hebt geïmplementeerd:

Get-VpnConnection -AllUserConnection

In de uitvoer wordt een lijst weergegeven met de VPN-profielen voor het hele apparaat die op het apparaat zijn geïmplementeerd.

Voorbeeld van Windows PowerShell-script

U kunt het volgende Windows PowerShell-script gebruiken om u te helpen bij het maken van uw eigen script voor het maken van een profiel.

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"

Additional Resources

Hier volgen aanvullende bronnen om u te helpen bij uw VPN-implementatie.

Vpn-clientconfiguratiebronnen

Hieronder ziet u de configuratiebronnen van de VPN-client.

Externetoegangsserver-gateway-middelen

Hieronder ziet u RAS-gatewaybronnen (Remote Access Server).

Important

Wanneer u Apparaattunnel gebruikt met een Microsoft RAS-gateway, moet u de RRAS-server configureren om verificatie van IKEv2-machinecertificaten te ondersteunen door de verificatiemethode Computercertificaat toestaan voor IKEv2 in te schakelen, zoals hier wordt beschreven. Once this setting is enabled, it is strongly recommended that the Set-VpnAuthProtocol PowerShell cmdlet, along with the RootCertificateNameToAccept optional parameter, is used to ensure that RRAS IKEv2 connections are only permitted for VPN client certificates that chain to an explicitly defined internal/private Root Certification Authority. Het archief met vertrouwde basiscertificeringsinstanties op de RRAS-server moet ook worden gewijzigd om ervoor te zorgen dat deze geen openbare certificeringsinstanties bevat, zoals hier wordt besproken. Vergelijkbare methoden moeten mogelijk ook worden overwogen voor andere VPN-gateways.