목차/08. 권한 부여와 접근 제어

08권한 부여와 접근 제어권한 부여와 접근 제어

인증이 "당신이 누구인지"를 확인하는 일이라면, 권한 부여(Authorization)인증을 통과한 사용자가 실제로 어떤 사내 자원에 닿을 수 있는지를 정책으로 결정 하는 일입니다. 이 장은 Mobile Access를 Unified Access Policy(통합 접근 정책)에 녹여 규칙을 짜는 방법, 규칙 구성·순서·레이어의 모범 사례, 규칙 베이스 안에서 트래픽이 어떻게 매칭되는지, 자원별 보안 수준인 Protection Level, 그리고 모바일 기기 상태를 외부 MDM과 연동해 강제하는 MDM Cooperative Enforcement 까지, 원문이 다루는 모든 절차·표·파라미터·주의를 빠짐없이 풀어 정리합니다.

Mobile Access와 Unified Access Policy

통합 정책 안의 Mobile Access 개요

Mobile Access를 Unified Policy(통합 정책)에 포함하면, Mobile Access Portal, Capsule Workspace, 온디맨드(on-demand) 클라이언트에 관한 규칙을 모두 Access Control Policy 한곳에서 다루게 됩니다. Access Control Rule Base에서 이런 규칙을 만들 수 있습니다.

  • 모든 Mobile Access Security Gateway에 적용 하거나, 그중 일부에만 적용하는 규칙.
  • Mobile Access Portal·Capsule Workspace 같은 하나 이상의 Mobile Access 클라이언트에 적용 하는 규칙.

Protection Level, Secure Workspace, Endpoint Compliance 같은 Mobile Access 기능도 그대로 함께 적용됩니다.

통합 정책에서 Mobile Access 구성하기

통합 정책에 Mobile Access를 넣을 때 지켜야 할 핵심 규칙들이 있습니다.

  • Mobile Access 규칙은 Policy LayerInline Layer 에 모두 넣을 수 있습니다. 단, Mobile Access 응용이 든 규칙이 있는 레이어마다 Mobile Access를 활성화 해야 합니다. 레이어에 대한 자세한 내용은 R82 Security Management Administration Guide 를 참고하세요.
  • 응용을 Mobile Access Portal 이나 Capsule Workspace 에 보이게 하려면, 그 응용을 반드시 Services & Applications 열에 넣어야 합니다.
    • Services & Applications 열에 Any를 두면 응용이 포털에 보이지는 않지만 허용은 됩니다. 포털에서 URL을 직접 입력하면 열 수 있으나 Capsule Workspace 에서는 열 수 없습니다. 이 동작은 바꿀 수 있으며 자세한 내용은 sk112576을 참고하세요.
    • Services & Applications 열에 HTTPS 같은 응용의 서비스 를 두면, Mobile Access의 https 응용과는 매칭되지 않 습니다.
  • Services & Applications 열에서는, Mobile Access 트래픽과 매칭되도록 반드시 Mobile Access Application 객체 를 규칙에 써야 합니다. 이 응용은 다음 위치에서 정의합니다.
    • SmartConsole 에서 — Custom Applications/Sites > Mobile Application.
    • SmartDashboard > Mobile Access 탭 에서 응용을 정의.

예컨대 Application Control 용으로 정의한 응용 객체는 Mobile Access 규칙에서 지원되지 않 습니다. - Security Gateway에서 Mobile Access를 켜면, 그 게이트웨이는 자동으로 RemoteAccess VPN Community 에 추가 됩니다. 규칙의 VPN 열에 이 Community를 넣거나, Any를 두어 Mobile Access Security Gateway에 적용되게 합니다. 만약 게이트웨이를 VPN Community에서 제거했다면, VPN 열에는 반드시 Any가 들어가야 합니다. - 규칙을 특정 사용자·네트워크에 적용하려면 SourceDestinationAccess Role 을 씁니다. Access Role로 Mobile Access나 그 밖의 원격 접근을 표현할 수도 있습니다.

Unified Access Policy에서 Mobile Access 규칙 만들기

Mobile Access 규칙은 Access Control Policy 에서 다음 요건에 맞춰 만듭니다.

열(Column)설명
No(번호)규칙 위치가 논리적으로 타당한지 확인 합니다. Rule Base에서 규칙 순서는 중요합니다 — 트래픽과 처음 매칭되는 규칙이 적용 됩니다.
Name(이름)전체알아보기 쉬운 이름 을 쓰기를 권장합니다.
Source(출발지)Access Role규칙이 적용될 Users·User Group·Mobile/Remote Access Client 를 담은 Access Role 을 만듭니다.
Destination(목적지)Mobile Access 응용이 올라가 있는 내부 서버. Mobile Access 응용 자체는 Services & Applications 열에서 정의합니다.

VPN·Services·Action 등 나머지 열의 규칙은 다음과 같습니다.

