Configurer des tunnels d’appareil VPN sous client Windows

S’applique à : Windows Server 2022, Windows Server 2019 et Windows 10, Windows 11

Always On VPN vous permet de créer un profil VPN dédié pour un appareil ou une machine. Les connexions VPN Always On incluent deux types de tunnels :

  • Le tunnel d’appareil se connecte à des serveurs VPN spécifiés avant que les utilisateurs ne se connectent à l’appareil. Les scénarios de connectivité de préconnexion et la gestion des appareils utilisent un tunnel d’appareil.

  • Le tunnel d’utilisateur se connecte uniquement après la connexion d’un utilisateur à l’appareil. Le tunnel d’utilisateur permet aux utilisateurs d’accéder aux ressources de l’organisation via les serveurs VPN.

Contrairement au tunnel d’utilisateur, qui se connecte uniquement après la connexion d’un utilisateur à l’appareil ou à la machine, le tunnel d’appareil permet au VPN d’établir une connectivité avant que l’utilisateur ne se connecte. Le tunnel d’appareil et le tunnel d’utilisateur fonctionnent indépendamment avec leurs profils VPN, peuvent être connectés en même temps et peuvent utiliser différentes méthodes d’authentification et d’autres paramètres de configuration VPN, le cas échéant. Le tunnel d’utilisateur prend en charge SSTP et IKEv2, et le tunnel d’appareil prend en charge IKEv2 uniquement sans prise en charge du repli vers le protocole SSTP.

Le tunnel utilisateur est supporté sur des appareils reliés à un domaine, non reliés à un domaine (groupe de travail) ou reliés à Microsoft Entra ID pour permettre des scénarios d'entreprise et BYOD. Il est disponible dans toutes les éditions de Windows, et les fonctionnalités de la plateforme sont disponibles pour des tiers via la prise en charge du plug-in VPN UWP.

Le tunnel d’appareil ne peut être configuré que sur les appareils joints à un domaine exécutant Windows 10 Entreprise ou Éducation version 1709 ou ultérieure. Il n’existe aucune prise en charge du contrôle du tunnel d’appareil par un tiers. Si seul un tunnel d’appareil est utilisé sur un système, vous pouvez configurer une table de stratégie de résolution de noms (NRPT). Si un tunnel d’utilisateur et un tunnel d’appareil sont utilisés sur un système, vous pouvez utiliser la table de stratégie de résolution de noms (NRPT) uniquement sur le tunnel d’utilisateur.

Le tunnel d’appareil ne prend pas en charge le tunnel forcé. Vous devez le configurer en tant que tunnel fractionné. |

Prérequis

Vous devez activer l’authentification par certificat d’ordinateur pour les connexions VPN et définir une autorité de certification racine pour l’authentification des connexions VPN entrantes.

$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

Configuration du tunnel d’appareil VPN

L’exemple de code XML de profil ci-dessous fournit de bonnes instructions pour les scénarios où seules les extractions lancées par le client doivent se faire via le tunnel d’appareil. Les filtres de trafic sont utilisés pour limiter le tunnel d’appareil au trafic de gestion uniquement. Cette configuration fonctionne bien pour les scénarios de mise à jour de Windows Update, de la stratégie de groupe type et de Microsoft Endpoint Configuration Manager, ainsi que pour les scénarios de connectivité VPN pour la première ouverture de session sans informations d’identification mises en cache ou pour les scénarios de réinitialisation de mot de passe.

Pour les cas d’envoi (push) lancés par le serveur, tels que les scénarios de mise à jour de Windows Remote Management (WinRM), de mise à jour de la stratégie de groupe distante et de mise à jour du Gestionnaire de configuration à distance, vous devez autoriser le trafic entrant sur le tunnel d’appareil. Les filtres de trafic ne peuvent donc pas être utilisés. Si vous activez les filtres de trafic dans le profil du tunnel d’appareil, ce dernier refuse le trafic entrant. Cette limitation sera supprimée dans les prochaines versions.

Exemple de profil XML du VPN

Voici l’exemple de profil XML du VPN.

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

Selon les besoins de chaque scénario de déploiement particulier, une autre fonctionnalité VPN qui peut être configurée avec le tunnel d’appareil est la détection de réseau de confiance.

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

Déploiement et tests

Vous pouvez configurer des tunnels d’appareil à l’aide d’un script Windows PowerShell et du pont WMI (Windows Management Instrumentation). Le tunnel d’appareil Always On VPN doit être configuré dans le contexte du compte SYSTÈME LOCAL. Pour ce faire, il sera nécessaire d’utiliser PsExec, l’un des PsTools inclus dans la suite d’utilitaires Sysinternals.

Pour obtenir des instructions sur le déploiement d’un profil par appareil (.\Device) plutôt qu’un profil par utilisateur (.\User), consultez Utilisation de scripts PowerShell avec le fournisseur de pont WMI.

Exécutez la commande Windows PowerShell suivante pour vérifier que vous avez correctement déployé un profil d’appareil :

Get-VpnConnection -AllUserConnection

La sortie affiche une liste des profils VPN à l’échelle de l’appareil, qui sont déployés sur l’appareil.

Exemple de script Windows PowerShell

Vous pouvez vous baser sur le script Windows PowerShell suivant afin de créer votre propre script pour la création de profil.

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"

Ressources supplémentaires

Vous trouverez ci-dessous des ressources supplémentaires pour faciliter votre déploiement VPN.

Ressources de configuration du client VPN

Voici des ressources de configuration du client VPN.

Ressources de passerelle de serveur d’accès à distance

Voici des ressources sur la passerelle de serveur d’accès à distance.

Important

Lorsque vous utilisez le tunnel d’appareil avec une passerelle Microsoft RAS, vous devez configurer le serveur RRAS pour prendre en charge l’authentification par certificat d’ordinateur IKEv2 en activant la méthode d’authentification Autoriser l’authentification par certificat d’ordinateur pour IKEv2, comme décrit ici. Une fois ce paramètre activé, il est vivement recommandé que l’applet de commande PowerShell Set-VpnAuthProtocol, ainsi que le paramètre facultatif RootCertificateNameToAccept, soient utilisés pour garantir que les connexions IKEv2 RRAS sont autorisées uniquement pour les certificats clients VPN qui sont liés à une autorité de certification racine interne/privée explicitement définie. Sinon, le magasin des autorités de certification racines de confiance sur le serveur RRAS doit être modifié pour s’assurer qu’il ne contient pas d’autorités de certification publiques, comme abordé ici. Des méthodes similaires peuvent également être envisagées pour d’autres passerelles VPN.