Microsoft Intune VPN 프로필 문제 해결

원래 제품 버전: Microsoft Intune
원래 KB 번호: 4519426

소개

이 가이드는 Microsoft Intune 사용할 때 발생할 수 있는 VPN 프로필 문제를 이해하고 해결하는 데 도움이 됩니다.

이 가이드의 예제에서는 프로필에 SCEP(단순 인증서 등록 프로토콜) 인증서 인증을 사용합니다. 또한 이 예제에서는 신뢰할 수 있는 루트 및 SCEP 프로필이 디바이스에서 올바르게 작동한다고 가정합니다. 예제에서 신뢰할 수 있는 루트 및 SCEP 프로필의 이름은 다음과 같습니다.

프로필 유형 Android iOS Windows
신뢰할 수 있는 루트 프로필 AndroidRoot iOSRoot WindowsRoot2
SCEP 프로필 AndroidSCEP iOSSCEP WindowsSCEP2

VPN 프로필 개요

VPN(가상 사설망)은 사용자에게 organization 네트워크에 대한 보안 원격 액세스를 제공합니다. 장치에서 VPN 연결 프로필을 사용하여 VPN 서버와의 연결을 시작합니다. Intune에서 VPN 프로필은 organization 사용자 및 디바이스에 VPN 설정을 할당합니다. 그러면 사용자가 조직 네트워크에 쉽고 안전하게 연결할 수 있습니다.

예를 들어 organization 네트워크의 파일 공유에 연결하는 데 필요한 설정으로 모든 iOS 디바이스를 구성하려는 경우 이러한 설정을 포함하는 VPN 프로필을 만들고 iOS 디바이스가 있는 모든 사용자에게 이 프로필을 할당할 수 있습니다. 그 후 사용자는 사용 가능한 네트워크 목록에서 VPN 연결을 보고 최소한의 노력으로 연결할 수 있습니다.

다른 VPN 연결 형식을 사용하여 VPN 프로필을 만들 수 있습니다.

참고

디바이스에 할당된 VPN 프로필을 사용하려면 먼저 해당 프로필에 해당하는 VPN 앱을 설치해야 합니다.

VPN 프로필을 만드는 방법

VPN 프로필을 만들려면 디바이스 프로필 만들기의 단계를 수행합니다.

예제는 다음 스크린샷을 참조하세요.

참고

예제에서 Android 및 iOS VPN 프로필의 연결 유형은 Cisco AnyConnect이고 Windows 10 연결 유형은 자동입니다. VPN 프로필은 SCEP 프로필에 연결됩니다.

Android용 VPN 프로필을 만드는 방법을 보여 주는 스크린샷

VPN 프로필을 할당하는 방법

VPN 프로필을 만든 후 선택한 그룹에 프로필을 할당 합니다.

참고

그룹 유형 배포(사용자 그룹 또는 디바이스 그룹)가 중요하며 이 리소스 정책(신뢰할 수 있는 인증서, SCEP 및 VPN)과 관련된 모든 정책에서 일관되어야 합니다. 배포하는 인증서 유형에 따라 달라집니다. 사용자 인증서를 배포하는 경우 모든 배포는 사용자 그룹에 있고 그 반대의 경우도 마찬가지입니다. 배포된 인증서가 디바이스 유형 1인 경우 디바이스 그룹을 사용합니다.

예제는 다음 스크린샷을 참조하세요.

프로필을 할당하는 방법을 보여 주는 스크린샷

성공한 VPN 프로필의 모양

