您的位置:首頁»數碼科技»正文

Portal+MAC 速成指南

Portal在英語中是入口的意思。 Portal認證通常也稱為Web認證, 一般將Portal認證網站稱為門戶網站。

未被認證的使用者上網時, 網路設備強制使用者登錄到特定網站, 必須在門戶網站進行認證, 只有認證通過後才可以使用互聯網資源。

當然在Portal 認證前, 可以為用戶設置白名單, 讓未認證的 用戶可以主動訪問白名單中的Portal認證網站;對於非白名單的網站, 則提供頁面強制跳轉, 並要求輸入用戶名和密碼進行認證, 從而開始Portal認證過程, 這種方式稱作強制認證。

Portal業務可以為用戶提供方便的管理功能, 門戶網站可以開展廣告、社區服務、個性化的業務等。

在Portal 認證過程並不完美, 用戶在連接逾時後會出現重認證的問題, 在日常應用中可能會出現多次認證, 為了避免這樣的問題, 提出在Portal 認證中, 可智慧緩存用戶的MAC地址, 將用戶帳號與MAC地址做捆綁, 在預設的捆綁期內, 用戶可以通過MAC位址直接無感無線重關聯, 多次認證, 提高用戶接入體驗感。

補充說明: MAC位址在OSI模型中是屬於二層, Portal 認證是基於IP地址, 將用戶流量重定向到Portal門戶, 並進行認證, 因此用戶會先獲取到IP位址, 涉及到IP, 那麼該認證模型在OSI模型中是三層認證; 因此MAC認證的順序是高於Portal 認證, 並且在MAC位址認證通過後, 就可以避免掉基於3層的Portal 認證。 如果使用者認證不通過, 則需要進行Portal 認證。

在對Portal + Mac 認證有了初步瞭解之後,

接下來將介紹實現過程以及配置。

1)MAC 認證流程圖:

a)當用戶連接到無線後, 無線控制器會要求進行MAC認證

b)無線控制器依據系統組態的 【MAC認證設定檔】及【MAC認證伺服器】, 向AAA 平臺送出認證請求

【MAC認證設定檔】:規範了認證時MAC位址的格式, 如MAC地址分割符, 可選 " : " (引號)或 " - " (減號), 對於MAC位址的寫法, 如字元大寫 或 小寫, 也可以規定, 因此務必注意配置時MAC位址的格式, 配置與存在帳號的帳號不一致, 則會導致認證失敗

【MAC認證伺服器】: 基於AAA框架定義的機制來實現, 並通過radius協議來傳遞整個認證過程, 授權及記帳過程。 該認證伺服器, 可以是控制器自身, 也可以是外置支援radius協定的平臺(如aruba clearpass)

c) 在【MAC認證伺服器】 檢查過認證報文中的MAC地址與存在的白名單匹配之後,

則會發送radius-accept 通知控制器放行終端。 反之不在白名單的MAC位址, 則會向控制器發送radius-reject 報文, 因此MAC位址認證失敗

d)對於MAC位址認證失敗的用戶, 在aruba 的設計中, 終端將會獲得在aaa profile 下initial-role所對應的role(角色); 如果不配置認證, 那麼使用者將會獲得initial-role

注意: 連接無線時輸入靜態密碼的, 不是認證, 而是在關聯時雙方匹配加密密碼; MAC認證與802.1x認證都屬於二層認證, 並且MAC認證優先於802.1x認證, 會先進行mac認證, 但通過mac認證後還需要進行802.1x認證。

2)Portal 認證流程圖:

Portal 認證流程圖:

當用戶在獲得initial role 之後, 那麼接下來就需要執行Portal 的認證流程

a)預設情況下, 智慧終端機或智慧終端機裡安裝的程式, 在網路變更後都會網路自動發起一個檢測報文, 確認網路的可達性,

因為有了這個機制, 部分機器在連上無線後會自動跳出Portal 頁面, 要求進行Portal鑒權的過程。 如果沒有自動跳出, 則需要使用者手動打開流覽器, 訪問任意網站, 來實現跳轉!

注意:

配置不當會導致重定向頁面的時候, 出現空白頁;出現問題時可參考如下思路:

a.1)DNS不可解析功能變數名稱;用戶在初始化訪問任意網站時, 先要解析該網站的地址, 然後才發現報文;如果無法解析, 終端則無法封裝報文, 則無法進行重定向;

a.2)跳轉的位址不被允許訪問;如果是外置Portal server , 則需要在initial-role 裡放開對portal server 的訪問, 否則無法重定向;

b)當使用者獲得Portal頁面後, 輸入用戶名密碼後, 並點擊提交; 提交的位址是控制器的功能變數名稱, 當控制器收到後, 將提交的資訊轉換為radius 資料包,

遞送給 radius 伺服器(可以是控制器自己, 也可以是外部認證伺服器)

c) 當radius 收到報文後, 解開資料包後則開始找帳號資料來源進行查找, 在這裡可以是AD/LDAP/或控制器自己的本地資料庫 (在portal 中將會採用pap 採用明文格式發送用戶帳號)

d)當驗證用戶名密碼正確後, radius 會利用AAA 機制, 向控制器返回認證成功;在採用Clearpass 作為外置認證源時, 可以利用clearpass將portal 認證中的MAC位址提取, 寫入到endpoint 資料庫裡標識為 "Known", 未來可以用於MAC位址的認證;

個人推薦:向endpoint 裡寫入mac位址時, 建議將同時也給該mac位址推入 role 、用戶名等資訊

e) 如果使用者未通過認證, 則一直處於Portal 的角色中, 需要注意的是, 不要讓這樣的用戶存在非常多, 否則會導致控制器繁忙的處理跳轉請求。

