简介
本文档介绍如何在Catalyst 9800 WLC和ISE上配置CWA无线LAN。
先决条件
要求
Cisco建议您了解9800无线局域网控制器(WLC)的配置。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 9800 WLC Cisco IOS® XE直布罗陀v17.6.x
- 身份服务引擎(ISE)v3.0
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
此处显示了CWA流程,您可以在这里看到Apple设备的CWA流程示例:
配置
网络图
9800 WLC 上的 AAA 配置
步骤1.将ISE服务器添加到9800 WLC配置。
导航至Configuration > Security > AAA > Servers/Groups > RADIUS > Servers > + Add
并输入RADIUS服务器信息,如图所示。
如果您计划将来使用中央 Web 身份验证(或任何一种需要 CoA 的安全措施),请确保已启用对 CoA 的支持。
注意:在版本17.4.X及更高版本中,确保在配置RADIUS服务器时也配置CoA服务器密钥。使用与共享密钥相同的密钥(在ISE上默认使用相同的密钥)。 目的是为CoA配置不同于共享密钥的密钥(如果这是您的RADIUS服务器所配置的密钥)。在Cisco IOS XE 17.3中,Web UI仅使用与CoA密钥相同的共享密钥。
第 2 步: 创建授权方法列表。
导航至Configuration > Security > AAA > AAA Method List > Authorization > + Add
,如图所示。
步骤3.(可选)创建记账方法列表,如图所示。
注意:如果由于Cisco Bug ID CSCvh03827而决定对您的RADIUS服务器进行负载均衡(通过Cisco IOS XE CLI配置),则CWA不起作用。外部负载均衡器的使用没有问题。但是,请确保负载均衡器通过使用calling-station-id RADIUS属性按客户端运行。对于平衡来自9800的RADIUS请求,不支持依赖UDP源端口。
步骤4.(可选)您可以定义AAA策略以将SSID名称作为Called-station-id属性发送,如果您要在稍后的ISE中使用此条件,此功能非常有用。
导航到Configuration > Security > Wireless AAA Policy
,然后编辑默认AAA策略或创建一个新策略。
您可以选择SSID
“选项1”。请注意,即使您仅选择SSID,被叫站ID仍然会将AP MAC地址附加到SSID名称。
WLAN 配置
第 1 步: 创建 WLAN.
根据需Configuration > Tags & Profiles > WLANs > + Add
要导航到并配置网络。
步骤2.输入WLAN一般信息。
步骤3.导航到选项卡Security
并选择所需的安全方法。在这种情况下,仅需要“MAC过滤”和AAA授权列表(您在第2步部分创AAA Configuration
建的列表)。
CLI:
#config t
(config)#wlan cwa-ssid 4 cwa-ssid
(config-wlan)#mac-filtering CWAauthz
(config-wlan)#no security ft adaptive
(config-wlan)#no security wpa
(config-wlan)#no security wpa wpa2
(config-wlan)#no security wpa wpa2 ciphers aes
(config-wlan)#no security wpa akm dot1x
(config-wlan)#no shutdown
策略配置文件配置
在策略配置文件中,您可以决定分配客户端到哪个VLAN,以及其他设置(如访问控制列表(ACL)、服务质量(QoS)、移动锚点、计时器等)。
您可以使用默认策略配置文件,也可以新建策略配置文件。
GUI:
步骤1.新建Policy Profile
。
导航至Configuration > Tags & Profiles > Policy
并配置或default-policy-profile
创建新配置。
确保已启用配置文件。
步骤2.选择VLAN。
导航到Access Policies
选项卡,从下拉列表中选择VLAN名称或手动键入VLAN-ID。请勿在策略配置文件中配置 ACL。
第 3 步:配置策略配置文件,接受 ISE 覆盖(“允许 AAA 覆盖”)和授权更改 (CoA)(“NAC 状态”)。 您也可以选择指定审计方法。
CLI:
# config
# wireless profile policy <policy-profile-name>
# aaa-override
# nac
# vlan <vlan-id_or_vlan-name>
# accounting-list <acct-list>
# no shutdown
策略标签配置
在策略标签中,您可以将 SSID 与策略配置文件相关联。您可以新建策略标签,也可以使用 default-policy 标签。
注意:default-policy标记会自动将WLAN ID介于1到16之间的所有SSID映射到默认策略配置文件。不能修改或删除。如果您的WLAN的ID为17或更高,则不能使用default-policy标记。
GUI:
如图所Configuration > Tags & Profiles > Tags > Policy
示,根据需要导航至并添加一个新页面。
将 WLAN 配置文件关联到所需的策略配置文件。
CLI:
# config t
# wireless tag policy <policy-tag-name>
# wlan <profile-name> policy <policy-profile-name>
策略标签分配
将策略标签分配给所需的 AP。
GUI:
要将标签分配给一个AP,请导航至Configuration > Wireless > Access Points > AP Name > General Tags
,进行所需的分配,然后单击Update & Apply to Device
。
注意:请注意,更改AP上的策略标记后,它将失去与9800 WLC的关联并在大约1分钟内重新加入。
要将相同的策略标记分配给多个AP,请导航至Configuration > Wireless > Wireless Setup > Advanced > Start Now
。
选择要为其分配标记的AP,然后点+ Tag APs
击,如图所示。
选择完整的Tag,然后点Save & Apply to Device
(如图所示)。
CLI:
# config t
# ap <ethernet-mac-addr>
# policy-tag <policy-tag-name>
# end
重定向 ACL 配置
步骤1.导Configuration > Security > ACL > + Add
航至以创建新的ACL。
为ACL选择一个名称,使其键入IPv4 Extended
并将每个规则作为一个序列添加,如图所示。
您需要拒绝流向 ISE PSN 节点的流量以及 DNS,同时允许所有其余流量。此重定向ACL不是安全ACL,而是弃用ACL,它定义哪些流量进入CPU(在允许时)进行进一步处理(如重定向)以及哪些流量停留在数据平面上(在拒绝时)和避免重定向(但不必丢弃)。
ACL必须如下所示(在本例中用您的ISE IP地址替换10.48.39.28):
在本例中,我们决定允许所有流向ISE节点的流量。这不是一种好的做法,因为它允许访客客户端访问ISE的管理界面。比较理想的情况是限制到端口8443,该端口通常为访客门户使用的端口(尽管在某些特定情况下可能涉及其他端口)。
在某些情况下还需要拒绝DNS流量(可能仅流向您的DNS服务器IP)以及DHCP和NTP。
注意:对于重定向ACL,请将操作deny
“拒绝”重定向(非拒绝流量)和permit
“允许”重定向(permit redirection)视为操作。WLC仅检查可重定向的流量(默认情况下为端口80和443)。
CLI:
ip access-list extended REDIRECT
deny ip any host <ISE-IP>
deny ip host<ISE-IP> any
deny udp any any eq domain
deny udp any eq domain any
permit tcp any any eq 80
注意:如果您使用以端口permit ip any any
80为重点的许可而不是以该许可结束ACL,则WLC还会重定向HTTPS,这通常是不理想的,因为它必须提供自己的证书,并且总是会创建证书违规。这是上一语句的例外情况,该语句规定,在CWA的情况下,您不需要在WLC上使用证书:如果您启用了HTTPS拦截,则您需要一个拦截,但无论如何都不会将其视为有效。
您可以通过操作改进ACL,仅拒绝访客端口8443访问ISE服务器。
为HTTP或HTTPS启用重定向
Web管理员门户配置与Web身份验证门户配置绑定,需要侦听端口80才能进行重定向。因此,必须启用HTTP才能使重定向正常工作。您可以选择全局启用它(使用命令ip http server
),也可以仅对Web身份验证模块启用HTTP(使用参数映射下的命令webauth-http-enable
)。
注意:HTTP流量的重定向在CAPWAP内发生,即使在FlexConnect本地交换的情况下也是如此。由于WLC执行侦听工作,因此AP在CAPWAP隧道内发送HTTP(S)数据包,并在CAPWAP中接收来自WLC的重定向
如果要在尝试访问HTTPS URL时重定向,请在参数映射下添加命令intercept-https-enable
,但请注意,这不是最佳配置,因为它会影响WLC CPU并生成证书错误:
parameter-map type webauth global
type webauth
intercept-https-enable
trustpoint xxxxx
您也可以通过GUI执行此操作,并选中参数映射(Configuration > Security > Web Auth
)中的“Web Auth intercept HTTPS”选项。
注意:默认情况下,浏览器使用HTTP网站启动重定向过程,如果需要HTTPS重定向,则必须选中Web Auth intercept HTTPS;但是,不建议使用此配置,因为它会增加CPU使用率。
ISE 配置
将 9800 WLC 添加到 ISE
步骤1.打开ISE控制台并导航至Administration > Network Resources > Network Devices > Add
如图所示.
步骤2.配置网络设备。
或者,它可以是指定的型号名称、软件版本和说明,并根据设备类型、位置或WLC分配网络设备组。
此处的IP地址对应于发送身份验证请求的WLC接口。默认情况下,它是管理接口,如图所示:
有关网络设备组的详细信息,请参阅ISE管理员指南章节:管理网络设备:ISE — 网络设备组。
在 ISE 上创建新用户
步骤1.导航Administration > Identity Management > Identities > Users > Add
至如图所示。
第 2 步: 输入相关信息。
在此示例中,此用户属于名为的组ALL_ACCOUNTS
,但可以根据需要对其进行调整,如图所示。
创建授权配置文件
策略配置文件是根据客户端的参数(如mac地址、凭证、使用的WLAN等)分配给客户端的结果。 它可以分配特定设置,例如虚拟局域网(VLAN)、访问控制列表(ACL)、统一资源定位器(URL)重定向等。
请注意,在最新版本的 ISE 中,已存在 Cisco_Webauth 授权结果。您可以对其进行编辑以修改重定向 ACL 名称,从而与 WLC 上配置的名称相一致。
步骤1.导航至Policy > Policy Elements > Results > Authorization > Authorization Profiles
。单击add
,以创建自己的结果或编辑默认结果Cisco_Webauth
。
第 2 步: 输入重定向信息。确保ACL名称与9800 WLC上配置的名称相同。
配置身份验证规则
步骤1.策略集定义身份验证和授权规则的集合。要创建一个,请导航至Policy > Policy Sets
,点击列表中第一个策略集的齿轮,然后选择Insert new row
or click the blue arrow on the right to choose the defaut Policy Set.
步骤2.展开策略Authentication
。对于规则MAB
(匹配有线或无线MAB),展开Options
,然后选择选项,以防CONTINUE
“If User not found”(如果未找到用户)。
步骤3.Save
单击以保存更改。
配置授权规则
授权规则负责确定将哪些权限(哪个授权配置文件)结果应用于客户端。
步骤1.在同一Policy set页面上,关闭Authentication Policy
,然Authorziation Policy
后展开,如图所示。
步骤2.最近的ISE版本以预先创建的规则开头,该规则称为Wifi_Redirect_to_Guest_Login
,它最符合我们的需求。将左边的灰色符号转为enable
。
第 3 步: 该规则仅与 Wireless_MAB 匹配,返回 CWA 重定向属性。现在,您可以选择添加一些扭曲,使其仅与特定SSID匹配。选择条件(Wireless_MAB(截至现在)以显示Conditions Studio。在右侧添加条件,然后选择具有Radius
“属性”的Called-Station-ID
字典。使其与 SSID 名称匹配。使用屏幕底部的Use
(如图所示)进行验证。
步骤4.现在,您需要第二个与条件匹配的优先级较高的规则Guest Flow
,以便在用户在门户上进行身份验证后返回网络访问详细信息。您可以使用默认情况下也已在最近的ISE版本上预先创建的规则Wifi Guest Access
。然后,只需启用左侧带有绿色标记的规则, 您可以返回默认PermitAccess或配置更精确的访问列表限制。
第 5 步: 保存规则。
单Save
击规则底部。
仅限 FlexConnect 本地交换无线接入点
如果有 FlexConnect 本地交换无线接入点和 WLAN,该如何操作?前述部分仍然适用。但是,您需要执行额外的步骤才能将重定向ACL提前推送到AP。
导航至Configuration > Tags & Profiles > Flex
,选择您的Flex配置文件。然后,导航到选项Policy ACL
卡。
单击Add
(如图所示)。
选择您的重定向ACL名称并启用集中式Web身份验证。此复选框自动反转AP自身上的ACL(这是因为“deny”语句表示Cisco IOS XE中WLC上的“do not redirect to this IP”。但是,在AP上,“deny”语句的含义相反。因此,此复选框会在推送到AP时自动交换所有许可并拒绝它们。您可以通过AP CLIshow ip access list
)的进行验证。
注意: 在Flexconnect本地交换方案中,ACL必须特别提及返回语句(本地模式不一定需要),因此请确保所有ACL规则涵盖两种流量方式(例如,传入和传出ISE)。
不要忘记先打Save
,然后Update and apply to the device
。
证书
为了使客户端信任Web身份验证证书,不需要在WLC上安装任何证书,因为提供的唯一证书是ISE证书(必须受客户端信任)。
验证
您可以使用下列命令验证当前配置。
# show run wlan
# show run aaa
# show aaa servers
# show ap config general
# show ap name <ap-name> config general
# show ap tag summary
# show ap name <AP-name> tag detail
# show wlan { summary | id | nme | all }
# show wireless tag policy detailed <policy-tag-name>
# show wireless profile policy detailed <policy-profile-name>
以下是与本示例相对应的WLC配置的相关部分:
aaa new-model
!
aaa authorization network CWAauthz group radius
aaa accounting identity CWAacct start-stop group radius
!
aaa server radius dynamic-author
client <ISE-IP> server-key cisco123
!
aaa session-id common
!
!
radius server ISE-server
address ipv4 <ISE-IP> auth-port 1812 acct-port 1813
key cisco123
!
!
wireless aaa policy default-aaa-policy
wireless cts-sxp profile default-sxp-profile
wireless profile policy default-policy-profile
aaa-override
nac
vlan 1416
no shutdown
wireless tag policy cwa-policy-tag
wlan cwa-ssid policy default-policy-profile
wlan cwa-ssid 4 cwa-ssid
mac-filtering CWAauthz
no security ft adaptive
no security wpa
no security wpa wpa2
no security wpa wpa2 ciphers aes
no security wpa akm dot1x
no shutdown
ip http server (or "webauth-http-enable" under the parameter map)
ip http secure-server
故障排除
关注点
身份验证成功时,不建议在最终RADIUS访问接受中执行VLAN分配。WLC和网络基础设施没有好的方法来确保客户端更新其IP地址,因此,您会受到随机的错误行为,具体取决于网络中的客户端设备。当客户端尚未通过身份验证时,最好指定限制性ACL,并在身份验证成功后使用适当的每用户ACL覆盖它。
核对清单
- 确保客户端连接并获得有效的IP地址。
- 如果重定向不是自动重定向,请打开浏览器并尝试使用随机IP地址。例如10.0.0.1。如果重定向有效,则可能存在DNS解析问题。验证您拥有通过DHCP提供的有效DNS服务器,并且该服务器可以解析主机名。
- 确保您已配置命令
ip http server
,以便在HTTP上进行重定向。Web管理员门户配置与Web身份验证门户配置绑定,需要将其列在端口80上才能重定向。您可以选择全局启用它(使用命令ip http server
),也可以仅对Web身份验证模块启用HTTP(使用参数映射下的命令webauth-http-enable
)。
- 如果在尝试访问HTTPS URL时未重定向并且这是必需的,则验证您在参数映射下是否有命令
intercept-https-enable
:
parameter-map type webauth global
type webauth
intercept-https-enable
trustpoint xxxxx
您还可以通过GUI检查在参数映射中选中了“Web Auth intercept HTTPS”选项:
RADIUS的服务端口支持
Cisco Catalyst 9800系列无线控制器的服务端口称为端GigabitEthernet 0
口。从版本17.6.1开始,此端口支持RADIUS(包括CoA)。
如果要将服务端口用于RADIUS,则需要以下配置:
aaa server radius dynamic-author
client 10.48.39.28 vrf Mgmt-intf server-key cisco123
interface GigabitEthernet0
vrf forwarding Mgmt-intf
ip address x.x.x.x x.x.x.x
!if using aaa group server:
aaa group server radius group-name
server name nicoISE
ip vrf forwarding Mgmt-intf
ip radius source-interface GigabitEthernet0
收集调试
WLC 9800 提供无间断跟踪功能。这可确保持续记录所有客户端连接相关的错误、警告和通知级别消息,并且您可以在发生事故或故障情况后查看其日志。
注意:您可以在日志中返回几小时到几天,但这取决于生成的日志量。
为了查看9800 WLC在默认情况下收集的跟踪,您可以通过SSH/Telnet连接到9800 WLC并执行这些步骤(确保您将会话记录到文本文件)。
步骤1.检查WLC当前时间,以便您可以在问题发生之前的时间跟踪日志。
# show clock
步骤2.根据系统配置的指示,从WLC缓冲区或外部系统日志收集系统日志。这样可以快速查看系统的运行状况和错误(如果有)。
# show logging
第 3 步: 验证是否已启用调试条件。
# show debugging
Cisco IOS XE Conditional Debug Configs:
Conditional Debug Global State: Stop
Cisco IOS XE Packet Tracing Configs:
Packet Infra debugs:
Ip Address Port
------------------------------------------------------|----------
注意:如果看到列出了任何条件,则意味着遇到启用条件(mac地址、IP地址等)的所有进程的跟踪将记录到调试级别。 这会增加日志量。因此,建议在不主动调试时清除所有条件。
步骤4.假设测试的mac地址未作为步骤3中的条件列出,收集特定mac地址的始终在线通知级跟踪。
# show logging profile wireless filter { mac | ip } { <aaaa.bbbb.cccc> | <a.b.c.d> } to-file always-on-<FILENAME.txt>
您可以显示会话内容,也可以将文件复制到外部 TFTP 服务器。
# more bootflash:always-on-<FILENAME.txt>
or
# copy bootflash:always-on-<FILENAME.txt> tftp://a.b.c.d/path/always-on-<FILENAME.txt>
条件调试和无线电主动跟踪
如果永远在线(always-on)跟踪不能为您提供足够的信息来确定所调查问题的触发器,则可以启用条件调试并捕获无线活动(RA)跟踪,该跟踪为与指定条件(本例中为客户端MAC地址)交互的所有进程提供调试级别跟踪。 要启用条件调试,请继续执行以下步骤。
步骤5.确保未启用调试条件。
# clear platform condition all
第 6 步: 为要监控的无线客户端 MAC 地址启用调试条件。
这些命令用于开始监控所提供的 MAC 地址,持续 30 分钟(1800 秒)。 您可以选择延长监控时间,最多监控 2085978494 秒。
# debug wireless mac <aaaa.bbbb.cccc> {monitor-time <seconds>}
注意:要一次监控多个客户端,请对每个mac地址运行debug wireless mac
命令。
注意:您看不到终端会话上的客户端活动的输出,因为所有内容都在内部缓冲,供以后查看。
步骤7'。重现要监控的问题或行为。
第 8 步: 如果在默认或配置的监控时间结束之前,问题再次出现,请停止调试。
# no debug wireless mac <aaaa.bbbb.cccc>
一旦监控时间过长或调试无线停止,9800 WLC将生成一个本地文件,其名称为:
ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log
步骤 9 收集 MAC 地址活动的文件。 您可以将复制到ra trace .log
外部服务器,也可以直接在屏幕上显示输出。
检查 RA 跟踪文件的名称。
# dir bootflash: | inc ra_trace
将文件复制到外部服务器:
# copy bootflash: ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log tftp://a.b.c.d/ra-FILENAME.txt
显示内容:
# more bootflash: ra_trace_MAC_aaaabbbbcccc_HHMMSS.XXX_timezone_DayWeek_Month_Day_year.log
步骤10.如果根本原因仍不明显,请收集内部日志,这些日志是调试级别日志的更详细视图。您无需再次调试客户端,因为我们只需进一步详细查看已收集并内部存储的调试日志。
# show logging profile wireless internal filter { mac | ip } { <aaaa.bbbb.cccc> | <a.b.c.d> } to-file ra-internal-<FILENAME>.txt
注意:此命令输出返回所有进程的所有日志级别的跟踪,而且非常大。与Cisco TAC联系,以帮助分析这些跟踪。
您可以将复制到ra-internal-FILENAME.txt
外部服务器,也可以直接在屏幕上显示输出。
将文件复制到外部服务器:
# copy bootflash:ra-internal-<FILENAME>.txt tftp://a.b.c.d/ra-internal-<FILENAME>.txt
显示内容:
# more bootflash:ra-internal-<FILENAME>.txt
第 11 步: 删除调试条件。
# clear platform condition all
注意:确保您始终在故障排除会话后删除调试条件。
Examples
如果身份验证结果并非您预期的结果,请务必导航到ISE页面Operations > Live logs
,并获取身份验证结果的详细信息。
系统会显示失败的原因(如果存在故障)以及ISE接收的所有Radius属性。
在下一个示例中,ISE 拒绝身份验证,原因在于没有匹配的授权规则。这是因为,您会看到Called-station-ID属性作为附加到AP mac地址的SSID名称发送,而授权与SSID名称完全匹配。通过将该规则更改为“contains”(包含)而不是“equal”(等于)来修复。
解决此问题后,WiFi客户端仍无法与SSID关联,而ISE声称授权成功,并返回正确的CWA属性。
您可以导航到Troubleshooting > Radioactive trace
WLC Web UI的页面。
在大多数情况下,您可以依靠永远在线的日志,甚至可以从过去的连接尝试中获取日志,而无需再次重现问题。
添加客户端MAC地址,然后点Generate
击,如图所示。
在这种情况下,问题出在创建ACL名称时输入了拼写错误,但该名称与ISE返回的ACL名称不匹配,或者WLC抱怨没有像ISE请求的ACL:
2019/09/04 12:00:06.507 {wncd_x_R0-0}{1}: [client-auth] [24264]: (ERR): MAC: e836.171f.a162 client authz result: FAILURE
2019/09/04 12:00:06.516 {wncd_x_R0-0}{1}: [ewlc-infra-evq] [24264]: (ERR): SANET_AUTHZ_FAILURE - Redirect ACL Failure username E8-36-17-1F-A1-62, audit session id 7847300A0000012EFC24CD42,
2019/09/04 12:00:06.518 {wncd_x_R0-0}{1}: [errmsg] [24264]: (note): %SESSION_MGR-5-FAIL: Authorization failed or unapplied for client (e836.171f.a162) on Interface capwap_90000005 AuditSessionID 7847300A0000012EFC24CD42. Failure Reason: Redirect ACL Failure. Failed attribute name REDIRECT.