此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档说明如何使用外部RADIUS服务器配置无线局域网控制器(WLC)以进行可扩展身份验证协议(EAP) — 通过安全隧道进行灵活身份验证(FAST)身份验证。此配置示例使用身份服务引擎(ISE)作为外部RADIUS服务器对无线客户端进行身份验证。
本文档重点介绍如何为无线客户端配置匿名和经过身份验证的带内(自动)保护访问凭证(PAC)调配的ISE。
尝试进行此配置之前,请确保满足以下要求:
了解轻量接入点 (LAP) 和 Cisco WLC 配置的基础知识
CAPWAP协议的基本知识
了解如何配置外部RADIUS服务器,例如Cisco ISE
有关通用EAP框架的功能知识
有关安全协议(如MS-CHAPv2和EAP-GTC)的基本知识,以及有关数字证书的知识
本文档中的信息基于以下软件和硬件版本:
运行固件 8.8.111.0 版本的 Cisco 5520 系列 WLC
思科4800系列AP
AnyConnect NAM。
思科安全ISE版本2.3.0.298
运行版本15.2(4)E1的思科3560-CX系列交换机
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
EAP-FAST协议是可公开访问的IEEE 802.1X EAP类型,思科开发此类型是为了支持无法实施强密码策略且希望部署不需要数字证书的802.1X EAP类型的客户。
EAP-FAST协议是使用传输级安全(TLS)隧道加密EAP事务的客户端 — 服务器安全架构。EAP-FAST隧道建立基于用户独有的强机密。这些强机密称为PAC,ISE使用仅知道ISE的主密钥生成PAC。
EAP-FAST分三个阶段进行:
阶段零(自动PAC调配阶段) - EAP-FAST阶段零,可选阶段是隧道保护的方法,为请求网络访问的用户提供EAP-FAST最终用户客户端的PAC。向最终用户客户端提供PAC是第零阶段的唯一目的。
注意:阶段零是可选的,因为PAC也可以手动调配到客户端,而不是使用阶段零。
有关详细信息,请参阅本文档的PAC调配模式部分。
第1阶段 — 在第1阶段,ISE和最终用户客户端根据用户的PAC凭证建立TLS隧道。此阶段要求最终用户客户端已为尝试获取网络访问权限的用户提供PAC,并且PAC基于尚未过期的主密钥。EAP-FAST的第一阶段未启用任何网络服务。
第2阶段 — 在第2阶段,使用TLS隧道内EAP-FAST支持的内部EAP方法将用户身份验证凭据安全地传递到使用客户端和RADIUS服务器之间的PAC创建的RADIUS。EAP-GTC、TLS和MS-CHAP作为内部EAP方法受支持。EAP-FAST不支持其他EAP类型。
有关详细信息,请参阅EAP-FAST的工作方式。
PAC是强共享密钥,使ISE和EAP-FAST最终用户客户端能够相互验证并建立TLS隧道以在EAP-FAST第2阶段使用。ISE使用活动主密钥和用户名生成PAC。
PAC包括:
PAC-Key — 绑定到客户端(和客户端设备)和服务器标识的共享密钥。
PAC Opaque — 客户端缓存并传递给服务器的不透明字段。服务器恢复PAC-Key和客户端身份,以与客户端相互进行身份验证。
PAC-Info — 至少包括服务器的标识,以使客户端能够缓存不同的PAC。或者,它包括其他信息,如PAC的到期时间。
如前所述,零阶段是可选阶段。
EAP-FAST提供两个选项来为客户端调配PAC:
自动PAC调配(EAP-FAST阶段0或带内PAC调配)
手动(带外)PAC调配
带内/自动PAC调配通过安全网络连接向最终用户客户端发送新PAC。自动PAC调配无需网络用户或ISE管理员的干预,前提是您配置ISE和最终用户客户端以支持自动调配。
最新的EAP-FAST版本支持两个不同的带内PAC调配配置选项:
匿名带内PAC调配
经过身份验证的带内PAC调配
注意:本文档讨论这些带内PAC调配方法及其配置方法。
带外/手动PAC调配需要ISE管理员生成PAC文件,然后必须将其分发给适用的网络用户。用户必须使用其PAC文件配置最终用户客户端。
要配置WLC以进行EAP-FAST身份验证,请执行以下步骤:
配置 WLC 以便通过外部 RADIUS 服务器进行 RADIUS 身份验证
为EAP-FAST身份验证配置WLAN
需要配置 WLC 以便将用户凭证转发到外部 RADIUS 服务器。随后,外部 RADIUS 服务器使用 EAP-FAST 验证用户凭证,并提供对无线客户端的访问。
完成以下这些步骤,为外部 RADIUS 服务器配置 WLC:
从控制器的 GUI 中选择安全性和“RADIUS 身份验证”,以便显示“RADIUS 身份验证服务器”页。然后,请点击new来定义RADIUS服务器。
在 RADIUS Authentication Servers > New 页上定义 RADIUS 服务器参数。这些参数包括:
RADIUS 服务器的 IP 地址
共享密钥
端口号
服务器状态
本文档使用IP地址为10.48.39.128的ISE服务器。
接下来,配置客户端用于连接到无线网络的WLAN进行EAP-FAST身份验证并分配给动态接口。本示例中配置的WLAN名称是eap fast。本例将此 WLAN 分配到管理接口。
要配置eap快速WLAN及其相关参数,请完成以下步骤:
从控制器的 GUI 中单击 WLAN 以显示“WLAN”页。
此页列出了控制器上现有的 WLAN。
单击 New 以创建新的 WLAN。
在“WLAN”>“新建”页上配置eap_fast WLAN SSID名称、配置文件名称和WLAN ID。然后,单击 Apply。
创建新 WLAN 后,就会显示新 WLAN 的 WLAN > Edit 页。在此页上,可以定义特定于此 WLAN 的各种参数。这包括常规策略、RADIUS服务器、安全策略和802.1x参数。
选中General Policies(常规策略)选项卡下的Admin Status(管理状态)复选框以启用WLAN。如果希望 AP 在其信标帧中广播 SSID,请选中 Broadcast SSID 复选框。
在“WLAN -> Edit -> Security -> AAA Servers”选项卡下,从RADIUS Servers下的下拉菜单中选择适当的RADIUS服务器。
单击 Apply。
注意:这是唯一需要在控制器上配置以进行EAP身份验证的EAP设置。所有其他特定于 EAP-FAST 的配置需要在 RADIUS 服务器和需要进行身份验证的客户端上完成。
若要针对 EAP-FAST 身份验证配置 RADIUS 服务器,请执行下列步骤:
此示例将EAP-FAST客户端的用户名和密码分别配置为<eap_fast>和<EAP-fast1>。
若要将控制器定义为 ACS 服务器上的 AAA 客户端,请完成下列步骤:
通常,如果部署中没有PKI基础设施,则希望使用这种方法。
在对等体对ISE服务器进行身份验证之前,此方法在经过身份验证的Diffie-HellmanKey协议(ADHP)隧道内运行。
要支持此方法,我们需要在ISE的“允许匿名带内PAC调配”下启用“允许身份验证协议”:
注:确保您具有允许的密码类型验证,例如EAP-MS-CHAPv2 for EAP-FAST内部方法,因为显然,使用匿名带内调配时,我们不能使用任何证书。
这是最安全和推荐的选项。TLS隧道基于服务器证书构建,服务器证书由请求方验证,客户端证书由ISE验证(默认)。
该选项需要为客户端和服务器提供PKI基础设施,但可能只限于服务器端,或在两端跳过。
在ISE上,身份验证带内调配还有两个其他选项:
在ISE上,我们还为无线用户定义简单身份验证策略集,以下示例使用作为条件参数的设备类型以及位置和身份验证类型,匹配该条件的身份验证流将根据内部用户数据库进行验证。
本示例将显示经过身份验证的带内PAC调配流和网络访问管理器(NAM)配置设置以及各自的WLC调试。
要配置Anyconnect NAM配置文件以使用EAP-FAST根据ISE对用户会话进行身份验证,需要执行以下步骤:
显示EAP-FAST和PAC调配流的ISE身份验证日志可在“操作 — > RADIUS ->实时日志”下查看,并可使用“缩放”图标查看更多详细信息:
客户端身份验证期间在WLC上启用了以下调试:
客户端启动dot1x身份验证并向WLC提供EAPoL身份响应
*Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: f4:8c:50:62:14:6b dot1x - moving mobile f4:8c:50:62:14:6b into Connecting state *Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: f4:8c:50:62:14:6b Sending EAP-Request/Identity to mobile f4:8c:50:62:14:6b (EAP Id 2) *Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: f4:8c:50:62:14:6b Sending 802.11 EAPOL message to mobile f4:8c:50:62:14:6b WLAN 3, AP WLAN 3 *Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: 00000000: 02 00 00 2a 01 02 00 2a 01 00 6e 65 74 77 6f 72 ...*...*..networ *Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: 00000010: 6b 69 64 3d 65 61 70 5f 66 61 73 74 2c 6e 61 73 kid=eap_fast,nas *Dot1x_NW_MsgTask_3: Feb 22 12:43:12.192: 00000020: 69 64 3d 6e 6f 2c 70 6f 72 74 69 64 3d 31 id=no,portid=1 *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b Received 802.11 EAPOL message (len 46) from mobile f4:8c:50:62:14:6b *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: 00000000: 02 00 00 0e 02 02 00 0e 01 61 6e 6f 6e 79 6d 6f .........anonymo *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: 00000010: 75 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 us.............. *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............. *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b Received EAPOL EAPPKT from mobile f4:8c:50:62:14:6b *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b Received Identity Response (count=2) from mobile f4:8c:50:62:14:6b *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b Resetting reauth count 2 to 0 for mobile f4:8c:50:62:14:6b *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b EAP State update from Connecting to Authenticating for mobile f4:8c:50:62:14:6b *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b dot1x - moving mobile f4:8c:50:62:14:6b into Authenticating state *Dot1x_NW_MsgTask_3: Feb 22 12:43:13.720: f4:8c:50:62:14:6b Entering Backend Auth Response state for mobile f4:8c:50:62:14:6b
在TLS建立阶段使用的RADIUS请求中会看到未受保护的身份用户名
*Dot1x_NW_MsgTask_3: Feb 22 12:43:13.736: f4:8c:50:62:14:6b [BE-req] Sending auth request to 'RADIUS' (proto 0x140001), for RealmName anonymous (dot1xName :anonymous) *aaaQueueReader: Feb 22 12:43:13.736: AuthenticationRequest: 0x7f0289e32690 *aaaQueueReader: Feb 22 12:43:13.736: Callback.....................................0xd6ceb3ef00 *aaaQueueReader: Feb 22 12:43:13.736: protocolType.................................0x00140001 *aaaQueueReader: Feb 22 12:43:13.736: proxyState...................................F4:8C:50:62:14:6B-03:01 *aaaQueueReader: Feb 22 12:43:13.736: Packet contains 20 AVPs: *aaaQueueReader: Feb 22 12:43:13.736: AVP[01] User-Name................................anonymous (9 bytes)
客户端成功完成身份验证
*radiusTransportThread: Feb 22 12:43:13.891: f4:8c:50:62:14:6b Processed VSA 311, type 17, raw bytes 52, copied 32 bytes *radiusTransportThread: Feb 22 12:43:13.891: f4:8c:50:62:14:6b Access-Accept received from RADIUS server 10.48.39.128 (qid:11) with port:1812, pktId:0