在理解了大致的流程之後, 那麼開始來進行實戰演練(所有有帶顏色的字體,為設定檔的名字,可依據自己的實際情況進行修改). 將配置分為2塊,1塊為控制器,另外一塊為外置的Clearpass:

1.無線控制器配置

1.1) 無線用戶端位址段

將這個配置擺放在最前面,原因是很多工程師在配置Portal認證的時候,忘記給控制器配上IP地址,如果控制器沒有IP位址,就沒有辦法跟用戶端進行通訊,位址轉換的任務也沒辦法完成。因此務必先配置位址。

假設用戶獲得的VLAN 號 是 100, 那麼VLAN 100 對應的位址段是 192.168.100.0/24,配置如下:

vlan 100 //創建vlan

interface vlan 100

ip address 192.168.100.x 255.255.255.0

no shut

//如果是AOS 8.0 則進入設備的組裡,將如上配置進行適應性修改即可,如:

(MM-A) [mm] #cd /md/group1

(MM-A) [group1] #configure ter

Enter Configuration commands, one per line. Endwith CNTL/Z

(MM-A) [group1] (config) #

也可以配置採用dhcp 用戶端的形式, ip address dhcp-client

1.2) 認證伺服器配置

無論是portal 或是mac 認證,都需要配置相應的認證伺服器,否則控制器無法基於AAA架構對用戶進行認證。因此在這裡開始定義配置:

aaa authentication-server radiusportal-server

host x.x.x.x //輸入伺服器的IP位址

key xxxx. // 輸入radius 密碼,自訂,密碼需要與外置radius伺服器上的密碼一致

nas-identifier xx //用來標識作用,隨意取值;建議可以寫portal or mac

配置完成radius server,還需要將radius server 套入到server-group 中,才能應用到認證設定檔中,因此需要在定義server-group

aaa server-groupportal-server-group

auth-serverportal-server

預設情況下,控制器就內置了本地認證,伺服器組名字為 default 及internal ,如果採用本地認證可不需要配置認證伺服器組;

為了在之後的環節中,方便在一個SSID下對portal 及mac認證容易區分,因此建議在這裡在做一個mac 認證伺服器的相關配置

aaa authentication-server radiusmac-server

host x.x.x.x

key xxxxx

nas-identifiermac //方便做區分,配置了識別字為mac

aaa server-groupmac-server-group

auth-servermac-server

1.3) captive-portal profile 的配置

在接入過程中,需要重定向使用者的任何資料到某個頁面,因此就需要定義captive-portal profile , 如下是配置:

aaa authenticationcaptive-portalportal-cp

server-group portal-server // 將Portal的認證伺服器組關聯, 預設不配置的情況下,是採用本地認證

no logout-popup-window //登陸成功後,不顯示“登出”按鈕

login-page https://10.3.4.31/guest/hsts.php //重定向後,使用者看到的認證頁面; 如果是採用控制器本地頁面,可以不用輸入,CPPM上配置的登錄頁面位址可以參考下面資料 2.2)的配置

switchip-in-redirection-url //建議在重定向過程中,可以將控制器的IP位址帶到頁面中,未來一些特殊應用會用到

no welcome-page // 登陸成功後,不重定向到歡迎頁面

redirect-pause 0 //登陸成功後,等待跳轉的時間

server-groupportal-server-group //關聯Portal認證時採用的伺服器!!!不要忘記哦!

1.4) initial-role 的配置

在上面的介紹中,可以理解到,portal的過程是依靠user-role 裡配置了相關存取控制清單,及重定向Portal的策略,當使用者訪問網路資源時觸發了策略,從而將流量導流到captive-portal profile ,讓用戶訪問captive-portal profile 中指定的登錄頁面(login page)

如下是兩個預設系統的策略合集(不需要配置,但要懂得原理),在inital-role 裡將會引用到

ip access-list session logon-control

user any udp 68 deny

any any svc-icmp permit

any any svc-dns permit

any any svc-dhcp permit

any any svc-natt permit

any network 169.254.0.0 255.255.0.0 any deny

any network 240.0.0.0 240.0.0.0 any deny

//在上面的策略集裡,定義裡終端連接上無線後,可以獲得IP位址,可以進行DNS查詢,並可以進行ping 及源位址轉換(同時不允許無線用戶端作為DHCP伺服器向其他無線用戶端派發DHCP位址); 如果需要設計更嚴謹,可自己定義策略,不用默認的;但是建議要允許dhcp ,dns

ip access-list session captiveportal

user alias controller svc-https dst-nat 8081

user any svc-http dst-nat 8080

user any svc-https dst-nat 8081

user any svc-http-proxy1 dst-nat 8088

user any svc-http-proxy2 dst-nat 8088

user any svc-http-proxy3 dst-nat 8088

//將用戶的80, 443,http 代理(3128, 8080, 8888)的所有訪問進行目的地址轉換並送入到8080 埠,對於https 則送入到8081埠;

如果採用控制器內置Portal認證,那麼初始化的使用者角色可以這樣配置:

user-role ac-portal

access-list session logon-control

access-list session captiveportal

對於我們需要配置外置Portal認證,那麼在上面的角色還是不夠的,需要用戶端對portal 的訪問,因此需要增加:

ip access-list sessionpermit-cppm

user host x.x.x.x svc-http permit

user host x.x.x.x svc-https permit

user-roleext-portal

access-list session logon-control

access-list sessionpermit-cppm

access-list session captiveportal

captive-portalportal-cp //將角色中關聯 portal-cp 認證設定檔

