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:

  • Apparaattunnel maakt verbinding met opgegeven VPN-servers voordat gebruikers zich aanmelden bij het apparaat. Scenario's voor connectiviteit voor aanmelding en beheer van apparaten gebruiken de apparatentunnel.

  • De gebruikerstunnel maakt alleen verbinding nadat een gebruiker zich aanmeldt bij het apparaat. Gebruikerstunnel biedt gebruikers toegang tot organisatiebronnen via VPN-servers.

In tegenstelling tot een gebruikerstunnel, die alleen verbinding maakt nadat een gebruiker zich heeft aanmeldt bij het apparaat of de computer, kan de VPN-verbinding tot stand brengen voordat de gebruiker zich aanmeldt. Zowel de apparaattunnel als de gebruikerstunnel werken onafhankelijk met hun VPN-profielen, kunnen tegelijkertijd worden verbonden en kunnen verschillende verificatiemethoden en andere VPN-configuratie-instellingen gebruiken, indien van toepassing. 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. |

Vereiste voorwaarden

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). De AlwaysOn VPN-apparaattunnel moet worden geconfigureerd in de context van het LOKALE SYSTEEM-account . Hiervoor is het noodzakelijk om PsExec te gebruiken, een van de PsTools die is opgenomen in de Sysinternals suite van hulpprogramma's.

Zie PowerShell-scripts gebruiken met de WMI Bridge Provider voor richtlijnen voor het inzetten van een per apparaat (.\Device) versus een per gebruiker (.\User) 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"

Aanvullende informatiebronnen

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

Belangrijk

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. Zodra deze instelling is ingeschakeld, wordt het sterk aanbevolen dat de PowerShell-cmdlet Set-VpnAuthProtocol , samen met de optionele parameter RootCertificateNameToAccept , wordt gebruikt om ervoor te zorgen dat RRAS IKEv2-verbindingen alleen zijn toegestaan voor VPN-clientcertificaten die zijn gekoppeld aan een expliciet gedefinieerde interne/persoonlijke basiscertificeringsinstantie. 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.