열(Column)설명
VPNAny 또는 Mobile Access Security Gateway를 포함한 Remote Access CommunitySecurity Gateway에서 Mobile Access 또는 IPsec 소프트웨어 블레이드를 켜면, 게이트웨이가 자동으로 기본 RemoteAccess VPN Community 에 추가 됩니다. 기본적으로 이 Community에는 모든 사용자를 담은 사용자 그룹도 들어 있습니다. 게이트웨이를 VPN Community에서 제거했다면 반드시 Any를 골라야 합니다.
Services & ApplicationsMobile ApplicationMobile Access로 지정되지 않은 응용·서비스 객체는 넣지 마세요. Mobile Application 을 새로 만들려면 + 를 누르고 → Mobile Applications → 응용 유형을 골라 정의합니다. 기존 것을 고르려면 + → All > Mobile Applications에서 하나 선택합니다. Mobile Application은 해당 레이어에서 Mobile Access가 켜져 있을 때만 목록에 나타 납니다.
ContentAnyContent Awareness 는 Mobile Access 규칙과 무관합니다.
ActionAccept 또는 DropAcceptDrop 만 지원 됩니다. Reject 도 지원되지만 Drop 과 똑같이 동작합니다. Inline Layer 를 골라, 규칙에 매칭되는 모든 트래픽을 Inline Layer로 보낼 수도 있습니다.
Track모든 로그 옵션셀에서 오른쪽 클릭 → More > Extended log 를 선택합니다.
Install On하나 이상의 Security Gateway각 게이트웨이는 Mobile AccessIdentity Awareness 가 켜져 있고, Policy Source로 Unified Access Policy 가 선택 되어 있어야 합니다.

Unified Access Policy에서 Mobile Access 응용 쓰기

Unified Access Policy에서 Mobile Access 응용을 쓰려면, 그것을 SmartConsole 에서 Mobile Application 으로 정의하거나 SmartDashboard > Mobile Access 탭 에서 정의해야 합니다.

URL Filtering 응용 같은 다른 종류의 응용 객체는 Mobile Access와 무관합니다. 예를 들어 Facebook을 Mobile Access의 웹 응용으로 허용 하려면, URL Filtering의 Facebook 응용을 쓰는 게 아니라 새 Web Application 을 만들고 Facebook의 URL을 지정 해야 합니다. URL Filtering의 Facebook 응용은 Mobile Access용이 아니기 때문입니다.

Access Control Policy용 Mobile Application 만들기

Access Control Policy에서 쓸 Mobile Application 객체를 만드는 방법입니다.

  1. SmartConsole에서 Objects 창을 펼칩니다.
  2. New > More > Custom Application/Site > Mobile Application 을 선택합니다.
  3. Mobile Application 의 유형을 고릅니다.
  4. General PropertiesAuthorized Locations 를 정의합니다.
  5. (선택) 응용에 대한 추가 설정을 정의합니다.
  6. OK 를 누릅니다.

원격 접근용 Access Role

원격 접근 연결을 다루는 규칙은 Access Control Rule Base에서 이렇게 만듭니다.

  1. Security Policies 로 가서 VPN 열의 셀에서 오른쪽 클릭합니다.
  2. Specific VPN Communities 를 선택합니다.
  3. Community를 고르고 추가 버튼을 누릅니다.
  4. VPN community 창을 닫습니다.
  5. Services & ApplicationsAction 열을 정의합니다.
  6. 정책을 설치합니다.

예시 — 원격 접근 사용자가 조직의 SMTP 서버(SMTP_SRV)에 접근하도록 허용하려면 다음 규칙을 만듭니다.

SourceDestinationVPNServiceActionTrack
AnySMTP_SRVRemote_Access_CommunitySMTPAcceptLog

통합 정책에 Mobile Access 포함시키기

Unified Access Policy에 Mobile Access 규칙을 다 구성했으면, 이제 Security Gateway가 Unified Access Policy를 쓰도록 설정 합니다.

Mobile Access Security Gateway가 Unified Access Policy를 쓰게 하는 방법은 이렇습니다.

  1. SmartConsole에서 Gateways & Servers 를 누르고 Mobile Access Security Gateway 객체를 더블 클릭합니다.
  2. 트리에서 Mobile Access 를 선택합니다.
  3. Policy Source 영역에서 Unified Access Policy 를 선택합니다.
  4. OK 를 누릅니다.
  5. 정책을 설치합니다.

레이어에서 Access Control 기능 켜기

Ordered Layer 에서 Mobile Access를 켜는 방법입니다.

  1. SmartConsole에서 Security Policies 를 누릅니다.
  2. Access Control 아래에서 Policy 에 오른쪽 클릭 후 Edit Policy 를 선택합니다.
  3. 해당 레이어의 옵션을 누릅니다.
  4. Edit Layer 를 누릅니다. Layer Editor 창이 열리며 General 보기를 보여 줍니다.
  5. Mobile Access 를 선택합니다.
  6. OK 를 누릅니다.