이 시나리오에서는 개인 소유 회사 프로필로 등록된 Android 디바이스를 사용합니다. 신뢰할 수 있는 루트 및 SCEP 프로필이 디바이스에 이미 설치되어 있으므로 SCEP 인증서를 설치하라는 메시지가 표시되지 않습니다.

  1. 회사 VPN 프로필을 설치하라는 알림이 표시됩니다.

    VPN 프로필을 설치하는 알림을 보여 주는 스크린샷

    알림을 받지 못하면 설정 변경 단추를 탭하여 AnyConnect 앱에서 외부 제어 옵션을 사용하도록 설정합니다. 그런 다음 알림을 받게 됩니다.

    설정 변경 단추를 보여 주는 스크린샷

    외부 제어 옵션을 보여 주는 스크린샷

    외부 제어 옵션이 사용하도록 설정되어 있음을 보여 주는 스크린샷.

  2. AnyConnect 앱에서 SCEP 인증서를 선택합니다.

    인증서를 선택하는 페이지를 보여 주는 스크린샷

    참고

    디바이스 관리자 관리 Android 디바이스를 사용하는 경우 인증서 프로필이 변경되거나 제거될 때 인증서가 해지되거나 제거되지 않으므로 인증서가 여러 개 있을 수 있습니다. 이 시나리오에서 최신 인증서를 선택합니다. 일반적으로 목록에 표시되는 마지막 인증서입니다.

    이 상황은 Android Enterprise 및 Samsung Knox 디바이스에서 발생하지 않습니다. 자세한 내용은 Intune을 사용하여 Android 회사 프로필 디바이스 관리Microsoft Intune SCEP 및 PKCS 인증서 제거를 참조하세요.

  3. VPN 연결이 성공적으로 생성되었습니다.

    VPN 연결이 성공적으로 생성되었음을 보여 주는 스크린샷

성공적인 VPN 프로필 배포 로그 회사 포털

Android 디바이스에서 Omadmlog.log 파일은 디바이스에서 처리될 때 VPN 프로필의 자세한 활동을 기록합니다. 회사 포털 앱이 설치된 기간에 따라 최대 5개의 Omadmlog.log 파일이 있을 수 있으며 마지막 동기화의 타임스탬프는 관련 항목을 찾는 데 도움이 될 수 있습니다.

다음 예제에서는 CMTrace 를 사용하여 로그를 읽고 를 검색 android.vpn.client합니다.

CMTrace를 사용하여 로그를 읽고 android.vpn.client를 검색하는 예제를 보여 주는 스크린샷

샘플 로그:

<Date Time>    INFO    com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine    13229    00622    Notifying to provision vpn profile 'AnyConnect'.
<Date Time>    INFO    com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine    13229    00622    VPN Profile "AnyConnect" state changed from RECEIVED to PENDING_USER_INSTALL
<Date Time>    VERB    com.microsoft.omadm.platforms.android.vpn.client.VpnClient    13229    00002    Creating VPN Provision Intent: anyconnect://create/?host=VPN.contoso.com&name=AnyConnect&usecert=true&keychainalias=UserID
<Date Time>    INFO    com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine    13229    00002    Vpn profile 'AnyConnect' provisioned and complete.
<Date Time>    INFO    com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine    13229    00002    VPN Profile "AnyConnect" state changed from PENDING_USER_INSTALL to PROVISIONED

일반적인 문제 해결