通過如上配置,就配置好了user-role 及相關的策略,但還沒有關聯到無線的相關設定檔中!

1.5) WLAN 相關配置

可選配置,增加MAC認證

先mac 認證的白名單格式,同時這也是規範控制器遞交MAC位址作為用戶名時的格式;按照如下寫法,MAC地址的格式為: 00:1a:2b:3c:4d:5e. , 分隔符號是" : " , 同時字元全部小寫

aaa authentication macmac-auth-profile//MAC 位址庫白名單格式

delimiter colon //分隔符號為冒號 :

case lower//全部小寫 :

wlan ssid-profileopen-ssid-profile

essid open-ssid

aaa profileopen-aaa-profile

initial-role ext-portal

authentication-macmac-auth-profile // 引用mac地址庫白名單格式

mac-default-roleauthenticated

mac-server-groupmac-server-group //注意,這裡引用了1.2)配置的mac 認證伺服器

wlan virtual-apopen-vap

aaa-profileopen-aaa-profile

vlanxx // 輸入VLAN 號碼(用於獲得的VLAN ,注意該VLAN號碼下,控制器必須有IP位址)

ssid-profileopen-ssid-profile //關聯無線信號名稱

band-steering

broadcast-filter all

broadcast-filter arp

ap-groupdefault

wlan virtual-apopen-vap //將VAP 設定檔關聯到 AP註冊的組中

//如果是AOS 8.0 則進入設備的組裡,將如上配置進行適應性修改即可,如:

(MM-A) [mm] #cd /md/group1

(MM-A) [group1] #configure ter

Enter Configuration commands, one per line. Endwith CNTL/Z

(MM-A) [group1] (config) #

截止到此,無線控制器這一側的配置已完成;只要AP註冊到default 組下,就可以放出無線信號為 open-ssid 的信號,如果沒有,請仔細核對上面的配置。

如下開始進行clearpass 這一側的配置

2.1) Clearpass 配置,NAS用戶端

登錄CPPM的配置頁面, https://x.x.x.x/tips ,預設使用者名admin/eTIPS123

在上面的ip or subnet address ,可以填入固定IP 、網段或位址範圍,比如

192.168.1.10 //固定IP

192.168.1.0/24 //網段

192.168.1.1-100 //位址範圍

固配置網段或位址範圍的時候,面臨多個設備可以向NAS伺服器(CPPM)進行認證請求,但這樣的情況下,如果密碼太簡單就容易遇到安全問題,為了安全性,建議radius key 裡的密碼設置複雜性高;注意,這裡的radius key 必須跟控制器裡的radius key 秘鑰一致 【radius key 配置詳見 文章中 1.2) 的配置範本】

2.2) 配置登陸頁面

登錄CPPM的【訪客配置頁面】, https://x.x.x.x/guest ,預設使用者名admin/eTIPS123

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

點擊 save and reload ,則完成配置

2.3) 配置認證源

本例中以添加的是 LDAP作為舉例

登錄到clearpass 管理頁面中,點擊configuration—source,即可看到當前clearpass 內置當前的認證源

在新建過程中可選擇需要創建的認證源的類型,如ldap , sql , http 等等

填入認證源的名字

下圖為LDAP資料庫,具體資訊請聯繫LDAP管理員填入,格式參見如下:

配置後可利用篩檢程式向LDAP進行查詢,通過查詢語句獲取,帳號資訊及對應在LDAP中的其他屬性資訊,通過獲悉屬性,可以用來做授權

在創建好的LDAP認證源,點擊屬性,並點擊如下圖的“便簽圖示”

在下圖中的Filter Query語句通常要向LDAP管理員詢問,並填入;下圖展示的為預設語句,可不需要額外配置

在configuration 下點擊memberof並在enabled as 處,選擇為attributes ,保存即可

如果網路中有多台LDAP或多個相同的ODBC,在同一個認證員下,可點擊添加備份,即可實現認證源的添加

由於創建的是LDAP的備份,因此只需要修改IP及LDAP管理員再次輸入密碼資訊

注意上面的userPassword,如果LDAP欄位存儲密碼不是採用userPassword,則需要修改,具體需要詢問LDAP管理員; 【同時注意,如果用LDAP 要用來做802.1X 認證,預設LDAP的密碼hash 不是採用NTHASH,因此一定要讓LDAP管理員去修改資料庫密碼存儲方式,並且支援NTHASH,否則無法進行802.1x認證,如果是微軟的AD域控,則不需要考慮這部分,預設密碼存放採用NTHASH】

2.4) 配置服務---服務1 (預驗證的錯誤資訊返回)

這個配置是為了提升使用者的體驗感,很多用戶用Portal認證的其中一個原因就是Portal的交互感好,因此希望借由Portal認證,告訴接入的使用者,用戶名或密碼錯誤,或其他首先原因。由於在前一步我們設置了預驗證,並啟用為app-auth ,可以很好幫助我們解決這塊問題,下面將對這塊的配置進行介紹:

配置錯誤資訊提示:

登陸CPPM--enforcement--profile ,添加add

配置- application enforcement profile,參考如下:

定義返回給使用者顯示的資訊

在如上配置完成後,未來可調用向使用者顯示"用戶名錯誤",因此可依照如上方式,重新建立一個enforcement profile, 並將顯示資訊寫為 “密碼錯誤”

在如上配置完成後,只是學會了發送動作,但是還還沒有跟事件關聯

我們最終要的效果是,如果用戶進行認證時,CPPM 內置返回代碼錯誤為 xxx ,那麼就在頁面上顯示 對應的錯誤資訊!

接下來開始配置策略:

新建一個enforcement policies

點擊rules ,開始添加規則