Inline Layer 에서 Mobile Access를 켜는 방법입니다.

  1. SmartConsole에서 Security Policies 를 누릅니다.
  2. Ordered Layer 를 선택합니다.
  3. Inline Layer의 부모 규칙에서 Action 열에 오른쪽 클릭 후 Inline Layer > Edit Layer 를 선택합니다.
  4. Mobile Access 를 선택합니다.
  5. OK 를 누릅니다.

통합 정책에서 Mobile Access를 쓰는 모범 사례

Unified Access Policy에 Mobile Access를 넣을 때 알아 두어야 할 요소들이 있습니다 — 레이어를 어떻게 쓸지, 규칙의 내용이 정책에 어떻게 영향을 주는지, 규칙 순서가 정책에 어떻게 영향을 주는지 입니다.

레이어 관련 모범 사례

Mobile Access 정책을 쉽게 관리하려면 Mobile Access 규칙을 Inline Layer 로 묶기를 권장 합니다.

Inline Layer를 효과적으로 쓰려면, 메인 레이어에 부모 규칙(parent rule) 을 정의합니다. 이 부모 규칙은 모든 Mobile Access 트래픽과 매칭되어 트래픽을 Inline Layer로 보냅니다. 부모 규칙의 Source 열에는 모든 Mobile Access 클라이언트 유형(또는 트래픽)을 담은 Access Role 이 필요합니다. 규칙의 Action 열에 Inline Layer 를 넣으면, 그 아래에 Inline Layer가 자동으로 생기고 그 규칙이 부모 규칙이 됩니다.

다음은 Inline Layer를 활용한 Rule Base 예시입니다.

NoNameSourceDestinationVPNServices & ApplicationsActionTrack
1Network rulesMy_networkGWAnyAnyAcceptLog
2Mobile Access Inline Layer Entry PointAll Mobile Access trafficAnyAnyAnyMobile Access Inline LayerExtended Log
2.1Capsule Workspace ruleCapsule Workspace trafficAnyAnyBusiness Mail, Corporate OrderingAcceptExtended Log
2.2Special access ruleManagersAnyAnyInternal AppAcceptExtended Log
2.3Mobile Access Inline Layer Cleanup ruleAnyAnyAnyAnyDropExtended Log

Ordered Layer와 함께 쓰는 Mobile Access

Ordered Layer 를 쓴다면, 어떤 Ordered Layer 안에든 Mobile Access Inline Layer를 둘 수 있습니다. 끝에는 Cleanup 규칙을 둡니다.

NoNameSourceDestinationVPNServices & ApplicationsActionTrack
3Cleanup ruleAnyAnyAnyAnyDropLog

모든 Mobile Access 트래픽을 Mobile Access Inline Layer로 보내는 규칙을 만드는 방법입니다.

  1. Access Control Policy에 있는 규칙의 Source 열에서, 모든 Mobile Access 클라이언트 유형을 담은Access Role 을 만듭니다.
    • a. New Access Role 창에서 Remote Access Clients 를 누릅니다.
    • b. Specific Client 를 고르고, 환경에서 쓰는 모든 Mobile Access 포털·클라이언트에 대해 New > Allowed Client 를 만듭니다. 여기에는 Capsule Workspace, Mobile Access Portal, ActiveSync, SSL Network Extender 등이 포함될 수 있습니다.
  2. VPN 열에 Any 또는 Mobile Access Security Gateway를 담은 RemoteAccess VPN Community 가 들어 있는지 확인합니다.
  3. Action 열에서 Inline Layer > New Layer 를 선택합니다.
  4. Layer Editor 에서:
    • 레이어 이름을 입력합니다(예: Mobile Access Inline Layer).
    • Blades 영역에서 Mobile Access 를 선택합니다.
    • (선택) 이 Mobile Access Inline Layer를 여러 정책에서 쓰려면, Sharing 영역에서 Multiple policies and rules can use this layer 를 누릅니다.

Inline Layer 안에서 규칙을 구성하는 방법입니다.

  1. 자동으로 만들어진 Inline Layer의 Cleanup rule 을 누른 다음 Add Rule Above 아이콘을 누릅니다.
  2. 필요한 만큼 Mobile Access 정책 규칙을 구성합니다.
  3. Cleanup rule 은 레이어 맨 끝에 그대로 두고, Action이 Drop 인지 확인 합니다.
  4. Track 셀에서 오른쪽 클릭 후 More > Extended log 를 선택합니다.

규칙 순서 모범 사례 — bypass 규칙

여러 Ordered Layer를 쓸 때는, Mobile Access 레이어보다 앞선 모든 레이어 에 Mobile Access 트래픽용 bypass 규칙 을 만들 어야 합니다. 예를 들어 Mobile Access Inline Layer가 세 번째 레이어에 있다면, 첫 번째와 두 번째 Ordered Layer에 bypass 규칙을 둬야 합니다.

bypass 규칙은 그 레이어에서 Mobile Access 트래픽과 매칭되어 트래픽을 허용 합니다. 그러면 트래픽이 다음 레이어로 넘어가, 마침내 Mobile Access Inline Layer에 도달합니다. bypass 규칙을 만들려면 Source 열에 모든 Mobile Access 사용자를 담은 Access Role, Action 열에 Accept 를 씁니다.