문제 1: VPN 프로필이 디바이스에 배포되지 않음

  1. VPN 프로필이 올바른 그룹에 할당되었는지 확인합니다.

    Intune 포털에서 디바이스 구성>프로필을 선택한 다음, 프로필을 선택한 다음 할당을 선택하여 선택한 그룹을 확인 합니다 .

    Android용 그룹의 할당된 VPN 프로필을 보여 주는 스크린샷

  2. 문제 해결 창에서 마지막 체크 인 시간을 확인하여 디바이스가 Intune과 동기화할 수 있는지 확인합니다.

    Android 문제 해결 창의 마지막 체크 인 시간을 보여 주는 스크린샷.

  3. VPN 프로필이 신뢰할 수 있는 루트 및 SCEP 프로필에 연결된 경우 두 프로필이 모두 디바이스에 배포되었는지 확인합니다. VPN 프로필은 이러한 프로필에 종속됩니다.

    신뢰할 수 있는 루트 및 SCEP 프로필이 디바이스에 설치되지 않은 경우 회사 포털 로그 파일(Omadmlog.log)에 다음 항목이 표시됩니다.

    <Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 14210 00948 Waiting for required certificates for vpn profile 'androidVPN'.

    참고

    신뢰할 수 있는 루트 및 SCEP 프로필이 디바이스에 있고 규정을 준수하더라도 VPN 프로필은 여전히 디바이스에 없을 수 있습니다. 이 문제는 회사 포털 앱의 공급자가 지정된 조건과 일치하는 인증서를 찾지 못하는 경우에 CertificateSelector 발생합니다. 특정 조건은 인증서 템플릿 또는 SCEP 프로필에 있을 수 있습니다. 일치하는 인증서를 찾을 수 없으면 디바이스의 인증서가 제외됩니다. 따라서 VPN 프로필은 올바른 인증서가 없으므로 건너뛰게 됩니다. 이 시나리오에서는 회사 포털 로그 파일(Omadmlog.log)에 다음 항목이 표시됩니다.

    Waiting for required certificates for vpn profile 'androidVPN'.

    다음 샘플 로그는 EKU( 모든 용도 확장 키 사용) 조건이 지정되었기 때문에 인증서가 제외되었음을 보여 줍니다. 그러나 디바이스에 할당된 인증서에는 다음 EKU가 없습니다.

    <Date Time>    VERB     com.microsoft.omadm.utils.CertUtils      14210    00948    Excluding cert with alias User<ID1> and requestId <requestID1> as it does not have any purpose EKU.
    <Date Time>    VERB     com.microsoft.omadm.utils.CertUtils      14210    00948    Excluding cert with alias User<ID2> and requestId <requestID2> as it does not have any purpose EKU.
    <Date Time>    VERB     com.microsoft.omadm.utils.CertUtils      14210    00948    0 cert(s) matched criteria:
    <Date Time>    VERB     com.microsoft.omadm.utils.CertUtils      14210    00948    2 cert(s) excluded by criteria:
    <Date Time>    INFO     com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine       14210     00948    Waiting for required certificates for vpn profile '<profile name>'.
    

    다음 샘플에서는 SCEP 프로필에 지정된 모든 용도 EKU 옵션이 있음을 보여 줍니다. 그러나 CA(인증 기관)의 인증서 템플릿에는 지정되지 않습니다. 이 문제를 해결하려면 인증서 템플릿에 모든 목적 옵션을 추가하거나 SCEP 프로필에서 모든 목적 옵션을 제거합니다.

    모든 용도 옵션을 추가하는 방법을 보여 주는 스크린샷

    모든 목적 옵션이 표시됨을 보여 주는 스크린샷

  4. AnyConnect의 외부 제어 옵션이 사용하도록 설정되어 있는지 확인합니다.

    프로필을 만들기 전에 외부 제어 옵션을 사용하도록 설정해야 합니다. 프로필이 디바이스로 푸시되면 사용자에게 외부 제어 옵션을 사용하도록 설정하라는 메시지가 표시됩니다.

    외부 제어 옵션을 검사 방법을 보여 주는 스크린샷

    외부 제어 옵션이 사용하도록 설정되어 있음을 보여 주는 스크린샷.

  5. 전체 인증서 체인의 모든 필수 인증서가 디바이스에 있는지 확인합니다. 그렇지 않으면 회사 포털 로그 파일(Omadmlog.log)에 다음 항목이 표시됩니다.

    Waiting for required certificates for vpn profile 'androidVPN'.

    자세한 내용은 누락된 중간 인증 기관을 참조하세요.

문제 2: VPN 프로필이 디바이스에 배포되지만 디바이스가 네트워크에 연결할 수 없음

일반적으로 이 연결 문제는 Intune 문제가 아니며 많은 원인이 있을 수 있습니다. 다음 항목은 문제를 이해하고 해결하는 데 도움이 될 수 있습니다.

  • VPN 프로필에서 동일한 조건을 가진 인증서를 사용하여 네트워크에 수동으로 연결할 수 있나요?

    가능하면 수동 연결에서 사용한 인증서의 속성을 검사 Intune VPN 프로필을 변경합니다.

  • Android 및 iOS 디바이스의 경우 VPN 클라이언트 애플리케이션 로그에 디바이스가 VPN 프로필에 연결하려고 했음이 표시되었나요?

    일반적으로 연결 오류는 VPN 클라이언트 애플리케이션 로그에 기록됩니다.

  • Windows 디바이스의 경우 Radius 서버 로그에 디바이스가 VPN 프로필에 연결하려고 했음이 표시되었나요?

    일반적으로 연결 오류는 Radius 서버 로그에 기록됩니다.

AnyConnect 앱에서 로그를 보는 방법

로그를 보려면 Android 및 iOS 디바이스에 대한 다음 두 가지 예제를 참조하세요.