最後規則添加成類似如下:

代碼說明:

201=用戶名未找到

202=密碼錯誤

216=密碼錯誤 //採用LDAP時會出現錯誤216

到此為止,規則動作都已配置完成,通過如上我們可以預設的是,如果用戶進行Portal預驗證的時候,認證源沒找到用戶名,錯誤代碼為201, 通過動作,我們會提示使用者用戶名錯誤;如果是密碼錯誤,會出現202或216,那麼就可以向使用者返回密碼錯誤的情況,如果是用戶名、密碼都對,那麼就可以直接通過。預設,其他情況都會被拒絕。

雖然規則完成了,但是還要進入下一個階段,配置【認證服務】,才能將整個預驗證完成;

在認證中可能網路環境下會存在多個無線SSID,並且有多種認證方式,要合理並且不重疊的區分這相對來說非常複雜,但是CPPM裡可以利用認證跟蹤器,幫助使用者快速找出唯一的屬性,去實現認證服務的區分。

我們可以做一條認證服務,裡面不配置任何參數,那麼就可以對認證的過程進行便利捕捉:

添加一個服務:

編輯服務的規則

選擇認證源

將之前編輯的enfocement profile 套入 (因為用的是application 的服務,因此如果沒有新建application 的enforcement policy ,這裡是看不到策略的)

此時可以通過網頁做個認證,在進入到access tracker 裡查看日誌,點擊Input-- computed attributes , 就看到如下:

(細心的人也可以發現,上面紅框的標識為創建的訪客登陸表單的網頁名字, portal)

通過如上的舉例,我們已知曉了Portal預驗證時會產生的報文,並且可以用來做區分,那麼我們就對之前配置的認證服務,做服務規則的修改,就可以正式使用了,進入認證服務,添加service rule

通過這樣的配置,在網頁上登錄時,就會顯示如下效果:

//在完成了如上配置之後,我們還要接著往下做,在app-auth 後,需要實現的是基於radius 的認證,並讓radius 通知控制器,放行使用者

2.4) 配置服務---服務2(通知控制器放行使用者)

服務區分參數

認證方法選擇PAP,並選擇相應的認證源

選擇缺省的sample allow access policy即可

到此為止portal 的配置及portal 門戶預驗證的配置都已完成(沒有複雜的控制)

如果需要實現mac 無感知認證,那麼就需要接著往下,進行配置

2.5) Portal智慧記錄MAC功能

MAC位址認證對應用而言是最無感,最便利的認證;但因為收集MAC地址則會帶來非常複雜,繁瑣的過程;因此對於Portal+MAC位址認證而言,就需要實現將MAC位址記錄的功能;那麼接下來將會介紹,在Portal認證後進行MAC位址存放、備註、標記等功能。

預設情況下,只要通過PORTAL\mac\802.1x認證的終端,在CPPM的endpoint 都會產生一條記錄,不過只是寫了個MAC位址,並且標記為【未知】;未來我們希望在標記這個MAC位址的時候,可以關聯用戶名,設置為了方便,還給這個終端mac位址寫入【角色】,那麼可以這樣操作:

進入到endpoint 下,點擊現有的任何一個mac位址

點擊這個終端的屬性,添加一個role 及對應的“值”. \\預設情況下,endpoint 資料庫,沒有role 這個屬性可以寫,但在這裡手動創建後,未來就可以用; username 預設系統有,可以不用寫。

修改完成後,開始對智慧記錄MAC位址的策略進行修改:

進入enforcement-profiles ,新建一個profile

修改送入的屬性:

配置完成後,點擊保存;

在這裡做個舉例,我們有三種類別的人群,未來要實現對這些人群擁有不同的無感知時間,如下表

為了方便未來調用,我通常喜歡將role 資訊也推送到mac 位址裡,所以上一步的操作,我們要執行多次;這裡省略(但是裡面輸入不同的role 名字,注意大小寫)

同時為了方便管理,我一般也建議將username 更新到endpoint 庫裡,因此也要在創建一條update username

在屬性裡,添加如下

注意:因為用戶名不是固定的,所以在這個過程中填入了一個變數 % , 會自動將用戶在portal 裡填入的用戶名推送至endpoint 裡(注意: 寫的時候要採用英文鍵盤,注意大小寫)

完成規則後,我們開始來配置enforcement policy ,新建一個enforcement policy

選擇後,開始進入rules ,編輯規則

上面的意思是: 如果在LDAP伺服器裡,這個用戶組是IT,那麼就採用哪些enforcement profile, 在這裡,我調用了4個profile, 分別將MAC地址的用戶名,role, 及MAC地址辨識為“已知”

如果沒有LDAP,但是想完成這個部分的驗證,可以選擇用CPPM 的本地資料庫,就可以採用如下配置

先配置名為IT 的role

配置一個帳號,並且role 為IT

在回到之前配置enforcement pocliy 下,去創建規則,檢查本地帳號的role 為IT,就用相應的enforcement profiles 進行操作

完成後,enforcement policy 類似如下:

進入到認證服務,並更換之前配置的enforcement policy ,即可完成智慧Portal的切換

驗證:

(忽略Portal認證截圖,請自行測試)

進入CPPM 的endpoint 裡查看,發現變化:

進入到MAC位址之後點擊attributes ,發現到自動加入了username 及role , 跟之前配置的目標一致,表明測試成功。

2.6) 配置服務---服務3(開啟MAC認證功能)

接下來,如果我們配置了一個MAC認證服務,那麼結合之前在控制器上開啟的MAC認證,就可以自動的實現無感知認證了,但是這樣的認證是沒有時間限制的;換句話說就是,用戶一旦Portal認證通過後,自動的記錄了MAC位址,以後永遠都不需要回到Portal認證了。為此,我們需要做一些修改,時間基於時間的控制。