규칙 작성 모범 사례

  • Mobile Access 규칙의 Destination 에 Security Gateway를 쓰지 마세요. 이 규칙은 사용자의 내부 자원 접근을 권한 부여하는 것이므로, Destination 열에는 Any 또는 관련 응용의 내부 호스트를 씁니다.
  • Services & Applications 열에 Any를 쓰지 마세요. 응용을 Mobile Access Portal이나 Capsule Workspace에 보이게 하려면, 그 응용은 Rule Base에서 명시적으로 쓰인 Mobile Access application 객체 여야 합니다.
    • Any로 모든 Mobile Access 응용을 표현하면, 구성된 Mobile Access 응용은 권한 부여는 되지만 포털·Capsule Workspace에 보이지 않 습니다. 사용자는 Mobile Access Portal의 주소 입력란에 앱의 URL을 직접 입력해야 합니다. Any를 쓸 때의 이 동작을 바꾸려면 sk112576을 참고하세요.

규칙 순서 모범 사례 — 응용 규칙이 서비스 규칙보다 위에

Unified Access Policy에서는, 응용을 권한 부여하는 Mobile Access 규칙을, 관련 서비스를 다루는 규칙보다 위에 두어야 합니다. 예컨대 웹 응용을 허용하는 규칙을 HTTP/HTTPS를 허용·차단하는 규칙보다 위에 두어야 합니다. HTTP/HTTPS 규칙이 먼저 오면, 사용자는 포털·Capsule Workspace에서 Mobile Access 웹 응용을 보지 못하고 접근도 못 합니다.

예를 들어 다음 Rule Base는 웹 기반 Mobile Access 응용인 OWA(Outlook Web Access) 를 허용하면서 HTTPS 트래픽도 허용합니다. HTTPS 서비스와 Mobile Access HTTPS 응용을 모두 올바르게 허용하는 방식 입니다.

NoNameSourceDestinationServices & ApplicationsActionTrack
1Network ruleMy_networkGW_1AnyAcceptLog
2Mobile Access Inline LayerAll Mobile Access trafficAnyAnyMobile Access Inline LayerLog
2.1Mobile Access applicationsAll Mobile Access trafficInternal AppOWA, Business MailAcceptLog
2.2Cleanup ruleAnyAnyAnyDropLog
3Allow HTTPSAnyAnyhttpsAcceptLog
4Cleanup ruleAnyAnyAnyDropNone

여기서 HTTPS 위에서 도는 OWA를 포함해 Mobile Access 응용을 허용하는 규칙 2.1 이, 모든 HTTPS 트래픽을 허용하는 규칙 3 보다 위에 있습니다. 만약 HTTPS를 허용하는 규칙 3을 Mobile Access 규칙보다 위에 두면, 사용자는 포털·Capsule Workspace에서 OWA 웹 응용을 보지 못하고 접근도 못 합니다. Mobile Access 응용을 권한 부여하려면 반드시 Services & Applications 열에 Mobile Access 응용을 써야 합니다.

Native Application의 경우

Native application 을 쓰는 다음 시나리오에서는 — Native application이 Rule Base의 Inline Layer 에 있고, 그 Native application 구성의 Authorized Locations 탭에 Any가 들어 있다면 — Inline Layer의 부모 규칙Services & Applications 열에 다음 중 하나가 들어 있어야 합니다.

  • 아무 서비스(Any service)
  • HTTPS 서비스
  • Native Application

규칙 베이스 안에서의 Mobile Access 동작

  • Policy Layer 가 있는 정책에서는, 트래픽이 승인되려면 모든 레이어에서 Accept 되어야 합니다. 마지막 레이어에서 Accept 될 때만 권한 부여 됩니다. 정책은 Mobile Access 트래픽이 Drop 규칙과 매칭되거나 모든 레이어에서 Accept 될 때까지 다음 레이어로 계속 넘어갑니다.
  • Inline Layer 에서는, 다층 정책과 마찬가지로 Mobile Access가 Inline Layer 부모 규칙에서 먼저 매칭된 뒤, Inline Layer 안의 내부 규칙에서 매칭 됩니다. Mobile Access에 적용되는 응용은 Mobile Access 응용과 매칭된 마지막 규칙 에서 가져옵니다. 만약 Inline Layer 안에서 매칭된 규칙에 Mobile Access 응용이 없으면, 정책은 Inline Layer의 부모 규칙에서 Mobile Access 응용을 찾습니다.

