Share via


Windows 클라이언트에서 VPN 디바이스 터널 구성

적용 대상: Windows Server 2022, Windows Server 2019, Windows 10, Windows 11

Always On VPN은 디바이스 또는 컴퓨터에 대한 전용 VPN 프로필을 만드는 기능을 제공합니다. Always On VPN 연결에는 두 가지 유형의 터널이 포함됩니다.

  • 사용자가 디바이스에 로그온하기 전에 디바이스 터널 이 지정된 VPN 서버에 연결됩니다. 사전 로그인 연결 시나리오 및 디바이스 관리 용도는 디바이스 터널을 사용합니다.

  • 사용자 터널 은 사용자가 디바이스에 로그온한 후에만 연결됩니다. 사용자 터널을 사용하면 사용자가 VPN 서버를 통해 조직 리소스에 액세스할 수 있습니다.

사용자가 디바이스 또는 컴퓨터에 로그온한 후에만 연결하는 사용자 터널과 달리 디바이스 터널을 사용하면 사용자가 로그온하기 전에 VPN이 연결을 설정할 수 있습니다. 디바이스 터널사용자 터널은 VPN 프로필과 독립적으로 작동하며 동시에 연결할 수 있으며 다른 인증 방법 및 기타 VPN 구성 설정을 적절하게 사용할 수 있습니다. 사용자 터널은 SSTP 및 IKEv2를 지원하며 디바이스 터널은 SSTP 대체를 지원하지 않고 IKEv2만 지원합니다.

사용자 터널은 엔터프라이즈 및 BYOD 시나리오를 모두 허용하도록 할기본 조인, 비도기본 조인(작업 그룹) 또는 Microsoft Entra ID 조인 디바이스에서 지원됩니다. 모든 Windows 버전에서 사용할 수 있으며, 플랫폼 기능은 UWP VPN 플러그 인 지원을 통해 타사에서 사용할 수 있습니다.

디바이스 터널은 Windows 10 Enterprise 또는 Education 버전 1709 이상을 실행하는 기본 조인된 디바이스에서만 구성할 수 있습니다. 디바이스 터널의 타사 제어는 지원되지 않습니다. 시스템에서 디바이스 터널만 사용하는 경우 NRPT(이름 확인 정책 테이블)를 구성할 수 있습니다. 사용자 터널 및 디바이스 터널이 시스템에서 사용되는 경우 사용자 터널에서만 NRPT(이름 확인 정책 테이블)를 사용할 수 있습니다.

디바이스 터널은 강제 터널을 지원하지 않습니다. 분할 터널로 구성해야 합니다. |

필수 조건

VPN 연결에 대해 머신 인증서 인증을 사용하도록 설정하고 들어오는 VPN 연결을 인증하기 위한 루트 인증 기관을 정의해야 합니다.

$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 디바이스 터널 구성

아래 샘플 프로필 XML은 디바이스 터널을 통해 클라이언트가 시작한 끌어오기만 필요한 시나리오에 대한 좋은 지침을 제공합니다. 트래픽 필터는 디바이스 터널을 관리 트래픽으로만 제한하기 위해 활용됩니다. 이 구성은 Windows 업데이트, 일반적인 GP(그룹 정책) 및 Microsoft Endpoint Configuration Manager 업데이트 시나리오뿐만 아니라 캐시된 자격 증명 없이 첫 번째 로그온에 대한 VPN 연결 또는 암호 재설정 시나리오에도 적합합니다.

WinRM(Windows 원격 관리), 원격 GPUpdate 및 원격 Configuration Manager 업데이트 시나리오와 같은 서버 시작 푸시 사례의 경우 트래픽 필터를 사용할 수 없도록 디바이스 터널에서 인바운드 트래픽을 허용해야 합니다. 디바이스 터널 프로필에서 트래픽 필터를 켜면 디바이스 터널이 인바운드 트래픽을 거부합니다. 이 제한 사항은 이후 릴리스에서 제거될 예정입니다.

샘플 VPN profileXML

다음은 샘플 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>

각 특정 배포 시나리오의 요구 사항에 따라 디바이스 터널로 구성할 수 있는 또 다른 VPN 기능은 신뢰할 수 있는 네트워크 검색입니다.

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

배포 및 테스트

Windows PowerShell 스크립트를 사용하고 WMI(Windows Management Instrumentation) 브리지를 사용하여 디바이스 터널을 구성할 수 있습니다. Always On VPN 디바이스 터널은 LOCAL SYSTEM 계정의 컨텍스트에서 구성해야 합니다. 이를 위해 Sysinternals 유틸리티 제품군에 포함된 PsTools하나인 PsExec 사용해야 합니다.

디바이스 (.\Device) 당 및 사용자 (.\User) 별 프로필을 배포하는 방법에 대한 지침은 WMI 브리지 공급자와 함께 PowerShell 스크립팅 사용을 참조하세요.

다음 Windows PowerShell 명령을 실행하여 디바이스 프로필을 성공적으로 배포했는지 확인합니다.

Get-VpnConnection -AllUserConnection

출력에는 디바이스에 배포된 디바이스 전체 VPN 프로필 목록이 표시됩니다.

예제 Windows PowerShell 스크립트

다음 Windows PowerShell 스크립트를 사용하여 프로필을 만들기 위한 고유한 스크립트를 만들 수 있습니다.

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"

추가 리소스

다음은 VPN 배포를 지원하는 추가 리소스입니다.

VPN 클라이언트 구성 리소스

다음은 VPN 클라이언트 구성 리소스입니다.

원격 액세스 서버 게이트웨이 리소스

다음은 RAS(원격 액세스 서버) 게이트웨이 리소스입니다.

Important

Microsoft RAS 게이트웨이에서 디바이스 터널을 사용하는 경우 여기에 설명된 대로 IKEv2 인증 방법에 대해 컴퓨터 인증서 인증 허용을 사용하도록 설정하여 IKEv2 컴퓨터 인증서 인증을 지원하도록 RRAS 서버를 구성해야 합니다. 이 설정을 사용하도록 설정하면 RootCertificateNameToAccept 선택적 매개 변수와 함께 Set-VpnAuthProtocol PowerShell cmdlet을 사용하여 명시적으로 정의된 내부/프라이빗 루트 인증 기관에 연결된 VPN 클라이언트 인증서에 대해서만 RRAS IKEv2 연결이 허용되도록 하는 것이 좋습니다. 또는 RRAS 서버의 신뢰할 수 있는 루트 인증 기관 저장소를 수정하여 여기에 설명된 대로 공용 인증 기관이 포함되지 않도록 해야 합니다. 다른 VPN 게이트웨이에도 유사한 방법을 고려해야 할 수 있습니다.