예제 1: Android 디바이스에서 로그 보기

  1. 메뉴>진단을 선택합니다.

    진단 함수를 보여 주는 스크린샷.

  2. 인증서를 보려면 인증서 관리를 선택합니다.

    인증서 관리 함수를 보여 주는 스크린샷

    인증서 정보를 보여 주는 스크린샷

  3. AnyConnect 문제를 분석하기 위한 로그를 보려면 로깅 및 시스템 정보>디버그 를 선택합니다.

    로깅 및 시스템 정보 함수를 보여 주는 스크린샷

    디버그 정보를 보여 주는 스크린샷

  4. 로그를 보내려면관리자에게로그> 보고서 보내기 메뉴를> 선택합니다.

    로그 보내기 함수를 보여 주는 스크린샷

    관리자에게 보고 함수를 보여 주는 스크린샷.

  5. 디버그 로그를 받은 후 프로필 만들기 및 연결 정보를 위해debug_logs_unfiltered.txt파일을 검사.

VPN 만들기에 대한 샘플 로그:

<Date Time> I/AnyConnect(14530): URIHandlerActivity: Received command: anyconnect://create?host=VPN.Contoso.com&name=AnyConnect&usecert=true&keychainalias=UserID
<Date Time> I/AnyConnect(14530): VpnService: VpnService is being created.

VPN 연결 실패에 대한 샘플 로그:

<Date Time> I/vpnapi  (14530): Message type information sent to the user: Contacting VPN.Contoso.com.
<Date Time> I/vpnapi  (14530): Initiating VPN connection to the secure gateway https://VPN.Contoso.com
<Date Time> I/acvpnagent(14592): Using default preferences. Some settings (e.g. certificate matching) may not function as expected if a local profile is expected to be used. Verify that the selected host is in the server list section of the profile and that the profile is configured on the secure gateway.
<Date Time> I/acvpnagent(14592): Function: processConnectNotification File: MainThread.cpp Line: 14616 Received connect notification (host VPN.Contoso.com, profile N/A)
<Date Time> W/acvpnagent(14592): Function: getHostIPAddrByName File: SocketSupport.cpp Line: 344 Invoked Function: ::getaddrinfo Return Code: 11 (0x0000000B) Description: unknown 
<Date Time> W/acvpnagent(14592): Function: resolveHostName File: HostLocator.cpp Line: 710 Invoked Function: CSocketSupport::getHostIPAddrByName Return Code: -31129588 (0xFE25000C) Description: SOCKETSUPPORT_ERROR_GETADDRINFO 
<Date Time> W/acvpnagent(14592): Function: ResolveHostname File: HostLocator.cpp Line: 804 Invoked Function: CHostLocator::resolveHostName Return Code: -31129588 (0xFE25000C) Description: SOCKETSUPPORT_ERROR_GETADDRINFO failed to resolve host name VPN.Contoso.com to IPv4 address
<Date Time> I/vpnapi  (14530): Message type warning sent to the user: Connection attempt has failed.
<Date Time> E/vpnapi  (14530): Function: processIfcData File: ConnectMgr.cpp Line: 3399 Content type (unknown) received. Response type (DNS resolution failed) from VPN.Contoso.com: DNS resolution failed
<Date Time> I/vpnapi  (14530): Message type warning sent to the user: Unable to contact VPN.Contoso.com.
<Date Time> E/vpnapi  (14530): Function: processIfcData File: ConnectMgr.cpp Line: 3535 Unable to contact VPN.Contoso.com DNS resolution failed
<Date Time> I/vpnapi  (14530): Message type error sent to the user: The VPN connection failed due to unsuccessful domain name resolution.

예제 2: iOS 디바이스에서 로그 보기

  1. 사용자 인증서를 보려면 진단인증서> 선택합니다.

    가져온 인증서를 보여 주는 스크린샷

  2. 로그 메시지를 보려면 진단을 선택하고, VPN 디버그 로그 옵션을 사용하도록 설정하여 로깅을 사용하도록 설정한 다음, 로그를 선택합니다.

    • 서비스 디버그 로그 메시지를 표시하려면 서비스를 선택합니다.
    • 애플리케이션 디버그 로그 메시지를 표시하려면 앱을 선택합니다.

    VPN 디버그 로그 옵션을 보여 주는 스크린샷

  3. 로그를 보내려면 진단 창에서 로그 공유를 선택하고 문제에 대한 정보를 입력한 다음 보내기를 선택합니다.

    로그 공유 함수를 보여 주는 스크린샷

  4. 디버그 로그를 받은 후 프로필 만들기 및 연결 정보를 위해 파일을 검사.

    디버그 로그 파일이 있는 폴더를 보여 주는 스크린샷