통합 정책에서 Mobile Access의 제약

  • Mobile Access는 Content AwarenessURL Filtering 과 함께 동작하지 않 습니다. Mobile Access가 있는 규칙에 Content Awareness·URL Filtering 객체를 쓰지 마세요.
  • Unified Access Policy의 Mobile Access 규칙에서 Access Role 에는 다음 제약이 있습니다.
    • Source 열 — Access Role은 Networks, Users, Remote Access Clients 를 포함할 수 있습니다.
    • Destination 열 — Access Role은 NetworksUsers 만 포함할 수 있습니다.
  • SSL Network Extender 가 켜져 있으면, Mobile Access Portal에 Native Applications Connect 버튼이 항상 표시 됩니다.
  • 사용자가 어떤 응용에 정의된 Protection Level 요건을 충족하지 못하면, 그 응용은 사용자에게 아예 보이지 않 습니다. Mobile Access Portal과 Capsule Workspace 모두 마찬가지입니다(반면 Legacy Mobile Access 정책에서는 응용이 보이되 비활성화됩니다).
  • Mobile Access Security Gateway를 RemoteAccess VPN Community 에서 제거했다면, VPN 열에는 반드시 Any가 들어가야 합니다.
  • Unified Policy를 구성하면, 각 응용의 authorized location(IP 주소 범위)을 원격 접근용 encryption domain 안에 포함 해야 합니다.

Protection Level — 자원별 보안 수준

Protection Level연결성과 보안 사이의 균형을 맞춘, 미리 정의된 보안 설정 묶음 입니다. 이를 통해 Mobile Access 관리자는 요건이 비슷한 응용 그룹에 대해 응용 보호를 한 번에 정의할 수 있습니다.

Mobile Access에는 기본으로 세 가지 Protection Level — Normal, Restrictive, Permissive — 이 제공됩니다. 새 Protection Level을 만들거나 기존 것의 보호 설정을 바꿀 수 있습니다.

Protection Level 사용하기

Protection Level은 대부분의 Mobile Access 응용 유형 정의에 포함 할 수 있습니다. 각 응용에는 하나의 Protection Level을 연결할 수 있으며, 모든 native 응용에는 하나의 공통 Protection Level 을 지정할 수 있습니다.

응용을 정의할 때, 응용 객체의 Protection Level 페이지에서 이 응용에 접근하기 위한 보안 요건(Security Requirements for Accessing this Application) 으로 다음 중 하나를 고릅니다.

  • This application relies on the security requirements of the gateway — 게이트웨이의 보안 요건을 그대로 따릅니다. 포털에 권한 부여된 사용자는 이 응용에도 권한 부여 됩니다. 이것이 기본 옵션 입니다.
  • This application has additional security requirements specific to the following protection level — 응용에 Protection Level을 연결합니다. 사용자는 포털 요건에 더해, 이 응용만의 보안 요건까지 충족 해야 합니다.

Protection Level 정의하기

Mobile Access 탭 에서 Protection Level 페이지로 가는 방법입니다.

  1. SmartConsole에서 Security Policies > Shared Policies > Mobile Access 를 선택하고 Open Mobile Access Policy in SmartDashboard 를 누릅니다. SmartDashboard가 열리며 Mobile Access 탭을 보여 줍니다.
  2. 탐색 트리에서 Additional Settings > Protection Levels 페이지를 누릅니다.
  3. New 를 눌러 새 Protection Level을 만들거나, 기존 것을 더블 클릭해 수정합니다. Protection Levels 창이 열리며 General Properties 페이지를 보여 줍니다.

Mobile Access 응용 에서 Protection Level 페이지로 가는 방법입니다.

  1. SmartConsole에서 Objects > Object Explorer(Ctrl+E)를 누릅니다. 또는 SmartDashboard의 Mobile Access 탭에서 Applications > 응용 유형 으로 갑니다.
  2. Mobile Access 응용을 검색합니다.
  3. 응용을 더블 클릭합니다.
  4. 탐색 트리에서 Additional Setting > Protection Level 을 선택합니다.
  5. 새 Protection Level을 만들려면 Manage > New 를 선택합니다.
  6. 기존 Protection Level 설정을 고치려면, 드롭다운 목록에서 Protection Level을 고른 뒤 Manage > Details 를 선택합니다. Protection Levels 창이 열리며 General Properties 페이지를 보여 줍니다.

Protection Level의 설정을 구성하는 방법입니다.

  1. Protection Level 창의 General Properties 페이지에서 Protection Level의 Name(새 Protection Level일 때만) 을 입력합니다.
  2. 탐색 트리에서 Authentication 을 누르고, 사용 가능한 항목 중 하나 이상의 인증 방식 을 선택합니다. 이 Protection Level이 걸린 응용에 접근하는 사용자는 선택된 인증 방식 중 하나로 인증 해야 합니다.
  3. 필요하면 User must successfully authenticate via SMS(SMS로 성공적으로 인증해야 함) 를 선택합니다.
  4. 탐색 트리에서 Endpoint Security 를 누르고, 다음 중 하나 또는 둘 다 선택합니다.
    • Applications using this Protection Level can only be accessed if the endpoint machine complies with the following Endpoint compliance policy — 정책도 함께 고릅니다. 이 옵션은 스캔된 클라이언트 컴퓨터가 선택한 정책을 준수할 때만 연결된 응용에 접근을 허용합니다.
    • Applications using this Protection Level can only be accessed from within Secure Workspace — 클라이언트 컴퓨터에서 Secure Workspace 가 실행 중이어야 접근을 허용합니다.
  5. OK 를 눌러 Protection Level 창을 닫습니다.
  6. 정책을 설치합니다.