點擊primary ,參考如下資訊,用戶名是appuser ,密碼隨便寫

點擊attributes , 添加filters 語句

貼入如下語句,

SELECT FLOOR(EXTRACT(EPOCH FROM (NOW() - user_auth_at)))::integer AS seconds_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/60)::integer AS minutes_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/3600)::integer AS hours_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/86400)::integer AS days_since_auth FROM endpoints WHERE endpoints.user_auth_at

配置篩檢程式格式為如下:

配置完成後點擊保存,如下圖:

配置enforcement policy

配置規則:

規則編輯成如下:

注意:配置規則的時候,不要選擇為Authorization:[Endpoints Repository]!!!!!

完成後,開始配置MAC位址的認證服務,進入到configuration---service , 點擊add ,並按照下圖進行操作:

在認證方式這裡選擇MAC AUTH ,不要添加ALLOW ALL MAC AUTH , 如果選擇了ALLOW ALL MAC AUTH 那麼如果這個MAC位址是“未知”狀態,也可以通過MAC認證,這不是我們需要的;我們需要的是通過PORTAL 認證後,將MAC位址標識為“已知”的,才有資格進行MAC認證。

配置授權源

enforcement 下,選擇成之前配置的enforcement policy

到此MAC認證的配置也完成,我們可以開始執行測試,點擊access tracker ,並點擊認證記錄,查看點如下:

同時點擊output,發現為allow access profile ,則表示用戶可以通過認證

在控制器上檢查使用者狀態, 輸入show user 可以看到用戶上線表如下圖

通過上圖可以看到在Auth 顯示為MAC ,則表示為MAC認證;不過從上圖中我們獲悉到一個情況,當前在name 區域為MAC位址,可能很多用戶會覺得未來在排錯的時候,這樣會變得非常複雜。希望能用MAC認證,並且返回用戶的帳號,那麼我們需要做如下操作。

點擊enforcement proifle -- 新建一個profile ,兵選擇為radius based enforcement

點擊attributes , 並輸入如下

注意: 寫的時候要採用英文鍵盤,注意大小寫 %, 配置完成後,保存即可;

通過如上的配置,目的是將endpoint 裡的username 返回給輸出,不過這個時候我們還要嵌套到enforcement policy,找到我們之前MAC認證用的enforcement policy ,進行修改

在每個動作後面都加入一個return-username 即可。

配置完成後,我們就可以測試,是否可以成功返回用戶名到控制器上,並且認證是採用MAC認證;

依舊在控制器裡輸入 show user

通過如上可以看到用戶接入已自動採用MAC認證,並且向控制器返回了用戶的用戶名。

那麼開始來進行實戰演練(所有有帶顏色的字體,為設定檔的名字,可依據自己的實際情況進行修改). 將配置分為2塊,1塊為控制器,另外一塊為外置的Clearpass:

1.無線控制器配置

1.1) 無線用戶端位址段

將這個配置擺放在最前面,原因是很多工程師在配置Portal認證的時候,忘記給控制器配上IP地址,如果控制器沒有IP位址,就沒有辦法跟用戶端進行通訊,位址轉換的任務也沒辦法完成。因此務必先配置位址。

假設用戶獲得的VLAN 號 是 100, 那麼VLAN 100 對應的位址段是 192.168.100.0/24,配置如下:

vlan 100 //創建vlan

interface vlan 100

ip address 192.168.100.x 255.255.255.0

no shut

//如果是AOS 8.0 則進入設備的組裡,將如上配置進行適應性修改即可,如:

(MM-A) [mm] #cd /md/group1

(MM-A) [group1] #configure ter

Enter Configuration commands, one per line. Endwith CNTL/Z

(MM-A) [group1] (config) #

也可以配置採用dhcp 用戶端的形式, ip address dhcp-client

1.2) 認證伺服器配置

無論是portal 或是mac 認證,都需要配置相應的認證伺服器,否則控制器無法基於AAA架構對用戶進行認證。因此在這裡開始定義配置:

aaa authentication-server radiusportal-server

host x.x.x.x //輸入伺服器的IP位址

key xxxx. // 輸入radius 密碼,自訂,密碼需要與外置radius伺服器上的密碼一致

nas-identifier xx //用來標識作用,隨意取值;建議可以寫portal or mac

配置完成radius server,還需要將radius server 套入到server-group 中,才能應用到認證設定檔中,因此需要在定義server-group

aaa server-groupportal-server-group

auth-serverportal-server

預設情況下,控制器就內置了本地認證,伺服器組名字為 default 及internal ,如果採用本地認證可不需要配置認證伺服器組;

為了在之後的環節中,方便在一個SSID下對portal 及mac認證容易區分,因此建議在這裡在做一個mac 認證伺服器的相關配置

aaa authentication-server radiusmac-server

host x.x.x.x

key xxxxx

nas-identifiermac //方便做區分,配置了識別字為mac

aaa server-groupmac-server-group

auth-servermac-server

1.3) captive-portal profile 的配置

在接入過程中,需要重定向使用者的任何資料到某個頁面,因此就需要定義captive-portal profile , 如下是配置:

aaa authenticationcaptive-portalportal-cp

server-group portal-server // 將Portal的認證伺服器組關聯, 預設不配置的情況下,是採用本地認證

no logout-popup-window //登陸成功後,不顯示“登出”按鈕

login-page https://10.3.4.31/guest/hsts.php //重定向後,使用者看到的認證頁面; 如果是採用控制器本地頁面,可以不用輸入,CPPM上配置的登錄頁面位址可以參考下面資料 2.2)的配置

