此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍将Duo SAML SSO与利用思科ISE进行详细状态评估的自适应安全设备(ASA)Cisco AnyConnect安全移动客户端访问相集成的配置示例。双核SAML SSO使用双核接入网关(DAG)实施,该网关与Active Directory通信以进行初始用户身份验证,然后与双核安全(云)通信以进行多重身份验证。思科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 Access Gateway提供必需的身份验证
在本节中,在Duo Admin Portal上配置ASA应用。
1.登录“Duo Admin Portal”并导航至“Applications > Protect an Application”,搜索保护类型为“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接入网关
4.在Dashboard > Applications下,新创建的ASA应用如下图所示:
5.导航至“用户>添加用户”,如图所示:
创建名为“duouser”的用户以用于Anyconnect远程访问身份验证,并在最终用户设备上激活Duo Mobile
要添加图中所示的电话号码,请选择“添加电话”选项。
为特定用户激活“Duo Mobile”
注:确保在最终用户设备上安装“Duo Mobile”。
手动安装IOS设备Duo应用程序
手动安装适用于Android设备的Duo应用程序
选择“Generate Duo Mobile Activation Code”,如图所示:
选择“Send Instructions by SMS”(通过SMS发送说明),如图所示:
点击SMS中的链接,Duo应用将链接到“设备信息”部分中的用户帐户,如图所示:
注意:请遵循以下文档进行部署:
用于Linux的双核接入网关
https://duo.com/docs/dag-linux
用于Windows的双核接入网关
https://duo.com/docs/dag-windows
本节提供有关为SAML IDP身份验证和基本AnyConnect配置配置ASA的信息。本文档提供概述的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.映射用于WebVPN的Windows的AnyConnect客户端软件webdeploy映像4.8.03052
B.导航到“Configuration > Remote Access VPN > Network(Client)Access > AnyConnect Client Software”,点击“Add”
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.导航到“Configuration > Remote Access VPN > Network(Client)Access > Anyconnect Connection Profiles”,然后单击“Add”
C.配置以下与连接配置文件相关的详细信息:
名称 | TG_SAML |
别名 | SAML用户 |
方法 | SAML |
AAA 服务器组 | 本地 |
客户端地址池 | AC_Pool |
组策略 | DfltGrpPolicy |
d.在同一页面上,配置SAML身份提供程序详细信息,如下所示:
E.点击“管理>添加”
F.在连接配置文件的Advanced部分下,定义用于授权的AAA服务器
导航到“Advanced > Authorization”,然后单击“Add”
G.在“组别名”下,定义连接别名
导航到“Advanced > Group Alias/Group URL”,然后单击“Add”
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 > Policy Elements > Results > Client Provisioning > Resources”。点击“添加”,然后根据要从本地工作站还是思科站点获取文件,选择“从本地磁盘获取代理资源”或“从思科站点获取代理资源”。
在这种情况下,要从“类别”下的本地工作站上传文件,请选择“思科提供的软件包”,然后单击“浏览”,选择所需的软件包,然后单击“提交”。
本文档使用“anyconnect-win-4.3.1012.6145-isecompliance-webdeploy-k9.pkg”作为合规性模块,使用“anyconnect-win-4.8.03052-webdeploy-k9.pkg”作为AnyConnect头端部署包。
4.创建AnyConnect状态配置文件
A.导航到“策略>策略元素>结果>客户端调配>资源”。点击“Add”并选择“AnyConnect Posture Profile”
B.输入Anyconnect终端安全评估配置文件的名称,并在服务器名称规则下将服务器名称配置为“*”,然后点击“保存”
5.创建Anyconnect配置
A.导航到“策略>策略元素>结果>客户端调配>资源”。点击“添加”并选择“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 > Policy Elements > Results > Posture > Remediation Actions”以创建对应的File Remediation Action。本文档使用“仅消息文本”作为下一步中配置的补救操作。
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”,然后输入座席用户的自定义消息
10.创建安全评估策略
A.导航到“策略>状态”
B.将规则名称配置为"VPN_Posture_Policy_Win",将所需的操作系统配置为"Windows 10(All)",将合规性模块配置为"4.x或更高版本",将状态类型配置为"Anyconnect",将要求配置为"VPN_Posture_Requirement"(如步骤9中所配置)
11.创建动态ACL(DACL)
导航到Policy > Policy Elements > Results > Authorization > Downloadable ACL,并为不同的安全评估状态创建DACL。
本文档使用以下DACL。
A.安全评估未知:允许流量到达DNS、PSN、HTTP和HTTPS流量
B.状态不兼容:拒绝访问私有子网并仅允许互联网流量
C.安全评估合规性:允许安全评估合规性最终用户的所有流量
12.创建授权配置文件
导航至“Policy > Policy Elements > Results > Authorization > Authorization Profiles”。
A.未知状态的授权配置文件
选择DACL“PostureUnknown”,选中Web Redirection,选择Client Provisioning(Posture),配置Redirect ACL名称“redirect”(要在ASA上配置),然后选择Client Provisioning门户(默认)
B.状态不合规的授权配置文件
选择DACL“PostureNonCompliant”以限制对网络的访问
C.安全评估合规性的授权配置文件
选择DACL“PostureCompliant”以允许对网络的完全访问
12.配置授权策略
使用在上一步中配置的授权配置文件为安全评估合规性、安全评估不合规性和安全评估未知配置3个授权策略。
通用条件“会话:状态状态”用于确定每个策略的结果
使用本部分可确认配置能否正常运行。
要验证用户是否成功通过身份验证,请在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的身份验证状态,请点击Admin Panel左侧的“Reports”,Admin Panel将显示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