MDM Cooperative Enforcement — 모바일 기기 상태 강제

배경

제3자 벤더를 통한 Mobile Device Management(MDM) 지원은, 내부 자원에 접근하는 기기에 통합 보안 정책을 강제 합니다. 조직 보안 정책을 준수하는 관리 기기만이 성공적으로 연결해 사내 자원에 접근 할 수 있습니다.

Check Point 앱은 Check Point Security Gateway를 거쳐 회사 네트워크로 보안 VPN 연결을 엽니다. 게이트웨이는 MDM 서버의 정책을 조회 하고, VPN 연결이 맺어질 때 MDM 서버는 직원 모바일 기기의 준수 수준을 확인합니다. 게이트웨이는 MDM 결과와 사용자 권한을 종합해, 기기 보안 상태에 따라 접근을 허용하거나 차단 합니다.

이 기능은 Check Point Capsule ConnectCapsule Workspace 클라이언트 에서 지원됩니다.

  • 최신 벤더 정보는 sk98201을 참고하세요.
  • iOS 7에서 MDM Cooperative Enforcement를 구성하려면 sk98447을 참고하세요.

MDM Enforcement 작업 흐름 개요 입니다.

  1. 전제 조건:
    • 필요한 벤더 라이선스로 설정된 MDM 계정.
    • Capsule Connect 또는 Capsule Workspace 에 필요한 라이선스.
    • 지원되는 iOS·Android 기기를 가진 사용자.
  2. Mobile Access Security Gateway에 MDM을 구성 합니다.
  3. iOS 7 전용: MDM 벤더용 설정과 정책을 구성합니다(sk98447 참고).
  4. 모바일 기기 또는 Security Gateway에서 MDM 기능이 동작하는지 확인 합니다.

Security Gateway에서 MDM 구성하기

Mobile Access Gateway에서 MDM Enforcement는 구성 파일 로 켭니다. 절차는 이렇습니다.

  1. Mobile Access Gateway의 명령줄에 접속합니다.
  2. Expert mode 로 로그인합니다.
  3. $FWDIR/conf/mdm.conf 파일을 편집합니다.
   vi $FWDIR/conf/mdm.conf
   
  1. 전역 파라미터(아래 요약 표 참고)를 편집합니다.
    • MDM CE를 켭니다 — enabled 파라미터 값을 1로 설정합니다.
     :enabled (1)
     
  • 나머지 전역 파라미터를 구성합니다.
  • 벤더 파라미터(아래 요약 표 참고)를 편집합니다.
  • 파일의 변경을 저장하고 편집기를 빠져나옵니다.
  • 구성을 테스트합니다.
  • SmartConsole에서 Mobile Access Gateway에 Access Control Policy 를 설치합니다.

전역 MDM CE 파라미터

파라미터설명
enabledMDM CE 상태를 제어합니다 — 0은 MDM 비활성화, 1은 MDM 활성화.
monitor_onlyMDM 모드를 제어합니다 — 0은 전면 강제(non-compliant 기기는 로그인 불가), 1은 모니터링만(non-compliant 기기도 로그인되며 시도가 로그로 남음).
fail_open게이트웨이가 MDM 상태를 확인하다가 오류가 나는 등 불확실한 경우의 동작 을 정합니다 — 0은 게이트웨이가 원격 접근 세션을 거부, 1은 허용.
session_timeout_in_sec게이트웨이와 MDM 클라우드 서비스 사이에서 기기 준수 상태를 판단하는 타임아웃(초)을 제어합니다. 시간 측정은 기기 로그인 시점에 시작하며, 타임아웃이 지나면 게이트웨이는 fail_open 값에 따른 동작을 수행합니다. 권장: 기본값 (15) 유지.
active_vendorMDM 준수를 테스트할 활성 제3자 벤더 이름. 여러 MDM 벤더를 구성할 수 있지만 활성은 하나만 가능합니다("Advanced Vendor Support" 참고).
password_is_obscuredmdm.conf 파일에서 password 파라미터가 어떻게 보일지 제어합니다 — 0은 평문으로 표시, 1은 난독화된 문자열로 표시("Obfuscating Passwords" 절 참고). 권장: 기본값 (1) 유지.
verify_ssl_cert게이트웨이가 MDM 클라우드 서비스에 접근할 때 SSL 인증서 검증을 수행할지 제어합니다 — 0은 검증 안 함, 1은 검증 수행(DNS poisoning·spoofing·man-in-the-middle 같은 게이트웨이 대상 공격을 막음). 권장: 기본값 (1) 유지.
ssl_ca_bundle_path게이트웨이에 있는, 알려진 CA 인증서 파일의 로컬 경로. 인증서를 더 추가할 수 있습니다. 권장: 기본 경로 유지.
ssl_cipher_list게이트웨이와 MDM 클라우드 서비스 사이 HTTPS에 허용되는 cipher 목록. 권장: 기본 목록 유지.
ssl_use_tls_v1게이트웨이와 MDM 클라우드 서비스 사이 HTTPS에 TLSv1을 쓸지 SSL을 쓸지 제어합니다 — 0은 SSL, 1은 TLSv1. 권장: 기본값 (1) 유지.