switchip-in-redirection-url //建議在重定向過程中,可以將控制器的IP位址帶到頁面中,未來一些特殊應用會用到

no welcome-page // 登陸成功後,不重定向到歡迎頁面

redirect-pause 0 //登陸成功後,等待跳轉的時間

server-groupportal-server-group //關聯Portal認證時採用的伺服器!!!不要忘記哦!

1.4) initial-role 的配置

在上面的介紹中,可以理解到,portal的過程是依靠user-role 裡配置了相關存取控制清單,及重定向Portal的策略,當使用者訪問網路資源時觸發了策略,從而將流量導流到captive-portal profile ,讓用戶訪問captive-portal profile 中指定的登錄頁面(login page)

如下是兩個預設系統的策略合集(不需要配置,但要懂得原理),在inital-role 裡將會引用到

ip access-list session logon-control

user any udp 68 deny

any any svc-icmp permit

any any svc-dns permit

any any svc-dhcp permit

any any svc-natt permit

any network 169.254.0.0 255.255.0.0 any deny

any network 240.0.0.0 240.0.0.0 any deny

//在上面的策略集裡,定義裡終端連接上無線後,可以獲得IP位址,可以進行DNS查詢,並可以進行ping 及源位址轉換(同時不允許無線用戶端作為DHCP伺服器向其他無線用戶端派發DHCP位址); 如果需要設計更嚴謹,可自己定義策略,不用默認的;但是建議要允許dhcp ,dns

ip access-list session captiveportal

user alias controller svc-https dst-nat 8081

user any svc-http dst-nat 8080

user any svc-https dst-nat 8081

user any svc-http-proxy1 dst-nat 8088

user any svc-http-proxy2 dst-nat 8088

user any svc-http-proxy3 dst-nat 8088

//將用戶的80, 443,http 代理(3128, 8080, 8888)的所有訪問進行目的地址轉換並送入到8080 埠,對於https 則送入到8081埠;

如果採用控制器內置Portal認證,那麼初始化的使用者角色可以這樣配置:

user-role ac-portal

access-list session logon-control

access-list session captiveportal

對於我們需要配置外置Portal認證,那麼在上面的角色還是不夠的,需要用戶端對portal 的訪問,因此需要增加:

ip access-list sessionpermit-cppm

user host x.x.x.x svc-http permit

user host x.x.x.x svc-https permit

user-roleext-portal

access-list session logon-control

access-list sessionpermit-cppm

access-list session captiveportal

captive-portalportal-cp //將角色中關聯 portal-cp 認證設定檔

通過如上配置,就配置好了user-role 及相關的策略,但還沒有關聯到無線的相關設定檔中!

1.5) WLAN 相關配置

可選配置,增加MAC認證

先mac 認證的白名單格式,同時這也是規範控制器遞交MAC位址作為用戶名時的格式;按照如下寫法,MAC地址的格式為: 00:1a:2b:3c:4d:5e. , 分隔符號是" : " , 同時字元全部小寫

aaa authentication macmac-auth-profile//MAC 位址庫白名單格式

delimiter colon //分隔符號為冒號 :

case lower//全部小寫 :

wlan ssid-profileopen-ssid-profile

essid open-ssid

aaa profileopen-aaa-profile

initial-role ext-portal

authentication-macmac-auth-profile // 引用mac地址庫白名單格式

mac-default-roleauthenticated

mac-server-groupmac-server-group //注意,這裡引用了1.2)配置的mac 認證伺服器

wlan virtual-apopen-vap

aaa-profileopen-aaa-profile

vlanxx // 輸入VLAN 號碼(用於獲得的VLAN ,注意該VLAN號碼下,控制器必須有IP位址)

ssid-profileopen-ssid-profile //關聯無線信號名稱

band-steering

broadcast-filter all

broadcast-filter arp

ap-groupdefault

wlan virtual-apopen-vap //將VAP 設定檔關聯到 AP註冊的組中

//如果是AOS 8.0 則進入設備的組裡,將如上配置進行適應性修改即可,如:

(MM-A) [mm] #cd /md/group1

(MM-A) [group1] #configure ter

Enter Configuration commands, one per line. Endwith CNTL/Z

(MM-A) [group1] (config) #

截止到此,無線控制器這一側的配置已完成;只要AP註冊到default 組下,就可以放出無線信號為 open-ssid 的信號,如果沒有,請仔細核對上面的配置。

如下開始進行clearpass 這一側的配置

2.1) Clearpass 配置,NAS用戶端

登錄CPPM的配置頁面, https://x.x.x.x/tips ,預設使用者名admin/eTIPS123

在上面的ip or subnet address ,可以填入固定IP 、網段或位址範圍,比如

192.168.1.10 //固定IP

192.168.1.0/24 //網段

192.168.1.1-100 //位址範圍

固配置網段或位址範圍的時候,面臨多個設備可以向NAS伺服器(CPPM)進行認證請求,但這樣的情況下,如果密碼太簡單就容易遇到安全問題,為了安全性,建議radius key 裡的密碼設置複雜性高;注意,這裡的radius key 必須跟控制器裡的radius key 秘鑰一致 【radius key 配置詳見 文章中 1.2) 的配置範本】

2.2) 配置登陸頁面

登錄CPPM的【訪客配置頁面】, https://x.x.x.x/guest ,預設使用者名admin/eTIPS123

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

配置完成上述頁面後,頁面下拉,獲得如下:

點擊 save and reload ,則完成配置

2.3) 配置認證源

本例中以添加的是 LDAP作為舉例

