此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍将Duo SAML SSO与利用思科ISE进行详细状态评估的自适应安全设备(ASA) Cisco AnyConnect安全移动客户端访问集成的配置示例。双核SAML SSO使用双核接入网关(DAG)实施,该网关与Active Directory通信以进行初始用户身份验证,然后与双核安全(云)通信以进行多因素身份验证。思科ISE用作授权服务器,使用状况评估提供终端验证。
作者:Dinesh Moudgil和Pulkit Saxena,思科HTTS工程师。
注意:此实施中使用的Anyconnect嵌入式浏览器要求每个版本的9.7(1)24、9.8(2)28、9.9(2)1或更高版本以及AnyConnect 4.6或更高版本均安装ASA。
注意:由于双节点接入网关提供必需的身份验证,因此思科ISE仅针对授权进行配置
在本节中,在Duo Admin Portal上配置ASA应用。
1. 登录“Duo Admin Portal”并导航至“Applications > Protect an Application”,搜索保护类型为“2FA with Duo Access Gateway, self-hosted”的“ASA”。点击最右侧的“保护”以配置Cisco ASA
2. 在Service Provider下为受保护的应用(ASA)配置以下属性
基本URL | firebird.cisco.com |
隧道组 | TG_SAML |
邮件属性 | sAMAccountName,mail |
点击页面底部的“Save”(保存)
在本文档中,其余配置使用默认参数,但可以根据客户要求进行设置。
此时可以为新SAML应用调整其他设置,例如更改应用名称中的默认值、启用自助服务或分配组策略。
3. 点击“下载配置文件”链接获取Cisco ASA应用设置(作为JSON文件)。在后面的步骤中,此文件被上传到Duo接入网关
4. 在Dashboard > Applications下,新创建的ASA应用如下图所示:
5. 导航至“用户>添加用户”,如图所示:
创建名为“duouser”的用户以用于Anyconnect远程访问身份验证,并在最终用户设备上激活Duo Mobile
要添加电话号码(如图所示),请选择“添加电话”选项。
为特定用户激活“Duo Mobile”
注意:确保在最终用户设备上安装“Duo Mobile”。
手动安装IOS设备的Duo应用程序
手动安装适用于Android设备的Duo应用程序
选择“Generate Duo Mobile Activation Code”,如图所示:
选择“通过SMS发送说明”,如图所示:
点击SMS中的链接,Duo应用将链接到“设备信息”部分中的用户帐户,如图所示:
注意:请按照以下文档进行部署:
用于Linux的双核接入网关
https://duo.com/docs/dag-linux
用于Windows的双核接入网关
https://duo.com/docs/dag-windows
本节提供配置ASA以进行SAML IDP身份验证和基本AnyConnect配置的信息。本文档提供了ASDM配置步骤和CLI运行配置,以供概述之用。
1. 上传Duo接入网关证书
A.导航到Configuration > Device Management > Certificate Management > CA Certificates,单击“Add”
B.在“安装证书页面”上,配置信任点名称: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.映射AnyConnect客户端软件webdeploy映像4.8.03052 for windows以用于WebVPN
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.在连接配置文件的Advanced部分下,定义用于授权的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前端部署包
导航到“策略>Policy元素>结果>客户端调配>资源”。点击“添加”,然后根据文件是从本地工作站还是思科站点获取,选择“来自本地磁盘的代理资源”或“来自思科站点的代理资源”。
在本例中,要在“类别”(Category)下从本地工作站上传文件,请选择“思科提供的软件包”(Cisco Provided Packages),点击“浏览”(Browse),选择所需的软件包,然后点击“提交”(Submit)。
本文档使用“anyconnect-win-4.3.1012.6145-isecompliance-webdeploy-k9.pkg”作为合规性模块,使用“anyconnect-win-4.8.03052-webdeploy-k9.pkg”作为AnyConnect头端部署包。
4. 创建AnyConnect终端安全评估配置文件
A.导航至“策略>策略元素>结果>客户端调配>资源”。点击“Add”并选择“AnyConnect终端安全评估配置文件”(AnyConnect Posture Profile)
B.输入Anyconnect安全评估配置文件的名称,并在服务器名称规则下将服务器名称配置为“*”,然后点击“保存”
5. 创建Anyconnect配置
A.导航至“策略>策略元素>结果>客户端调配>资源”。点击“Add”并选择“AnyConnect配置”
B.选择AnyConnect软件包,输入配置名称,选择所需的合规性模块
C.在“AnyConnect模块选择”下,选中“诊断和报告工具”
D.在“Profile Selection”下,选择Posture Profile并单击“Save”
6. 创建客户端调配策略
A.导航至“策略>客户端调配”
B.点击“编辑”,然后选择“在上方插入规则”
C.输入Rule Name,选择所需的操作系统,然后在Results(在“Agent”>“Agent Configuration”内)下,选择在第5步中创建的“AnyConnect Configuration”,然后单击“Save”
7. 创建安全评估条件
A.导航至“策略>策略元素>情况>状态>文件条件”
B.单击“添加”,将条件名称“VPN_Posture_File_Check”、所需的操作系统配置为“Windows 10(All)”、文件类型配置为“FileExistence”、文件路径配置为“ABSOLUTE_PATH”、完整路径和文件名配置为“C:\custom.txt”,然后选择“文件操作符”配置为“Exists”
C.本示例使用C:驱动器下名为“custom.txt”的文件作为文件条件
8. 创建状态补救操作
导航到策略>Policy元素>结果>状态>补救措施创建对应的文件补救操作。本文档使用“仅消息文本”作为下一步中配置的补救操作。
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.按照步骤9中的配置,将规则名称配置为“VPN_Posture_Policy_Win”,将所需的操作系统配置为“Windows 10(All)”,将合规性模块配置为“4.x或更高版本”,将状态类型配置为“Anyconnect”,将要求配置为“VPN_Posture_Requirement”
11. 创建动态ACL (DACL)
导航到策略>Policy元素>结果>授权>可下载ACL”并为不同的终端安全评估状态创建DACL。
本文档使用以下DACL。
A.状态未知:允许流量到达DNS、PSN、HTTP和HTTPS流量
B.状态不合规(Posture NonCompliant):拒绝访问专用子网并仅允许互联网流量
C.安全评估兼容:允许安全评估兼容最终用户的所有流量
12. 创建授权配置文件
导航到策略>Policy元素>结果>授权>授权配置文件。
A.未知状态的授权配置文件
选择DACL“PostureUnknown”,选中Web Redirection,选择Client Provisioning(Posture),配置Redirect ACL名称“redirect”(要在ASA上配置),然后选择Client Provisioning门户(默认)
B.状况不合规的授权配置文件
选择DACL“PostureNonCompliant”以限制对网络的访问
C.安全评估合规性的授权配置文件
选择DACL“PostureCompliant”允许对网络进行完全访问
12. 配置授权策略
使用上一步中配置的授权配置文件为安全评估合规、安全评估不合规和未知安全评估配置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 Admin Portal(Duo管理员门户)的身份验证状态,请点击Admin Panel(管理面板)左侧的“Reports”(报告),显示Authentication Log(身份验证日志)。
更多详细信息:https://duo.com/docs/administration#reports
要查看Duo接入网关的调试日志记录,请使用以下链接:
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接入网关调试日志并对其进行故障排除
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