簡介
本檔案介紹如何在Catalyst 9800 WLC和ISE上設定CWA無線LAN。
必要條件
需求
思科建議您瞭解9800無線LAN控制器(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.(可選)建立會計方法清單,如下圖所示。
附註:如果您由於思科錯誤ID CSCvh03827而決定對您的radius伺服器進行負載平衡(從Cisco IOS XE CLI組態),則CWA無法運作。外部負載均衡器的使用沒有問題。但是,請確保負載平衡器使用calling-station-id RADIUS屬性基於每個客戶端運行。依賴UDP來源連線埠不是用於平衡9800的RADIUS要求的支援機制。
步驟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 Filtering」和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-tag。
附註: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上的原則標籤後,AP會失去與9800 WLC的關聯,並在約1分鐘內重新加入。
要將相同的策略標籤分配給多個AP,請導航至Configuration > Wireless > Wireless Setup > Advanced > Start Now
。
選擇要為其分配標籤的AP,然後單+ Tag APs
擊,如下圖所示。
選擇已完成的標籤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
「操作」視為「允許重新導向」。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,僅拒絕到ISE伺服器的訪客埠8443。
為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。在同一策略集頁面上,關閉Authentication Policy
,然Authorziation Policy
後展開,如下圖所示。
步驟2.最近的ISE版本以預先建立的規則開頭,該規則名為Wifi_Redirect_to_Guest_Login
,基本滿足我們的需求。將左邊的灰色符號轉為enable
。
步驟 3. 該規則僅符合 Wireless_MAB,且會傳回 CWA 重新導向屬性。現在,您可以選擇新增一些扭曲,使其僅與特定SSID匹配。選擇條件(Wireless_MAB as of now)以顯示Conditions Studio。Radius
在右側新增條件,然後選擇具有該屬性的字Called-Station-ID
典。使其符合您的 SSID 名稱。使用螢幕底部的驗證Use
,如下圖所示。
步驟4。現在,您需要第二個與條件匹配的規則(以較高優先順序定義),以便在使用者在門戶上通過身份驗證後返回網路訪問詳細Guest Flow
。您可以使用Wifi Guest Access
ISE最新版本預設預建立的規則。接著,您僅須藉由左側顯示的綠色標示啟用規則。 您可以返回預設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上的「不重定向到此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.假設步驟3中未列出所測試MAC地址作為條件,收集特定MAC地址的always-on通告級跟蹤。
# 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
附註:請確保在進行故障排除會話後始終刪除調試條件。
範例
如果身份驗證結果並非您預期的結果,則導航到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這樣的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.