登錄到clearpass 管理頁面中,點擊configuration—source,即可看到當前clearpass 內置當前的認證源

在新建過程中可選擇需要創建的認證源的類型,如ldap , sql , http 等等

填入認證源的名字

下圖為LDAP資料庫,具體資訊請聯繫LDAP管理員填入,格式參見如下:

配置後可利用篩檢程式向LDAP進行查詢,通過查詢語句獲取,帳號資訊及對應在LDAP中的其他屬性資訊,通過獲悉屬性,可以用來做授權

在創建好的LDAP認證源,點擊屬性,並點擊如下圖的“便簽圖示”

在下圖中的Filter Query語句通常要向LDAP管理員詢問,並填入;下圖展示的為預設語句,可不需要額外配置

在configuration 下點擊memberof並在enabled as 處,選擇為attributes ,保存即可

如果網路中有多台LDAP或多個相同的ODBC,在同一個認證員下,可點擊添加備份,即可實現認證源的添加

由於創建的是LDAP的備份,因此只需要修改IP及LDAP管理員再次輸入密碼資訊

注意上面的userPassword,如果LDAP欄位存儲密碼不是採用userPassword,則需要修改,具體需要詢問LDAP管理員; 【同時注意,如果用LDAP 要用來做802.1X 認證,預設LDAP的密碼hash 不是採用NTHASH,因此一定要讓LDAP管理員去修改資料庫密碼存儲方式,並且支援NTHASH,否則無法進行802.1x認證,如果是微軟的AD域控,則不需要考慮這部分,預設密碼存放採用NTHASH】

2.4) 配置服務---服務1 (預驗證的錯誤資訊返回)

這個配置是為了提升使用者的體驗感,很多用戶用Portal認證的其中一個原因就是Portal的交互感好,因此希望借由Portal認證,告訴接入的使用者,用戶名或密碼錯誤,或其他首先原因。由於在前一步我們設置了預驗證,並啟用為app-auth ,可以很好幫助我們解決這塊問題,下面將對這塊的配置進行介紹:

配置錯誤資訊提示:

登陸CPPM--enforcement--profile ,添加add

配置- application enforcement profile,參考如下:

定義返回給使用者顯示的資訊

在如上配置完成後,未來可調用向使用者顯示"用戶名錯誤",因此可依照如上方式,重新建立一個enforcement profile, 並將顯示資訊寫為 “密碼錯誤”

在如上配置完成後,只是學會了發送動作,但是還還沒有跟事件關聯

我們最終要的效果是,如果用戶進行認證時,CPPM 內置返回代碼錯誤為 xxx ,那麼就在頁面上顯示 對應的錯誤資訊!

接下來開始配置策略:

新建一個enforcement policies

點擊rules ,開始添加規則

最後規則添加成類似如下:

代碼說明:

201=用戶名未找到

202=密碼錯誤

216=密碼錯誤 //採用LDAP時會出現錯誤216

到此為止,規則動作都已配置完成,通過如上我們可以預設的是,如果用戶進行Portal預驗證的時候,認證源沒找到用戶名,錯誤代碼為201, 通過動作,我們會提示使用者用戶名錯誤;如果是密碼錯誤,會出現202或216,那麼就可以向使用者返回密碼錯誤的情況,如果是用戶名、密碼都對,那麼就可以直接通過。預設,其他情況都會被拒絕。

雖然規則完成了,但是還要進入下一個階段,配置【認證服務】,才能將整個預驗證完成;

在認證中可能網路環境下會存在多個無線SSID,並且有多種認證方式,要合理並且不重疊的區分這相對來說非常複雜,但是CPPM裡可以利用認證跟蹤器,幫助使用者快速找出唯一的屬性,去實現認證服務的區分。

我們可以做一條認證服務,裡面不配置任何參數,那麼就可以對認證的過程進行便利捕捉:

添加一個服務:

編輯服務的規則

選擇認證源

將之前編輯的enfocement profile 套入 (因為用的是application 的服務,因此如果沒有新建application 的enforcement policy ,這裡是看不到策略的)

此時可以通過網頁做個認證,在進入到access tracker 裡查看日誌,點擊Input-- computed attributes , 就看到如下:

(細心的人也可以發現,上面紅框的標識為創建的訪客登陸表單的網頁名字, portal)

通過如上的舉例,我們已知曉了Portal預驗證時會產生的報文,並且可以用來做區分,那麼我們就對之前配置的認證服務,做服務規則的修改,就可以正式使用了,進入認證服務,添加service rule

通過這樣的配置,在網頁上登錄時,就會顯示如下效果:

//在完成了如上配置之後,我們還要接著往下做,在app-auth 後,需要實現的是基於radius 的認證,並讓radius 通知控制器,放行使用者

2.4) 配置服務---服務2(通知控制器放行使用者)

服務區分參數

認證方法選擇PAP,並選擇相應的認證源

選擇缺省的sample allow access policy即可

到此為止portal 的配置及portal 門戶預驗證的配置都已完成(沒有複雜的控制)

如果需要實現mac 無感知認證,那麼就需要接著往下,進行配置

2.5) Portal智慧記錄MAC功能

MAC位址認證對應用而言是最無感,最便利的認證;但因為收集MAC地址則會帶來非常複雜,繁瑣的過程;因此對於Portal+MAC位址認證而言,就需要實現將MAC位址記錄的功能;那麼接下來將會介紹,在Portal認證後進行MAC位址存放、備註、標記等功能。

預設情況下,只要通過PORTAL\mac\802.1x認證的終端,在CPPM的endpoint 都會產生一條記錄,不過只是寫了個MAC位址,並且標記為【未知】;未來我們希望在標記這個MAC位址的時候,可以關聯用戶名,設置為了方便,還給這個終端mac位址寫入【角色】,那麼可以這樣操作:

進入到endpoint 下,點擊現有的任何一個mac位址

點擊這個終端的屬性,添加一個role 及對應的“值”. \\預設情況下,endpoint 資料庫,沒有role 這個屬性可以寫,但在這裡手動創建後,未來就可以用; username 預設系統有,可以不用寫。

修改完成後,開始對智慧記錄MAC位址的策略進行修改:

進入enforcement-profiles ,新建一個profile

修改送入的屬性:

配置完成後,點擊保存;

在這裡做個舉例,我們有三種類別的人群,未來要實現對這些人群擁有不同的無感知時間,如下表

為了方便未來調用,我通常喜歡將role 資訊也推送到mac 位址裡,所以上一步的操作,我們要執行多次;這裡省略(但是裡面輸入不同的role 名字,注意大小寫)

同時為了方便管理,我一般也建議將username 更新到endpoint 庫裡,因此也要在創建一條update username

在屬性裡,添加如下

注意:因為用戶名不是固定的,所以在這個過程中填入了一個變數 % , 會自動將用戶在portal 裡填入的用戶名推送至endpoint 裡(注意: 寫的時候要採用英文鍵盤,注意大小寫)

完成規則後,我們開始來配置enforcement policy ,新建一個enforcement policy

選擇後,開始進入rules ,編輯規則

上面的意思是: 如果在LDAP伺服器裡,這個用戶組是IT,那麼就採用哪些enforcement profile, 在這裡,我調用了4個profile, 分別將MAC地址的用戶名,role, 及MAC地址辨識為“已知”

如果沒有LDAP,但是想完成這個部分的驗證,可以選擇用CPPM 的本地資料庫,就可以採用如下配置

先配置名為IT 的role

配置一個帳號,並且role 為IT

在回到之前配置enforcement pocliy 下,去創建規則,檢查本地帳號的role 為IT,就用相應的enforcement profiles 進行操作

完成後,enforcement policy 類似如下:

進入到認證服務,並更換之前配置的enforcement policy ,即可完成智慧Portal的切換

驗證:

(忽略Portal認證截圖,請自行測試)

進入CPPM 的endpoint 裡查看,發現變化:

進入到MAC位址之後點擊attributes ,發現到自動加入了username 及role , 跟之前配置的目標一致,表明測試成功。

2.6) 配置服務---服務3(開啟MAC認證功能)

接下來,如果我們配置了一個MAC認證服務,那麼結合之前在控制器上開啟的MAC認證,就可以自動的實現無感知認證了,但是這樣的認證是沒有時間限制的;換句話說就是,用戶一旦Portal認證通過後,自動的記錄了MAC位址,以後永遠都不需要回到Portal認證了。為此,我們需要做一些修改,時間基於時間的控制。

點擊primary ,參考如下資訊,用戶名是appuser ,密碼隨便寫

點擊attributes , 添加filters 語句

貼入如下語句,

SELECT FLOOR(EXTRACT(EPOCH FROM (NOW() - user_auth_at)))::integer AS seconds_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/60)::integer AS minutes_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/3600)::integer AS hours_since_auth, FLOOR((EXTRACT(EPOCH FROM (NOW() - user_auth_at)))/86400)::integer AS days_since_auth FROM endpoints WHERE endpoints.user_auth_at

配置篩檢程式格式為如下:

配置完成後點擊保存,如下圖:

配置enforcement policy

配置規則:

規則編輯成如下:

注意:配置規則的時候,不要選擇為Authorization:[Endpoints Repository]!!!!!

完成後,開始配置MAC位址的認證服務,進入到configuration---service , 點擊add ,並按照下圖進行操作:

在認證方式這裡選擇MAC AUTH ,不要添加ALLOW ALL MAC AUTH , 如果選擇了ALLOW ALL MAC AUTH 那麼如果這個MAC位址是“未知”狀態,也可以通過MAC認證,這不是我們需要的;我們需要的是通過PORTAL 認證後,將MAC位址標識為“已知”的,才有資格進行MAC認證。

配置授權源

enforcement 下,選擇成之前配置的enforcement policy

到此MAC認證的配置也完成,我們可以開始執行測試,點擊access tracker ,並點擊認證記錄,查看點如下:

同時點擊output,發現為allow access profile ,則表示用戶可以通過認證

在控制器上檢查使用者狀態, 輸入show user 可以看到用戶上線表如下圖

通過上圖可以看到在Auth 顯示為MAC ,則表示為MAC認證;不過從上圖中我們獲悉到一個情況,當前在name 區域為MAC位址,可能很多用戶會覺得未來在排錯的時候,這樣會變得非常複雜。希望能用MAC認證,並且返回用戶的帳號,那麼我們需要做如下操作。

點擊enforcement proifle -- 新建一個profile ,兵選擇為radius based enforcement

點擊attributes , 並輸入如下

注意: 寫的時候要採用英文鍵盤,注意大小寫 %, 配置完成後,保存即可;

通過如上的配置,目的是將endpoint 裡的username 返回給輸出,不過這個時候我們還要嵌套到enforcement policy,找到我們之前MAC認證用的enforcement policy ,進行修改

在每個動作後面都加入一個return-username 即可。

配置完成後,我們就可以測試,是否可以成功返回用戶名到控制器上,並且認證是採用MAC認證;

依舊在控制器裡輸入 show user

通過如上可以看到用戶接入已自動採用MAC認證,並且向控制器返回了用戶的用戶名。

Next Article
喜欢就按个赞吧!!!
点击关闭提示