벤더 MDM 파라미터

mdm.conf 파일에는 벤더마다 옵션 블록 이 하나씩 있습니다. 벤더의 API와 PHP 언어를 이해한다면 블록을 더 추가할 수 있습니다("Advanced Vendor Support" 참고). 최신 벤더 정보는 sk98201을 참고하세요.

mdm.conf 파일에서 password 난독화하기

전역 파라미터 password_is_obscured 값이 (1) 이면, $FWDIR/conf/mdm.conf 파일의 모든 password를 난독화 해야 합니다. 절차는 이렇습니다.

  1. Mobile Access Gateway의 명령줄에 접속합니다.
  2. Expert mode 로 로그인합니다.
  3. 다음을 실행합니다.
   obfuscate_password <password in clear text>
   

출력은 문자열입니다(예: 33542b323a3528343640). 4. 이 출력을 password 파라미터의 값으로 씁니다. 반드시 큰따옴표로 감싸야 합니다.

   :password ("[obfuscated password]")
   
  1. 파일의 변경을 저장하고 편집기를 빠져나옵니다.
  2. SmartConsole에서 Mobile Access Gateway에 Access Control Policy를 설치합니다.

Advanced Vendor Support — 벤더 직접 추가

$FWDIR/conf/mdm.conf 파일에 벤더를 더 추가할 수 있습니다. 단, PHP 프로그래밍 기술과 제3자 MDM 벤더의 클라우드 API에 대한 이해 가 필요합니다.

아래 예시 절차에서는 가상의 MDM 벤더 이름으로 BestMDM 을 씁니다. BestMDM의 API는 자격 증명과 기기 ID가 든 XML 요청을 자사 URL로 보내야 하며, 기기 상태(status)와 사유(reason)가 든 XML 응답을 돌려줍니다.

예시 요청(Request) :

     <username>api_username</username>
     <password>api_password</password>
     <device>device_id</device>
</request>

예시 응답(Response) :

     <status>compliance_status_code</status>
     <reason>reason</reason>
</response>

예시 URL :

https://bestmdm.com/api

새 제3자 벤더 지원을 추가하는 방법입니다.

  1. $CVPNDIR/phpincs/MDMVendors.php 파일을 편집합니다.
   vi $CVPNDIR/phpincs/MDMVendors.php
   
  1. 다음 문자열을 검색합니다.
   to add another vendor uncomment the following
   
  1. 다음 분기의 주석을 제거합니다.
   case "MDM_VENDOR_NAME"
   

주의: - case 단어 위의 /* 문자를 제거합니다. - break 단어 뒤의 */ 문자를 제거합니다. - MDM 벤더 이름을 입력합니다.

예시:

   case "BestMDM":
        BestMDM($mdm_data);
        break;
   
  1. 파일 끝에 새 PHP 함수를 추가합니다. 이 함수는 벤더의 클라우드 API에 접근하여 status와 reason 배열을 반환 해야 합니다. 예시:
   function BestMDM($mdm_data) {
   // Build the request XML
        $request_xml = new SimpleXMLElement
   ("<request><username/><password/><device/></request>");
   // Fill its fields with data from $mdm_data.
   // Note that "username", "password" and "device_id" always in $mdm_data.
        $request_xml->username = $mdm_data["username"];
        $request_xml->password = $mdm_data["password"];
        $request_xml->device = $mdm_data["device_id"];
   // Make POST request using the supplied class URLRequest
   // (The class URLRequest is defined in the same .php file).
        $url = "https://bestmdm.com/api";
        $conn = new URLRequest(); // open HTTP/HTTPS request session
        $resp_data = $conn->Request( $url, $post_body = $xml->asXML() );
   // Handle possible network error.
        If ($resp_data === FALSE)
   return array("status"=>MDM_ERROR, "reason"=>
        $conn->get_error_message());
   // Now $resp_data is raw string returned by the cloud API. Parse it as XML:
        $resp_xml = new SimpleXMLElement($resp_data);
   // Check the status codes returned by the vendor's API.
        $status = MDM_ERROR;
   switch ($resp_xml->status) {
   case "not_managed":
   return array("status"=>MDM_NOT_MANAGED, "reason"=>"");
   case "compliant":
   return array("status"=>MDM_COMPLIANT, "reason"=>"");
   case "not_compliant":
   return array("status"=>MDM_NOT_COMPLIANT, "reason"=>$resp_xml->reason);
   default:
   return array("status"=>MDM_ERROR, "reason"=>"unknown status");
             } // end switch
        } // end BestMDM compliance protocol handler
   

