Windows 10에서 VPN 장치 터널 구성

적용 대상: Windows server 2022, Windows server 2019, Windows 10 버전 1709

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

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

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

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

도메인에 가입 된 도메인에 가입 된 (작업 그룹) 또는 Azure AD 조인 장치에서 사용자 터널이 지원 되므로 – 엔터프라이즈 및 BYOD 시나리오를 모두 사용할 수 있습니다. 모든 Windows 버전에서 사용할 수 있으며, UWP VPN 플러그 인 지원을 통해 타사에서 플랫폼 기능을 사용할 수 있습니다.

장치 터널은 Windows 10 Enterprise 또는 교육용 버전 1709 이상을 실행 하는 도메인에 가입 된 장치 에서만 구성할 수 있습니다. 장치 터널의 타사 제어는 지원 되지 않습니다. 장치 터널은 NRPT (이름 확인 정책 테이블) 사용을 지원 하지 않습니다. 장치 터널은 강제 터널을 지원 하지 않습니다. 분할 터널로 구성 해야 합니다.

장치 Tunnel 요구 사항 및 기능

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 장치 Tunnel 구성

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

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

샘플 VPN 프로 파일링 Exml

다음은 샘플 VPN 프로 파일링 Exml입니다.

<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) (WMI) 브리지를 사용 하 여 장치 터널을 구성할 수 있습니다. Always On VPN 장치 터널은 로컬 시스템 계정의 컨텍스트에서 구성 해야 합니다. 이를 위해 Sysinternals 유틸리티 모음에 포함 된 PsTools 중 하나인 PsExec를 사용 해야 합니다.

장치와 사용자별 프로필을 배포 하는 방법에 대 한 지침은 (.\Device)(.\User)(.\Device)을 참조 하세요.

다음 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 (원격 액세스 서버) 게이트웨이 리소스는 다음과 같습니다.

중요

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