VPN 프로필을 보여 주는AnyConnect_App_Debug_Logs.txt 파일의 샘플 로그:

[<Date Time>] Info: Function: SaveSettings File: AppleVpnConfig.mm Line: 198 SaveSettings {type = mutable dict, count = 3, entries => 0 : {contents = "RemoteAddress"} = {contents = "Contoso.com"} 1 : {contents = "AuthenticationMethod"} = {contents = "Certificate"} 2 : {contents = "LocalCertificate"} = <69646e74 00000000 000002d3> }
[<Date Time>] Info: Function: GetSettings File: AppleVpnConfig.mm Line: 175 GetSettings { AuthenticationMethod = Certificate; LocalCertificate = <69646e74 00000000 000002d3>; RemoteAddress = "Contoso.com"; }
[<Date Time>] Info: Function: -[AppleVpnConfigBatch startBatchSaveToSystem] File: AppleVpnConfigBatch.mm Line: 43 Invoking save to system with 0x28202fd60
[<Date Time>] Info: Function: saveToSystem_block_invoke File: AxtVpnConfig.mm Line: 222 Successfully saved profile for Contoso.com
[<Date Time>] Info: Function: -[AppleVpnConfigBatch startBatchSaveToSystem] File: AppleVpnConfigBatch.mm Line: 36 completed!.

VPN 연결 실패를 보여 주는 AnyConnect_Messages.txt 파일의 샘플 로그:

[<Date Time>] [VPN] - Contacting Contoso.com.
[<Date Time>] [VPN] - Connection attempt has failed.
[<Date Time>] [VPN] - Unable to contact CoolBreeze.com.
[<Date Time>] [VPN] - Connection attempt has timed out. Please verify Internet connectivity.

VPN 연결 실패를 보여 주는 AnyConnect_Plugin_Debug_Logs.txt 파일의 샘플 로그:

[<Date Time>] Info: Message type information sent to the user: Contacting Contoso.com.
[<Date Time>] Info: Initiating VPN connection to the secure gateway https://Contoso.com
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Contacting Contoso.com. to App
[<Date Time>] Error: Function: SendRequest File: CTransportCurlStatic.cpp Line: 2046 Invoked Function: curl_easy_perform Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT 28 : Error
[<Date Time>] Error: Function: TranslateStatusCode File: ConnectIfc.cpp Line: 3169 Invoked Function: TranslateStatusCode Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT Connection attempt has timed out. Please verify Internet connectivity.
[<Date Time>] Error: Function: doConnectIfcConnect File: ConnectMgr.cpp Line: 2442 Invoked Function: ConnectIfc::connect Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT 
[<Date Time>] Info: Message type warning sent to the user: Connection attempt has failed.
[<Date Time>] Error: Function: processIfcData File: ConnectMgr.cpp Line: 3407 Content type (unknown) received. Response type (host unreachable) from Contoso.com: 
[<Date Time>] Info: Message type warning sent to the user: Unable to contact Contoso.com.
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Connection attempt has failed. to App
[<Date Time>] Error: Function: processIfcData File: ConnectMgr.cpp Line: 3543 Unable to contact Contoso.com 
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Unable to contact Contoso.com. to App
[<Date Time>] Info: Message type error sent to the user: Connection attempt has timed out. Please verify Internet connectivity.

추가 정보

관련 문제에 대한 해결책을 찾고 있거나 Microsoft Intune 대한 자세한 정보를 원하는 경우 Microsoft Intune 포럼에 질문을 게시합니다. 많은 지원 엔지니어, MVP 및 개발 팀 구성원이 포럼을 방문합니다. 따라서 필요한 정보를 가진 사람을 찾을 수 있는 좋은 기회가 있습니다.

Microsoft Intune 제품 지원 팀에 대한 지원 요청을 열려면 Microsoft Intune 대한 지원을 받는 방법을 참조하세요.

Intune의 VPN 프로필에 대한 자세한 내용은 다음 문서를 참조하세요.

모든 최신 뉴스, 정보 및 기술 팁은 공식 블로그를 방문하세요.