本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹將Duo SAML SSO與利用思科ISE進行詳細安全評估的Cisco AnyConnect安全移動客戶端訪問自適應安全裝置(ASA)整合的配置示例。Duo SAML SSO使用Duo訪問網關(DAG)實現,DAG與Active Directory通訊以進行初始使用者身份驗證,然後與Duo Security (Cloud)通訊以進行多因素身份驗證。思科ISE用作授權伺服器,用於使用狀態評估提供終端驗證。
作者:Dinesh Moudgil和Pulkit Saxena,Cisco HTTS工程師。
注意:此實施中使用的Anyconnect嵌入式瀏覽器要求在每個版本的9.7(1)24、9.8(2)28、9.9(2)1或更高版本以及AnyConnect版本4.6或更高版本上安裝ASA。
注意:Cisco ISE僅針對授權進行配置,因為Duo接入網關提供必需的身份驗證
在本部分中,在Duo管理門戶上配置ASA應用。
1. 登入「Duo管理門戶」,導航至應用>保護應用,然後搜尋保護型別為「2FA with Duo Access Gateway, self-hosted」的「ASA」。點選最右邊的「保護」配置Cisco ASA
2. 在服務提供商下為受保護的應用程式ASA配置以下屬性
基本URL | firebird.cisco.com |
隧道組 | TG_SAML |
郵件屬性 | sAMAccountName,mail |
點選頁面底部的「儲存」
在本文檔中,其餘配置使用預設引數,但可以根據客戶要求進行設定。
此時可以為新SAML應用程式調整其他設定,例如從預設值更改應用程式名稱、啟用自助服務或分配組策略。
3. 按一下「下載配置檔案」連結獲取Cisco ASA應用設定(作為JSON檔案)。此檔案會在後續步驟中上傳到Duo Access Gateway
4. 在Dashboard > Applications下,新建立的ASA應用如下圖所示:
5. 切換作業選項至「使用者>新增使用者」,如下圖所示:
建立一個名為「duouser」的使用者用於Anyconnect遠端訪問身份驗證,並在終端使用者裝置上啟用Duo Mobile
要增加電話號碼(如圖所示),請選擇「增加電話」選項。
為特定使用者啟用「Duo Mobile」
註:確保在終端使用者裝置上安裝「Duo Mobile」。
手動安裝IOS裝置的Duo應用程式
手動安裝Duo應用程式(適用於Android裝置)
選擇「Generate Duo Mobile Activation Code」,如下圖所示:
選擇「Send Instructions by SMS」(透過簡訊傳送說明),如圖所示:
點選SMS中的連結,Duo應用程式將連結到「裝置資訊」部分中的使用者帳戶,如圖所示:
注意:請遵循下列檔案進行部署:
Linux版Duo存取閘道
https://duo.com/docs/dag-linux
Windows版Duo存取閘道
https://duo.com/docs/dag-windows
本節提供有關配置ASA以進行SAML IDP身份驗證和基本AnyConnect配置的資訊。本文檔提供了ASDM配置步驟和CLI運行配置以獲得概述。
1. 上傳Duo接入網關證書
A.導航到配置>裝置管理>證書管理> CA證書,點選「增加」
B.在「Install Certificate Page」上,配置信任點名稱:Duo_Access_Gateway
C.按一下「瀏覽」選擇與DAG證書關聯的路徑,選擇後,按一下「安裝證書」
2. 為AnyConnect使用者建立IP本地池
導航到Configuration > Remote Access VPN > Network (Client) Access > Address Assignment > Address Pools,按一下「Add」
3. 配置AAA伺服器組
A.在此部分,配置AAA伺服器組並提供執行授權的特定AAA伺服器的詳細資訊
B.導航到Configuration > Remote Access VPN > AAA/Local Users > AAA Server Groups,然後按一下Add
C.在同一頁的「Servers in the Selected group」部分下,按一下「Add」並提供AAA伺服器的IP地址詳細資訊
4. 對映AnyConnect客戶端軟體
A.對映用於WebVPN的Windows的AnyConnect客戶端軟體webdeploy映像4.8.03052
B.導航到配置>遠端接入VPN >網路(客戶端)接入> AnyConnect客戶端軟體,點選「增加」
5. 配置從ISE推送的重定向ACL
A.導航到Configuration > Firewall > Advanced > ACL Manager,按一下Add增加重定向ACL。配置後,這些條目如下所示:
6. 驗證現有組策略
A.此設定使用預設組策略,可以在以下位置檢視:Configuration > Remote Access VPN > Network (Client) Access > Group Policies
7. 配置連線配置檔案
A.建立AnyConnect使用者連線的新連線配置檔案
B.導航到配置>遠端接入VPN >網路(客戶端)接入> Anyconnect連線配置檔案,點選「增加」
C.配置以下與連線配置檔案相關的詳細資訊:
名稱 | TG_SAML |
別名 | SAML使用者 |
方法 | SAML |
AAA伺服器組 | 本機 |
客戶端地址池 | AC_Pool |
群組原則 | DfltGrpPolicy |
D.在同一頁面上,設定SAML辨識提供者詳細資訊,如下所示:
E.點選「管理>增加」
F.在連線配置檔案的「高級」部分下,定義用於授權的AAA伺服器
導航到「高級>授權」,然後按一下「增加」
G.在「組別名」下,定義連線別名
導航到「高級>組別名/組URL」,然後按一下「增加」
H.這將完成ASA配置,命令列介面(CLI)上的配置如下所示
! hostname firebird domain-name cisco.com !
!
name 10.197.164.7 explorer.cisco.com name 10.197.164.3 firebird.cisco.com ! !--------------------Client pool configuration--------------------
!
ip local pool AC_Pool 10.197.164.6-explorer.cisco.com mask 255.255.255.0 !
!--------------------Redirect Access-list-------------------------
! access-list redirect extended deny udp any any eq domain access-list redirect extended deny ip any host 10.197.243.116 access-list redirect extended deny icmp any any access-list redirect extended permit ip any any access-list redirect extended permit tcp any any eq www !
!--------------------AAA server configuration---------------------
! aaa-server ISE protocol radius authorize-only interim-accounting-update periodic 1 dynamic-authorization aaa-server ISE (outside) host 10.106.44.77 key ***** !
!-----Configure Trustpoint for Duo Access Gateway Certificate-----
! crypto ca trustpoint Duo_Access_Gateway enrollment terminal crl configure !
!-------Configure Trustpoint for ASA Identity Certificate---------
! crypto ca trustpoint ID_CERT enrollment terminal fqdn firebird.cisco.com subject-name CN=firebird.cisco.com ip-address 10.197.164.3 keypair ID_RSA_KEYS no ca-check crl configure !
!------Enable AnyConnect and configuring SAML authentication------
! webvpn enable outside hsts enable max-age 31536000 include-sub-domains no preload anyconnect image disk0:/anyconnect-win-4.8.03052-webdeploy-k9.pkg 1 anyconnect enable saml idp https://explorer.cisco.com/dag/saml2/idp/metadata.php url sign-in https://explorer.cisco.com/dag/saml2/idp/SSOService.php url sign-out https://explorer.cisco.com/dag/saml2/idp/SingleLogoutService.php?ReturnTo=https://explorer.cisco.com/dag/module.php/duosecurity/logout.php base-url https://firebird.cisco.com trustpoint idp Duo_Access_Gateway trustpoint sp ID_CERT no signature no force re-authentication timeout assertion 1200 tunnel-group-list enable cache disable error-recovery disable !
!--------------------Group Policy configuration--------------------
! group-policy DfltGrpPolicy attributes vpn-tunnel-protocol ikev1 ikev2 l2tp-ipsec ssl-client ssl-clientless !
!----------Tunnel-Group (Connection Profile) Configuraiton----------
! tunnel-group TG_SAML type remote-access tunnel-group TG_SAML general-attributes address-pool AC_Pool authorization-server-group ISE accounting-server-group ISE tunnel-group TG_SAML webvpn-attributes authentication saml group-alias SAML_Users enable saml identity-provider https://explorer.cisco.com/dag/saml2/idp/metadata.php !
1. 增加Cisco ASA作為網路裝置
在Administration > Network Resources > Network Devices下,按一下Add。
配置網路裝置的名稱和關聯的IP地址,並在「Radius身份驗證設定」下配置「共用金鑰」並按一下「儲存」
2. 安裝最新的狀態更新
導航到「管理>系統>設定>狀態>更新」,然後按一下「立即更新」
3. 在ISE上上傳合規性模組和AnyConnect頭端部署包
導航到「策略>策略元素>結果>客戶端調配>資源」。按一下「增加」,然後根據是從本地工作站還是從思科站點獲取檔案,選擇「本地磁碟上的代理資源」或「思科站點上的代理資源」。
在本例中,要從「類別」下的本地工作站上傳檔案,請選擇「思科提供的包」,然後按一下「瀏覽」並選擇所需的包,然後按一下「提交」。
本文檔使用「anyconnect-win-4.3.1012.6145-isecompliance-webdeploy-k9.pkg」作為合規性模組,並使用「anyconnect-win-4.8.03052-webdeploy-k9.pkg」作為AnyConnect頭端部署包。
4. 建立AnyConnect終端安全評估配置檔案
A.導航到「策略>策略元素>結果>客戶端調配>資源」。點選「增加」並選擇「AnyConnect終端安全評估配置檔案」(AnyConnect Posture Profile)
B.輸入Anyconnect終端安全評估配置檔案的名稱,並在「伺服器名稱規則」下將伺服器名稱配置為「*」,然後按一下「儲存」
5. 建立Anyconnect配置
A.導航到「策略>策略元素>結果>客戶端調配>資源」。點選「增加」並選擇「AnyConnect配置」
B.選擇AnyConnect軟體套件,輸入配置名稱,選擇所需的合規性模組
C.在「AnyConnect模組選擇」下,選中「診斷和報告工具」
D.在「配置檔案選擇」下,選擇「狀態配置檔案」,然後按一下「儲存」
6. 建立客戶端調配策略
A.導航至「策略>客戶端調配」
B.點選「編輯」,然後選擇「在上方插入規則」
C.輸入規則名稱,選擇所需的作業系統,然後在「結果」(在「代理」>「代理配置」中)下,選擇在第5步中建立的「AnyConnect配置」,然後按一下「儲存」
7. 建立安全評估條件
A.導航到「策略>策略元素>條件>狀態>檔案條件」
B.按一下「增加」,並將條件名稱「VPN_Posture_File_Check」、所需作業系統配置為「Windows 10(All)」、檔案型別配置為「FileExistence」、檔案路徑配置為「ABSOLUTE_PATH」、完整路徑和檔名配置為「C:\custom.txt」,選擇檔案運算子配置為「Exists」
C.本示例使用C:驅動器下名為「custom.txt」的檔案作為檔案條件
8. 建立狀態補救操作
導航到策略>策略元素>結果>狀態>補救操作以建立相應的檔案補救操作。本文檔使用「僅消息文本」作為下一步中配置的補救操作。
9. 建立狀態要求規則
A.導航到「策略>策略元素>結果>狀態>要求」
B.點選「編輯」,然後選擇「插入新要求」
C.將條件名稱「VPN_Posture_Requirement」、所需作業系統配置為「Windows 10(All)」、合規性模組配置為「4.x或更高版本」、安全評估型別配置為「Anyconnect」
D.條件為「VPN_Posture_File_Check」(在步驟7中建立),在「Remediations Actions」下,選擇「Action」為「Message Text Only」,然後為「Agent User」輸入自定義消息
10. 建立安全評估策略
A.導航至「策略>狀態」
B.將規則名稱配置為「VPN_Posture_Policy_Win」,將所需作業系統配置為「Windows 10(All)」,將合規性模組配置為「4.x或更高版本」,將安全評估型別配置為「Anyconnect」,將要求配置為「VPN_Posture_Requirement」(如步驟9中所配置)
11. 建立動態ACL (DACL)
導航到策略>策略元素>結果>授權>可下載ACL」,為不同的安全評估狀態建立DACL。
本文檔使用以下DACL。
A.狀態未知:允許流量到達DNS、PSN和HTTP以及HTTPS
B.狀態不合規:拒絕訪問私有子網並僅允許網際網路流量
C.符合安全評估標準:允許符合安全評估標準的終端使用者的所有流量
12. 建立授權配置檔案
導航到策略>策略元素>結果>授權>授權配置檔案。
A.未知狀態的授權配置檔案
選擇DACL「PostureUnknown」,選中Web重定向,選擇Client Provisioning(Posture),配置Redirect ACL名稱「redirect」(要在ASA上配置),然後選擇Client Provisioning門戶(預設)
B.狀態不合規的授權配置檔案
選擇DACL「PostureNonCompliant」以限制對網路的訪問
C.安全評估合規性授權配置檔案
選擇DACL「PostureCompliant」以允許完全訪問網路
12. 配置授權策略
使用上一步中配置的授權配置檔案為Posture Compliant、Posture Non-Compliant和Posture Unknown配置3個授權策略。
常見條件「Session: Posture Status」用於確定每個策略的結果
使用本節內容,確認您的組態是否正常運作。
要驗證使用者是否已成功透過身份驗證,請在ASA上運行以下命令。
firebird(config)# show vpn-sess detail anyconnect Session Type: AnyConnect Detailed Username : _585b5291f01484dfd16f394be7031d456d314e3e62 Index : 125 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel License : AnyConnect Premium Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256 Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384 Bytes Tx : 16404 Bytes Rx : 381 Pkts Tx : 16 Pkts Rx : 6 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Group Policy : DfltGrpPolicy Tunnel Group : TG_SAML Login Time : 07:05:45 UTC Sun Jun 14 2020 Duration : 0h:00m:16s Inactivity : 0h:00m:00s VLAN Mapping : N/A VLAN : none Audt Sess ID : 0ac5a4030007d0005ee5cc49 Security Grp : none AnyConnect-Parent Tunnels: 1 SSL-Tunnel Tunnels: 1 DTLS-Tunnel Tunnels: 1 AnyConnect-Parent: Tunnel ID : 125.1 Public IP : 10.197.243.143 Encryption : none Hashing : none TCP Src Port : 57244 TCP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : win Client OS Ver: 10.0.15063 Client Type : AnyConnect Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 7973 Bytes Rx : 0 Pkts Tx : 6 Pkts Rx : 0 Pkts Tx Drop : 0 Pkts Rx Drop : 0 SSL-Tunnel: Tunnel ID : 125.2 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Encryption : AES-GCM-256 Hashing : SHA384 Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384 Encapsulation: TLSv1.2 TCP Src Port : 57248 TCP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : SSL VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 7973 Bytes Rx : 0 Pkts Tx : 6 Pkts Rx : 0 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Filter Name : #ACSACL#-IP-PostureUnknown-5ee45b05 DTLS-Tunnel: Tunnel ID : 125.3 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Encryption : AES-GCM-256 Hashing : SHA384 Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384 Encapsulation: DTLSv1.2 UDP Src Port : 49175 UDP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : DTLS VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 458 Bytes Rx : 381 Pkts Tx : 4 Pkts Rx : 6 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Filter Name : #ACSACL#-IP-PostureUnknown-5ee45b05 ISE Posture: Redirect URL : https://ise261.pusaxena.local:8443/portal/gateway?sessionId=0ac5a4030007d0005ee5cc49&portal=27b1bc30-2... Redirect ACL : redirect
完成狀況評估後,使用者訪問將更改為完全訪問,如欄位「Filter Name」中推送的DACL中所示
firebird(config)# show vpn-sess detail anyconnect Session Type: AnyConnect Detailed Username : _585b5291f01484dfd16f394be7031d456d314e3e62 Index : 125 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel License : AnyConnect Premium Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256 Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384 Bytes Tx : 16404 Bytes Rx : 381 Pkts Tx : 16 Pkts Rx : 6 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Group Policy : DfltGrpPolicy Tunnel Group : TG_SAML Login Time : 07:05:45 UTC Sun Jun 14 2020 Duration : 0h:00m:36s Inactivity : 0h:00m:00s VLAN Mapping : N/A VLAN : none Audt Sess ID : 0ac5a4030007d0005ee5cc49 Security Grp : none AnyConnect-Parent Tunnels: 1 SSL-Tunnel Tunnels: 1 DTLS-Tunnel Tunnels: 1 AnyConnect-Parent: Tunnel ID : 125.1 Public IP : 10.197.243.143 Encryption : none Hashing : none TCP Src Port : 57244 TCP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : win Client OS Ver: 10.0.15063 Client Type : AnyConnect Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 7973 Bytes Rx : 0 Pkts Tx : 6 Pkts Rx : 0 Pkts Tx Drop : 0 Pkts Rx Drop : 0 SSL-Tunnel: Tunnel ID : 125.2 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Encryption : AES-GCM-256 Hashing : SHA384 Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384 Encapsulation: TLSv1.2 TCP Src Port : 57248 TCP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : SSL VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 7973 Bytes Rx : 0 Pkts Tx : 6 Pkts Rx : 0 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Filter Name : #ACSACL#-IP-PERMIT_ALL_IPV4_TRAFFIC-57f6b0d3 DTLS-Tunnel: Tunnel ID : 125.3 Assigned IP : explorer.cisco.com Public IP : 10.197.243.143 Encryption : AES-GCM-256 Hashing : SHA384 Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384 Encapsulation: DTLSv1.2 UDP Src Port : 49175 UDP Dst Port : 443 Auth Mode : SAML Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : DTLS VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.8.03052 Bytes Tx : 458 Bytes Rx : 381 Pkts Tx : 4 Pkts Rx : 6 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Filter Name : #ACSACL#-IP-PERMIT_ALL_IPV4_TRAFFIC-57f6b0d3
要驗證是否在ISE上成功執行授權,請導航到操作> RADIUS >即時日誌
此部分顯示與授權使用者相關的資訊,即身份、授權配置檔案、授權策略和狀態狀態。
注意:有關ISE上的其他終端安全評估驗證,請參閱以下文檔:
https://www.cisco.com/c/en/us/support/docs/security/identity-services-engine/215236-ise-posture-over-anyconnect-remote-acces.html#anc7
要驗證Duo管理門戶上的身份驗證狀態,請點選顯示身份驗證日誌的管理面板左側的「報告」。
更多詳細資訊:https://duo.com/docs/administration#reports
要檢視Duo Access Gateway的調試日誌記錄,請使用以下連結:
https://help.duo.com/s/article/1623?language=en_US
本節提供的資訊可用於對組態進行疑難排解。
附註:使用 debug 指令之前,請先參閱有關 Debug 指令的重要資訊。
注意:在ASA上,您可以設定各種調試級別;預設情況下,使用級別1。如果更改調試級別,調試的冗長可能會增加。請謹慎執行此操作,尤其是在生產環境中。
大多數SAML故障排除都會涉及配置錯誤,可透過檢查SAML配置或運行調試來發現該錯誤。
debug webvpn saml 255可用於排除大多數問題,但是在此調試不提供有用資訊的情況下,還可以運行其他調試:
debug webvpn 255 debug webvpn anyconnect 255 debug webvpn session 255 debug webvpn request 255
要排除ASA上的身份驗證和授權問題,請使用以下debug命令:
debug radius all debug aaa authentication debug aaa authorization To troubleshoot Posture related issues on ISE, set the following attributes to debug level:
posture (ise-psc.log) portal (guest.log) provisioning (ise-psc.log) runtime-AAA (prrt-server.log) nsf (ise-psc.log) nsf-session (ise-psc.log) swiss (ise-psc.log)
註:有關AnyConnect和ISE的詳細終端安全評估流程和故障排除,請參閱以下連結:
進階版和進階版2.2的ISE安全評估樣式比較
解釋Duo Access Gateway調試日誌並排除其故障
https://help.duo.com/s/article/5016?language=en_US
https://www.youtube.com/watch?v=W6bE2GTU0Is&
https://duo.com/docs/cisco#asa-ssl-vpn-using-saml
https://www.cisco.com/c/en/us/support/docs/security/identity-services-engine/215236-ise-posture-over-anyconnect-remote-acces.html#anc0