定義
portal認證通常也稱為web認證,一般将portal認證網站稱為門戶網站。使用者上網時,必須在門戶網站進行認證,如果未認證成功,僅可以通路特定的網絡資源,認證成功後,才可以通路其他網絡資源。
免安裝:portal認證不需要安裝專門軟體
便于營運:可以在portal頁面上進行業務拓展,如廣告推送、企業宣傳等
應用廣泛:營運商、連鎖快餐、酒店、學校
部署位置靈活:可以在接入層或關鍵資料的入口作通路控制
使用者管理靈活:可基于使用者名與vlan/ip/mac位址的組合對使用者進行認證
架構
包括用戶端、接入裝置、portal伺服器和認證伺服器。

用戶端:安裝有運作http/https協定的浏覽器的主機
接入裝置:交換機、路由器等接入裝置的統稱,主要有三個方面的作用。
認證前:将認證網段内使用者的所有http/https請求都重定向到portal伺服器
認證中:與portal伺服器、認證伺服器互動,完成對使用者身份認證、授權與計費的功能
認證後:允許使用者通路被管理者授權的網絡資源。
portal伺服器:接收用戶端認證請求的伺服器系統,提供免費門戶服務和認證界面,與接入裝置互動用戶端的認證資訊。
外置Portal伺服器:支援外置獨立伺服器的擴充功能,例如支援MAC優先的Portal認證。
内置Portal伺服器:内嵌于接入裝置内,實作簡單的Portal伺服器功能,不能完全替代獨立的Portal伺服器。
優點:不需要部署額外的Portal伺服器,故增強了Portal認證的通用性。
缺點:受限于接入裝置存儲空間、功能和性能,僅能給使用者提供通過Web方式上線、下線的基本功能,不支援外置獨立伺服器的任何擴充功能,例如不支援MAC優先的Portal認證。
場景:适用于功能簡單、接入人數少的場景,例如小型餐館提供的連接配接Internet服務。
認證伺服器:與接入裝置進行互動,完成對使用者的認證、授權與計費。
portal協定
portal協定分為portal接入協定和portal認證協定
portal接入協定
基于http/https協定,描述了用戶端和portal伺服器之間的協定互動。
用戶端通過HTTP/HTTPS協定依次向portal伺服器發起連接配接請求和portal認證請求。
portal認證協定
支援如下兩種認證協定
portal協定:描述了portal伺服器和接入裝置之間的協定互動,可以用來傳遞使用者名和密碼等參數。其相容中國移動portal 2.0協定,支援該協定的基本功能。
收到用戶端的portal認證請求後,portal伺服器通過portal協定向接入裝置發起portal認證請求(攜帶使用者名和密碼)。
http/https協定:描述了用戶端和接入裝置之間的協定互動,可以用來傳遞使用者名和密碼等參數。收到用戶端的portal認證請求後,portal伺服器通過HTTP/HTTPS協定通知用戶端向接入裝置發起portal認證請求,然後用戶端通過HTTP/HTTPS協定向接入裝置發起portal認證請求(攜帶使用者名和密碼)
portal認證方式
按照網絡中實施portal認證的網絡層次來分,portal認證方式分為兩種:二層認證方式和三層認證方式。
二層認證
當用戶端與接入裝置之間為二層網絡時,即用戶端與接入裝置直連(或之間隻有二層裝置存在),接入裝置可以學習到用戶端的mac位址,則接入裝置可以利用IP位址和mac位址來識别使用者,此時可以配置portal認證為二層認證方式。
二層認證流程簡單,安全性高,但是由于限制了使用者隻能與接入裝置處于同一網段,是以組網靈活性不高
三層認證
當用戶端與接入裝置之間包含三層網絡時,即用戶端與接入裝置之間存在三層轉發裝置,接入裝置不能擷取到認證用戶端的MAC位址,隻能以IP位址作為使用者的唯一辨別,此時需要将Portal認證配置為三層認證方式。
三層認證組網靈活,容易實作遠端控制,但由于隻能以IP位址作為使用者的唯一辨別,是以安全性不高。
portal認證流程
認證的第一件事情就是發起認證,有兩種認證觸發方式:
主動認證
使用者通過浏覽器主動通路Portal認證網站時,即在浏覽器中直接輸入Portal伺服器的網絡位址,然後在顯示的網頁中輸入使用者名和密碼進行認證,這種開始Portal認證過程的方式即為主動認證,即由使用者自己主動通路Portal伺服器發起的身份認證。
重定向認證
使用者輸入的通路位址不是Portal認證網站位址時,将被強制通路Portal認證網站(通常稱為重定向),進而開始Portal認證過程,這種方式稱作重定向認證。
基于portal協定的portal認證流程
在二層認證方式下,使用者上線時的封包互動流程。在三層方式沒有建立預連接配接過程。
1、在認證之前用戶端與接入裝置之間建立起預連接配接,即用戶端使用者在認證成功之前在接入裝置上已建立使用者線上表項,并且隻有部分網絡通路權限。
2、用戶端發起HTTP連接配接請求。
3、接入裝置收到HTTP連接配接請求封包時,如果是通路portal伺服器或免認證網絡資源的http封包,則接入裝置允許其通過;如果是通路其他位址的http封包,則接入裝置将其url位址重定向到portal認證頁面。
4、用戶端根據獲得的url位址向portal伺服器發起http連接配接請求。
5、portal伺服器向用戶端傳回portal認證頁面
6、使用者在portal認證頁面輸入使用者名和密碼後,用戶端向portal伺服器發起portal認證請求
7、portal伺服器收到portal認證請求後,如果portal伺服器與接入裝置之間采用chap認證,則portal伺服器向接入裝置發起portal挑戰字請求封包(req-challenge);如果portal伺服器與接入裝置之間采用pap認證,則接入裝置直接進行第9步。
8、接入裝置向portal伺服器回應portal挑戰字應答封包(ack-challenge)
9、portal伺服器将使用者輸入的使用者名和密碼封裝在portal認證請求封包(req-auth)中,并發送給接入裝置
10、接入裝置根據擷取到的使用者名和密碼,向radius伺服器發送radius認證請求(access-request)
11、radius伺服器對使用者名和密碼進行認證。如果認證成功,則radius伺服器向接入裝置發送認證接受封包(access-accept),如果認證失敗,則radius伺服器傳回認證拒絕封包(access-reject),由于radius協定合并了認證和授權的過程,是以認證接受封包中也包含了使用者的授權資訊。
12、接入裝置根據接收到的認證結果接入/拒絕使用者,如果允許使用者接入,則接入裝置向radius伺服器發送計費開始請求封包(accounting-request)
13、radius伺服器傳回計費開始相應封包(accounting-resquest),并開始計費,将使用者加入自身線上使用者清單。
14、接入裝置向portal伺服器傳回portal認證結果(ack-auth),并将使用者加入自身線上使用者清單
15、portal伺服器向用戶端發送認證結果封包,通知用戶端認證成功,并将使用者加入自身線上使用者清單
16、portal伺服器向接入裝置發送認證應答确認(aff-ack-auth)
基于HTTP/HTTPS協定的portal認證流程
二層認證方式如下,三層沒有預連接配接過程。
在認證之前用戶端與接入裝置之間建立起預連接配接,即用戶端使用者在認證成功之前在接入裝置上已建立使用者線上表項,并且隻有部分網絡通路權限。
- 用戶端發起HTTP連接配接請求。
- 接入裝置收到HTTP連接配接請求時,如果是通路Portal伺服器或免認證網絡資源的HTTP封包,則接入裝置允許其通過;如果是通路其它位址的HTTP封包,則接入裝置将其URL位址重定向到Portal認證頁面。
- 用戶端根據獲得的URL位址向Portal伺服器發起HTTP連接配接請求。
- Portal伺服器向用戶端傳回Portal認證頁面。
- 使用者在Portal認證頁面輸入使用者名和密碼後,用戶端向Portal伺服器發起Portal認證請求。
- Portal伺服器通知用戶端向接入裝置發起Portal認證請求。
- 用戶端向接入裝置發起Portal認證請求(HTTP POST/GET)。
- 接入裝置根據擷取到的使用者名和密碼,向RADIUS伺服器發送RADIUS認證請求(ACCESS-REQUEST)。
- RADIUS伺服器對使用者名和密碼進行認證。如果認證成功,則RADIUS伺服器向接入裝置發送認證接受封包(ACCESS-ACCEPT);如果認證失敗,則RADIUS伺服器傳回認證拒絕封包(ACCESS-REJECT)。由于RADIUS協定合并了認證和授權的過程,是以認證接受封包中也包含了使用者的授權資訊。
- 接入裝置根據接收到的認證結果接入/拒絕使用者。如果允許使用者接入,則接入裝置向RADIUS伺服器發送計費開始請求封包(ACCOUNTING-REQUEST)。
- RADIUS伺服器傳回計費開始響應封包(ACCOUNTING-RESPONSE),并開始計費,将使用者加入自身線上使用者清單。
- 接入裝置向用戶端傳回Portal認證結果,并将使用者加入自身線上使用者清單。
portal認證授權
認證:用于确認嘗試接入網絡的使用者身份是否合法
授權:用于指定身份合法的使用者所能擁有的網絡通路權限,即使用者在認證後能夠幹嘛
授權最常用的是acl和ucl。
acl
使用者認證成功後,認證伺服器将指定acl授權給使用者,則裝置會根據該acl對使用者封包進行控制
如果使用者封包比對到該acl中動作為permit的規則,則允許其通過
如果使用者封包比對到該acl中動作為deny的規則,則将其丢棄
radius伺服器授權acl有兩種方法:
授權靜态acl:radius伺服器通過radius标準屬性filter-id将acl id授權給使用者。為使授權的acl生效,需要
UCL
使用者控制清單UCL組(User Control List)是網絡成員的集合。UCL組裡面的成員,可以是PC、手機等網絡終端裝置。借助UCL組,管理者可以将具有相同網絡通路政策的一類使用者劃分為同一個組,然後為其部署一組網絡通路政策,滿足該類别所有使用者的網絡通路需求。相對于為每個使用者部署網絡通路政策,基于UCL組的網絡控制方案能夠極大的減少管理者的工作量。RADIUS伺服器授權UCL組有兩種方式:
- 授權UCL組名稱:RADIUS伺服器通過RADIUS标準屬性Filter-Id将UCL組名稱授權給指定使用者。
- 授權UCL組ID:RADIUS伺服器通過華為RADIUS擴充屬性HW-UCL-Group将UCL組ID授權給指定使用者。無論是哪一種授權UCL組方式,都必須提前在裝置上配置相應的UCL組及UCL組的網絡通路政策。
使用者組
使用者組指具有相同角色、相同權限等屬性的一組使用者(終端)的集合。每個使用者組可以關聯不同的ACL、CAR、封包優先級,因而通過使用者組授權,可以實作對每類使用者進行基于ACL的通路控制、基于VLAN的通路控制、流量控制以及優先級控制,管理更靈活。
比如,由于ACL資源有限,當每使用者需要的授權ACL較多時,上線授權的使用者數無法達到規格,但實際使用者數很大,使用者權限的分類比較少的,此時可以使用使用者組,每一組使用者複用ACL,以利用有限的ACL支援較大規格的使用者進行ACL授權。 使用者組可以在RADIUS伺服器上配置,也可以在裝置端配置(需在AAA域下應用)。如果使用者希望使用RADIUS伺服器下發的使用者組授權,需要保證RADIUS伺服器上下發的使用者組在裝置上已經配置(不需在AAA域下應用)。
RADIUS伺服器下發使用者組授權的方式和下發ACL ID的方式一樣,都是用11号标準屬性Filter-Id來攜帶,屬性值填充使用者組名稱。11号屬性将優先被當成ACL編号處理。當裝置上不存在該ACL編号的時候,則當成使用者組處理,如果裝置上也不存在該使用者組時,則授權失敗。
RADIUS伺服器下發的使用者組授權優先級高于裝置端配置的使用者組授權,當伺服器下發的使用者組授權失敗後,使用者會采用裝置端配置的使用者組授權。
free-rule
使用者認證成功之前,為滿足使用者基本的網絡通路需求,需要使用者認證成功前就能擷取部分網絡通路權限。可在free-rule模闆中配置free-rule規則,滿足使用者的認證成功前的網絡通路需求。
使用者的free-rule可以通過普通的free-rule定義,也可以通過ACL定義。普通的free-rule由IP位址、MAC位址、接口、VLAN等參數确定;通過ACL定義的free-rule由ACL規則确定。兩種方式定義的free-rule都能夠指定使用者無需認證就可以通路的目的IP位址。除此之外,ACL定義的free-rule還能夠指定使用者認證成功前就可以通路的目的域名。
基于域名定義使用者的free-rule有時要比基于IP位址簡單友善。例如,某些認證使用者由于沒有認證賬号,必須首先在營運商提供的官方網站上注冊申請會員賬号;或者通過微網誌、微信等第三方賬号進行登入。這就要求使用者認證通過前,能夠通路特定的網站。由于使用者記憶網站的域名要比記憶其IP位址容易的多,是以,此時可以通過ACL定義的free-rule,指定使用者認證成功前即可通路以上網站域名。
Portal認證邏輯流程
在使用者進行Portal認證的過程中,接入裝置的處理邏輯如圖所示,此處以RADIUS認證方式為例進行說明。
- 使用者通路網絡時,如果配置了預連接配接授權,則使用者擷取相應權限,使用者通路權限之外的資源時,觸發使用者重定向到Portal認證網站;如果未配置預連接配接授權,則觸發使用者重定向到Portal認證網站。
- 使用者通路Portal認證網站,如果Portal伺服器正常,則接入裝置與RADIUS伺服器進行Portal認證。如果Portal伺服器Down,則檢查Portal伺服器Down時的網絡通路權限,按是否配置相應權限處理,當配置了Portal伺服器狀由Down轉變為Up時對使用者進行重認證,按照重認證的觸發機制對相應狀态使用者進行重認證。
- Portal認證時,如果RADIUS伺服器狀态正常,則使用者認證成功授與完整權限,如果使用者認證失敗,則依次檢查認證失敗授權和預連接配接授權,并擷取相應權限。如果RADIUS伺服器Down,則依次檢查認證伺服器Down時的網絡通路權限、使用者在認證失敗時的網絡通路權限、使用者在預連接配接階段的網絡通路權限,按是否配置相應權限處理。
portal準入控制配置案例
實驗拓撲
配置思路
1、底層配置
2、交換機portal認證配置
3、ac配置
3.1、增加裝置
3.2、建立portal賬号
3.3、增加認證規則
3.4、增加授權結果
3.5、增加授權規則
4、驗證結果
具體配置
1、防火牆基礎配置
#接口配置
sys fw1
int g0/0/0
ip add 192.168.0.10 24
int g0/0/1
ip add 10.1.1.10 24
int g0/0/3
ip add 192.168.1.10 24
int g0/0/2
ip add 202.100.1.10 24
#配置安全區域
fire zone trust
add int g0/0/1
fire zone dmz
add int g0/0/3
fire zone untrust
add int g0/0/2
quit
ip route-static 0.0.0.0 0 202.100.1.254
ip route-static 10.1.2.0 24 10.1.1.254
user-interface con 0
id 0
2、路由器配置
sys ISP
undo int vlanif1
acl 2000
rule permit
int g0/0/0
undo portswitch
nat outbound 2000
ip add dhcp-alloc
int g0/0/1
undo portswitch
ip add 202.100.1.254 24
quit
ip route-static 10.1.0.0 16 202.100.1.10
user-interface con 0
id 0
3、接入交換機配置MAC認證
3.1、建立并配置radius伺服器模闆
#配置radius
radius-server template RADIUS-POLICY
radius-server shared-key cipher Huawei@123
radius-server authentication 192.168.1.100 1812
radius-server accounting 192.168.1.100 1813
quit
radius-server auththorization 192.168.1.100 shared-key cipher Huawei@123
3.2、建立并配置AAA認證、計費方案
aaa
authentication-scheme AUTH
authentication-mode radius
accounting-scheme ACCOUNT
accounting-mode radius
accounting realtime 3
3.3、配置認證域,并在其上綁定aaa認證、計費方案、radius伺服器模闆
aaa
domain default
authentication-scheme AUTH
accounting-scheme ACCOUNT
radius-server RADIUS-POLICY
3.4、配置關聯portal伺服器
web-auth-server PORTAL #配置網頁認證伺服器
server-ip 192.168.1.100
port 50200 #注:預設使用的是50100,也可以使用50200
shared-key simple Huawei@123
url http://192.168.1.100:8080/portal #推送重定向認證界面
server-source ip-address 10.1.1.254 #注:V200R020及以上版本必須配置
web-auth-server server-source all-interface #注:可以使用全局
web-auth-server listening-port 2000 #預設監聽2000
#統一模式
portal-access-profile name PORTAL-ACC-PROFILE#配置portal接入模闆
web-auth-server PORTAL direct#調用網頁認證伺服器
authentication-profile name AUTH-PROFILE#配置認證模闆
portal-access-profile PORTAL-ACC-PROFILE#調用portal接入模闆
#調用接口
interface GigabitEthernet0/0/9
authentication-profile AUTH-PROFILE
4、ac配置
4.1、增加接入裝置
資源---裝置--裝置管理---所有裝置----添加
在啟用radius的基礎上啟用portal
4.2、增加終端使用者
新增裝置組--接入裝置,并将剛剛增加的裝置接入裝置移動到接入裝置組
資源---使用者管理--增加使用者組
在建立的使用者組下面增加使用者
4.3、配置認證規則
建立認證規則
選擇接入業務
關聯使用者組
關聯接入裝置組
關聯認證協定
注意和dot1x的差別是需要關聯使用者組
4.4、配置動态acl
4.5、配置授權結果
新增授權結果
選擇接入業務,配圖出錯
關關聯态acl
4.6、配置授權規則
新增授權規則
關聯接入裝置組
關聯使用者組
關聯授權結果
5、驗證結果
0、在終端pc上通路公網www.baidu.com自動跳轉到portal認證頁面
登入前無法通路其他網絡。連自己的網關都無法通路,但是可以通路ac伺服器。
1、在sw上檢查線上使用者
[sw1]dis access-user
------------------------------------------------------------------------------------------------------
UserID Username IP address MAC Status
------------------------------------------------------------------------------------------------------
20 portaluser1 10.1.2.1 0050-569e-ce30 Success
------------------------------------------------------------------------------------------------------
Total: 1, printed: 1
2、檢查線上使用者詳細資訊
[sw1]dis access-user user-id 20
Basic:
User ID : 20
User name : portaluser1
Domain-name : default
User MAC : 0050-569e-ce30
User IP address : 10.1.2.1
User vpn-instance : -
User IPv6 address : -
User access Interface : GigabitEthernet0/0/9
User vlan event : Success
QinQVlan/UserVlan : 0/11
User vlan source : user request
User access time : 2021/02/10 12:26:41
User accounting session ID : sw100009000000011b0****0000014
Option82 information : -
User access type : WEB
Terminal Device Type : Data Terminal
Web-server IP address : 192.168.1.100
Dynamic ACL desc(Effective) :
No. 0: acl 10000 dest-ip 202.100.1.0 dest-ipmask 24 permit
Service Scheme Priority : 0
AAA:
User authentication type : WEB authentication
Current authentication method : RADIUS
Current authorization method : -
Current accounting method : RADIUS
3、ac檢查日志
6、訪客管理特性配置
6.1、配置訪客賬号政策
政策--訪客管理---訪客賬号政策
6.2、配置認證規則
注意使用者組配置為guest組
6.3、配置授權規則
注意使用者組配置為guest組
6.4、測試注冊
[sw1]dis web-auth-server configuration
Listening port : 2000
Portal : version 1, version 2
Include reply message : enabled
Server-Source : all-interface
------------------------------------------------------------------------------------------------
Web-auth-server Name : RADIUS-POLICY
IP-address : 192.168.1.100
Shared-key : ******
Source-IP : -
Port / PortFlag : 50200 / NO
Server-Source : -
URL : http://192.168.1.100:8080/portal
URL Template :
URL Template ParaName:
URL Template IVName :
URL Template Key :
Redirection : Enable
Sync : Disable
Sync Seconds : 0
Sync Max-times : 0
Detect : Disable
Detect Seconds : 60
Detect Max-times : 3
Detect Critical-num : 0
Detect Action :
Detect Type : portal
VPN Instance :
Bound Portal profile :
Protocol : portal
Http Get-method : disable
Password Encrypt : none
Cmd ParseKey : cmd
Username ParseKey : username
Password ParseKey : password
MAC Address ParseKey : macaddress
IP Address ParseKey : ipaddress
Initial URL ParseKey : initurl
Login Cmd : login
Logout Cmd : logout
Login Success
Reply Type : redirect initial URL
Redirect URL :
Message :
Login Fail
Reply Type : redirect login URL
Redirect URL :
Message :
Logout Success
Reply Type : message
Redirect URL :
Message : LogoutSuccess!
Logout Fail
Reply Type : message
Redirect URL :
Message : LogoutFail!