소개
이 문서에서는 RAVPN 클라이언트를 기반으로 하는 보안 방화벽 디바이스에서 동적 액세스 정책을 수행하고 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- FMC에 보안 방화벽을 등록하고 최신 버전의 컨피그레이션 파일로 동기화합니다.
- 등록된 보안 방화벽에서 RAVPN(Remote Access Virtual Private Network) 정책을 미리 구성합니다.
- Hostscan 패키지(.pkg)를 해당 버전의 Anyconnect Security Mobility Client와 함께 다운로드합니다.
- RAVPN 솔루션에 대한 기본 지식
- DAP 기능에 대한 일반 개념
- Firewall Management Center 관리 및 컨피그레이션 지식 보호
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- FMC 7.0.0 버전 이상
- Secure Firewall 7.0.0 버전 이상
- Cisco Secure Client Anyconnect 소프트웨어 4.10 이상이 설치된 MAC/Windows 시스템
- Hostscan package 4.10 이상
- AAA 인증을 위한 Active Directory.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
이 문서에서는 RAVPN 클라이언트 시스템 특성을 기반으로 보안 방화벽 디바이스에서 동적 액세스 정책을 수행하고 구성하는 방법에 대한 단계별 가이드를 설명합니다. HostScan은 클라이언트 정보를 수집하는 데 사용되며 DAP는 Mac OS 및 Windows 사용자에게 각각 다른 정책을 적용합니다.
RAVPN 설계는 네트워크 관리자가 제어할 수 없는 다양하고 동적인 시나리오에서 실행됩니다. 일반적으로 동일한 VPN 게이트웨이에 연결되는 여러 연결이 있습니다. 이러한 연결은 여러 변수(예: 사용자 이름, 조직, 하드웨어 장치, 작동 시스템 등)에 따라 각 연결의 위협 방식을 결정할 수 있습니다. 그중 일부는 사용자 역할을 부여하거나 프로그램 및 애플리케이션에 대한 액세스, 다른 IP 주소 할당 또는 서브넷 필터 규칙을 요구할 수 있습니다.
DAP(Dynamic Access Policies, 동적 액세스 정책)는 Cisco Secure Firewall Threat Defense의 소프트웨어 릴리스 7.0.0에 도입된 새로운 기능으로, 네트워크 관리자가 하나 또는 여러 기준(DAP 기준)에 해당하는 Cisco Secure Client(Anyconnect)의 RAVPN 클라이언트 특성 컬렉션에 따라 위에서 설명한 동적 환경에서 실행되는 여러 사용자에게 서로 다른 정책을 적용할 수 있습니다.
Anyconnect 소프트웨어는 RAVPN 클라이언트 기능 및 Posture 모듈에 호스트 및 HostScan 애플리케이션에서 이 정보를 수집합니다.
구성
네트워크 다이어그램
설정
1. 관리자 자격 증명을 사용하여 FMC GUI에 로그인하고 홈 대시보드 보기에서 Devices(디바이스)를 클릭하고 확장된 메뉴에서 Dynamic Access Policy(동적 액세스 정책)를 선택합니다.
2. Dynamic Access Policy(동적 액세스 정책) 보기에서 Create Dynamic Access Policy(동적 액세스 정책 생성)를 클릭합니다.
3. DAP 정책의 이름을 지정하고 HostScan 패키지 드롭다운 메뉴 옆에 있는 새로 만들기(이 작업은 개체 관리자 섹션으로 새 브라우저 탭을 열 수 있음)를 선택합니다.
참고:HostScan 이미지가 이미 업로드된 경우 드롭다운 메뉴에서 이미지를 선택하고 Save(저장)를 클릭한 다음 6단계로 건너뜁니다.
4. Object(개체) 탭 보기에서 Add Secure Client File(보안 클라이언트 파일 추가)"으로 이동하여 HostScan 패키지를 업로드합니다.
5. 파일 이름을 지정하고 Browse(찾아보기)를 클릭하여 로컬 파일에서 HostScan 패키지(.pkg)를 업로드한 다음 File type(파일 유형) 드롭다운 메뉴에서 HostScan 패키지를 선택한 다음 Save(저장)를 클릭합니다.
6. 3단계에서 Create Dynamic Access Policy(동적 액세스 정책 생성) 탭으로 돌아갑니다.
Dynamic Access Policy(동적 액세스 정책)의 이름을 지정합니다. 이번에는 드롭다운 메뉴에서 새 HostScan 패키지를 확인하고 Save(저장)를 클릭합니다.
7. 새 DAP 편집기 창으로 리디렉션할 수 있습니다. Create DAP Record(DAP 레코드 만들기)를 클릭하여 새 항목을 생성합니다.
참고: 이 예에서는 RAVPN Anyconnect 클라이언트에서 OS 정보를 수집하고 호스트 시스템에서 Mac OS를 실행하는 경우 연결을 허용하도록 DAP 레코드를 구성할 수 있습니다.
8. DAP 레코드의 이름을 지정하고, Display User Message on Criterion Match(기준 일치에 사용자 메시지 표시)를 확인하고, 프롬프트 메시지를 입력하여 OS를 기반으로 연결이 DAP에 연결되었음을 사용자에게 알립니다. Action(작업) 필드에서 연결을 허용하려면 Continue(계속)를 선택합니다.
참고: 케이스에 따라 적용할 조치로 종료 또는 격리를 선택할 수 있습니다.
참고: 네트워크 요구 사항에 따라 네트워크 ACL 또는 보안 클라이언트 특성을 적용할 수도 있습니다.
9. Endpoint Criteria(엔드포인트 조건) 탭으로 이동하여 OS system(OS 시스템)을 선택하고 equals Mac OS X(같음 Mac OS X)를 지정하고, Version(버전) 드롭다운을 비워 둡니다. 이 예에서는 버전에 관계없이 Mac OS를 탐지할 수 있도록 의도한 다음, Save(저장)를 클릭합니다.
참고: 이 문서에서는 엔드포인트 기준 특성이 사용되지만 LDAP 또는 RADIUS 특성 일치에 대해 AAA 기준을 사용할 수 있습니다.
10. Endpoint Criteria(엔드포인트 기준) 탭에서 새 OS System(OS 시스템) 기준을 확인한 후 Match criteria(기준 일치) 옵션을 볼 수 있습니다.
Any를 선택합니다.
주: 요구 사항에 따라 여러 기준 항목을 생성하고 모두 대응 또는 모두 대응을 선택할 수 있습니다.
11. 페이지의 오른쪽 하단으로 이동하여 Save(저장)를 클릭합니다.
11. 새 Mac OS DAP 레코드를 구성 매개 변수와 함께 표시할 수 있으며, 해당 레코드가 올바른지 확인하고 Create DAP Record(DAP 레코드 만들기)를 클릭하여 Windows OS 탐지를 위한 새 레코드를 만듭니다.
참고: 이 예에서는 Windows 클라이언트를 차단하고 RAVPN 연결을 위한 Mac OS만 허용합니다.
12. DAP 레코드의 이름을 지정하고 Action(작업) 필드에서 Terminate(종료)를 선택한 다음 사용자에게 보낼 경고 메시지 프롬프트를 입력합니다.
13. Endpoint Criteria(엔드포인트 기준) 탭으로 이동하여 Operate System(작동 시스템) 섹션 아래에 동일한 기준을 새로 만들고, Windows 10을 해당 OS로 선택한 다음 Save(저장)를 클릭하고 Match Any(모두 일치)를 선택합니다.
14. 오른쪽 하단으로 이동하여 저장을 클릭합니다.
15. DAP 메뉴에서 새 컨피그레이션과 함께 두 개의 새 항목이 있는지 확인합니다.
16. 동적 액세스 정책이 생성되었습니다. 동적 액세스 정책을 RAVPN 설정에 적용하려면 FMC GUI에서 Devices(디바이스) 탭으로 이동하여 Remote Access(원격 액세스)를 클릭합니다.
17. 사전 구성된 RAVPN 정책을 선택하고 edit 버튼(연필 아이콘)을 클릭합니다.
18. 오른쪽 상단 모서리에서 Dynamic Access Policy 텍스트 레이블 옆에 있는 None(없음)을 클릭합니다.
19. Dynamic Access Policy(동적 액세스 정책) 창에서 방금 생성한 DAP 정책을 선택하고 OK(확인)를 클릭합니다.
20. 오른쪽 상단 모서리에서 Dynamic Access Policy(동적 액세스 정책) 텍스트 레이블 옆에 DAP가 적용되는지 확인하고 Save(저장)를 클릭합니다.
변경 사항을 구축하고 FMC GUI에서 Deploy(구축) 탭을 클릭한 다음 FTD Device(FTD 디바이스)를 선택하고 Deploy(구축) 버튼을 클릭합니다.
다음을 확인합니다.
1. 보안 방화벽에서 CLI(Command Line Interface)로 이동하여 HostScan 컨피그레이션이 적용되었는지 확인합니다.
firepower# sh run webvpn
webvpn
enable OUTSIDE
enable
hostscan image disk0:/csm/hostscan_4.10.06083-k9.pkg
hostscan enable
anyconnect image disk0:/csm/anyconnect-macos-4.10.04071-webdeploy-k9.pkg 1 regex "Mac OS"
anyconnect enable
.
.
firepower# sh run all dynamic-access-policy-record
dynamic-access-policy-record DfltAccessPolicy
user-message "nDID NOT MEET THE CRITERIA! TERMINATING"
action terminate
dynamic-access-policy-record "MAC USER"
user-message "DAP-TEST MATCH!!!!MAC USER DETECTED"
action continue
priority 0
dynamic-access-policy-record "WINDOWS USER"
user-message "WINDOWS DEVICE DETECTED!!TERMINATING CONNECTION!"
action terminate
priority 1
2. dap.xml 파일이 생성되어 플래시에 저장되었는지 확인합니다.
firepower# sh flash:
--#-- --length-- -----date/time------ path
76 4096 Feb 03 2023 19:01:10 log
222 1293 Feb 09 2023 17:32:16 dap.xml
3. dap.xml 콘텐츠 표시
firepower# more flash:dap.xml
MAC USER
and
match-any
match-all
endpoint.os.version
EQ
Mac OS X
WINDOWS USER
and
match-any
match-all
endpoint.os.version
EQ
Windows 10
문제 해결
이 섹션에서는 DAP 프로세스가 수행되고 정상적으로 작동하는 방법을 트러블슈팅하고 확인하는 데 사용할 수 있는 정보를 제공합니다.
참고: 보안 방화벽에서 다양한 디버그 레벨을 설정할 수 있습니다. 기본적으로 레벨 1이 사용됩니다. 디버그 수준을 변경하면 디버그의 세부 정도가 증가할 수 있습니다. 특히 프로덕션 환경에서는 이 작업을 신중하게 수행해야 합니다.
Mac OS로 테스트합니다.
사용자가 하나의 Mac OS 디바이스에서 연결을 시도하는 동안 DAP 디버그를 활성화합니다.
firepower# debug dap trace 127
debug dap trace enabled at level 127
firepower# debug dap errors
debug dap errors enabled at level 1
Mac OS 디바이스를 시작하고 Anyconnect 애플리케이션을 실행하고 IP 주소/호스트 이름/FQDN에 연결한 다음 요청된 인증 방법으로 Connect login(로그인 연결)을 클릭합니다.
Secure Firewall CLI에서 출력 디버깅
firepower#
firepower# DAP_TRACE: DAP_open: New DAP Request: 9
DAP_TRACE[5]: Username: ad1, DAP_add_AC:
endpoint.anyconnect.clientversion = "4.10.06079";
endpoint.anyconnect.platform = "mac-intel";
endpoint.anyconnect.devicetype = "MacBookPro17,1";
endpoint.anyconnect.platformversion = "13.1.0";
.
.
.
DAP_TRACE: aaa["ldap"]["displayName"] = "ad1"
DAP_TRACE: aaa["ldap"]["memberOf"] = "AD-USERS-ONLY"
DAP_TRACE: aaa["ldap"]["name"] = "ad1"
.
.
.
DAP_TRACE: aaa["cisco"]["tunnelgroup"] = "RA-VPN"
DAP_TRACE: endpoint["application"]["clienttype"] = "AnyConnect"
DAP_TRACE: endpoint.os.version = "Mac OS X"
DAP_TRACE: endpoint.os.servicepack = "13.1"
.
.
.
DAP_TRACE: Username: ad1, Selected DAPs: ,MAC USER
DAP_TRACE: dap_process_selected_daps: selected 1 records
DAP_TRACE: Username: ad1, dap_concat_fcn: [DAP-TEST MATCH!!!!MAC USER DETECTED] 35 490
DAP_TRACE: Username: ad1, DAP_close: 9
Mac OS 클라이언트 프롬프트.
Windows 10 장치로 테스트합니다.
DAP 디버그를 실행하고 하나의 Windows 10 장치에서 연결을 시도합니다.
firepower# debug dap trace 127
debug dap trace enabled at level 127
firepower# debug dap errors
debug dap errors enabled at level 1
Windows 10 디바이스를 시작하고 Anyconnect 애플리케이션을 실행하고 IP 주소/호스트 이름/FQDN에 연결한 다음 요청된 인증 방법으로 Connect login(로그인 연결)을 클릭합니다.
firepower#
firepower# DAP_TRACE: DAP_open: New DAP Request: A
DAP_TRACE[5]: Username: ad1, DAP_add_AC:
endpoint.anyconnect.clientversion = "4.10.05111";
endpoint.anyconnect.platform = "win";
endpoint.anyconnect.devicetype = "LENOVO";
endpoint.anyconnect.useragent = "AnyConnect Windows 4.10.05111";
.
.
.
AP_TRACE: aaa["cisco"]["grouppolicy"] = "agarciam"
DAP_TRACE: aaa["cisco"]["username"] = "ad1"
DAP_TRACE: aaa["cisco"]["tunnelgroup"] = "RA-VPN"
DAP_TRACE: endpoint["application"]["clienttype"] = "AnyConnect"
DAP_TRACE: endpoint.os.version = "Windows 10"
.
.
.
DAP_TRACE: Username: ad1, Selected DAPs: ,WINDOWS USER
DAP_TRACE: dap_process_selected_daps: selected 1 records
DAP_TRACE: Username: ad1, dap_concat_fcn: [WINDOWS DEVICE DETECTED!!TERMINATING CONNECTION!] 48 490
DAP_TRACE: Username: ad1, DAP_close: A
Windows 10 사용자 프롬프트입니다.