함수가 반환하는 상태 코드(Status Codes) 의 의미입니다.

상태 코드의미
MDM_ERRORMDM 벤더의 클라우드 API에 접근하던 중 오류가 발생했습니다.
MDM_NOT_MANAGED기기가 벤더 데이터베이스에 등록되어 있지 않습니다.
MDM_NOT_COMPLIANT벤더가 그 기기를 "정책 미준수(not compliant)"로 알고 있습니다.
MDM_COMPLIANT벤더가 그 기기를 "정책 준수(compliant)"로 알고 있습니다.
        "device_id"=><MAC address of device, or other ID known by the vendor>,
        "username"=><username to access the API of the MDM vendor>,
        "password"=><password to access the API of the MDM vendor>
   )
   

$mdm_data 예시 — mdm.conf 파일의 구성이 $mdm_data 에서 어떻게 표현되는지 보여 줍니다.

mdm.conf 파일의 구성$mdm_data의 구성
:enabled (1)<br>:monitor_only (0)<br>:fail_open (0)<br>:active_vendor (BestVendor)<br>:BestVendor (<br> :username (MyUser)<br> :auth_key (12345)<br>)"enabled"=>1,<br>"monitor_only"=>0,<br>"fail_open"=>0,<br>"active_vendor"=>"BestVendor",<br>"username"=>"MyUser",<br>"auth_key"=>"12345",<br>"device_id"=>"12:34:56:78:9A:BC:DE:F0"
   vi $FWDIR/conf/mdm.conf
   
  1. 마지막 블록 뒤에 새 벤더용 섹션을 추가합니다. 예시:
   :BestMDM (
   :username (MyUserName)
   :password (123456)
   )
   
  1. 전역 파라미터 active_vendor 값을 새 벤더 이름으로 바꿉니다.
   For example: :active_vendor (BestMDM)
   
  1. 파일의 변경을 저장하고 편집기를 빠져나옵니다.
  2. SmartConsole에서 Mobile Access Gateway에 Access Control Policy를 설치합니다.

MDM 테스트하기

MDM 기능이 올바르게 구성됐는지 확인하는 방법입니다.

  • 모바일 기기에서 Capsule Workspace 와/또는 Capsule Connect / VPN 을 실행합니다.
  • Security Gateway에 연결합니다.
  • SmartConsole(Logs & Events)이나 SmartView에서 Mobile Access 로그인 로그를 찾습니다. 기기 로그인 상세의 Compliance Check, Information, Reason 값에 MDM 준수 상태와 요건에 관한 데이터 가 나타납니다.

Advanced Testing — 기기 없이 테스트하기

기기를 손에 들지 않고도 MDM 구성이 동작하는지 확인할 수 있지만, 전문 지식이 필요 합니다. 테스트 웹 페이지에 로그인해 실제 기기의 WiFi MAC 주소 를 입력하는 방식입니다. 보안을 위해 이 MDM 테스트 페이지는 기본적으로 비활성화 되어 있습니다.

테스트 페이지를 켜는 방법입니다.

  1. Mobile Access Gateway의 명령줄에 접속합니다.
  2. Expert mode 로 로그인합니다.
  3. $CVPNDIR/conf/includes/Login.location.conf 파일을 백업합니다.
   cp -v $CVPNDIR/conf/includes/Login.location.conf{,_BKP}
   
  1. $CVPNDIR/conf/includes/Login.location.conf 파일을 편집합니다.
   vi $CVPNDIR/conf/includes/Login.location.conf
   
  1. 다음 텍스트를 검색하고, 그 섹션의 지시를 따릅니다.
   To test your integration with the MDM vendor
   
  1. 파일의 변경을 저장하고 편집기를 빠져나옵니다.
  2. Mobile Access 서비스를 재시작합니다.
   
   https://<Host Name of Mobile Access Portal>/sslvpn/Login/MDMProxy
   
  1. 기기 MAC 주소를 입력합니다.
  2. Submit 을 누릅니다. 페이지 상태 표시줄에 기기 상태(compliant·incompliant·unmanaged) 또는 게이트웨이가 MDM 벤더 웹 서비스에 연결하다 만난 오류가 표시됩니다.
  3. Mobile Access Gateway에서 $CVPNDIR/conf/includes/Login.location.conf 파일을 원래대로 되돌립니다.
    cp -v $CVPNDIR/conf/includes/Login.location.conf{_BKP,}
    
  1. Mobile Access 서비스를 재시작합니다.
    

진단 예시(Example Diagnostics) — 테스트가 실패할 때 흔한 원인입니다.

  • MDM 벤더 클라우드 서비스용 파라미터(Username·Password 등)가 $FWDIR/conf/mdm.conf 에 올바르게 구성되지 않았습니다.
  • MDM 벤더 클라우드 서비스 접근에 네트워크 문제가 있습니다.
  • SSL 인증서에 문제가 있어, Mobile Access 게이트웨이가 MDM 벤더 클라우드 서비스에 접근하지 못합니다.