一種基于Openwrt路由器的Portal認(rèn)證的方法【專利摘要】本發(fā)明公開(kāi)了一種基于Openwrt路由器的Portal認(rèn)證的方法,包括:步驟一,在Openwrt路由器上部署Wifidog協(xié)議,實(shí)現(xiàn)用戶訪問(wèn)數(shù)據(jù)的攔截、重定向和在線狀態(tài)保持的功能;步驟二,利用Openwrt系統(tǒng)支持的uhttpd服務(wù)和Lua腳本編程,建立本地認(rèn)證服務(wù)器,實(shí)現(xiàn)用戶的認(rèn)證功能;步驟三,通過(guò)相關(guān)配置,將Wifidog協(xié)議和本地認(rèn)證服務(wù)器相關(guān)聯(lián),實(shí)現(xiàn)本地認(rèn)證的功能。本發(fā)明在Openwrt路由器上,基于輕量級(jí)的uhttpd和Lua建立本地認(rèn)證服務(wù)器,保證上網(wǎng)認(rèn)證功能的實(shí)現(xiàn),同時(shí)以較小的負(fù)載占用保證路由器其他功能的正常運(yùn)行;局域網(wǎng)內(nèi)用戶在連接上路由器后,直接通過(guò)瀏覽器就可以實(shí)現(xiàn)上網(wǎng)認(rèn)證,不需要安裝額外的認(rèn)證客戶端?!緦@f(shuō)明】一種基于Openwrt路由器的PortaI認(rèn)證的方法
技術(shù)領(lǐng)域:
[0001]本發(fā)明涉及智能路由器、嵌入式軟件設(shè)計(jì)的
技術(shù)領(lǐng)域:
,具體涉及一種基于Openwrt路由器的PortaI認(rèn)證的方法?!?br>背景技術(shù):
】[0002]隨著處理器性能的提升和成本的降低,路由器的處理能力越來(lái)越強(qiáng),在完成網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)的同時(shí),還可以用來(lái)部署更多的功能,完成更多的工作。智能路由器是可以智能化管理的路由器,除了具有普通無(wú)線路由器的功能之外,還具有獨(dú)立的操作系統(tǒng),用戶可以安裝各種應(yīng)用,滿足多樣化的需求。在商場(chǎng)、機(jī)場(chǎng)、賓館等公共場(chǎng)所,為了避免無(wú)線網(wǎng)絡(luò)被濫用,保證網(wǎng)絡(luò)安全,同時(shí)便于對(duì)用戶進(jìn)行管理,管理員通常會(huì)對(duì)無(wú)線網(wǎng)絡(luò)接入者采用一定的認(rèn)證方式進(jìn)行身份和權(quán)限的認(rèn)證。目前這種情況一般需要購(gòu)買(mǎi)專用的設(shè)備進(jìn)行部署安裝,從而實(shí)現(xiàn)接入認(rèn)證和用戶管理的功能;用戶為了進(jìn)行認(rèn)證,有時(shí)還需要下載專門(mén)的認(rèn)證客戶端進(jìn)行接入認(rèn)證??紤]到智能路由器具有豐富的擴(kuò)展性和更強(qiáng)的數(shù)據(jù)處理能力,借助Openwrt系統(tǒng)平臺(tái),將上網(wǎng)認(rèn)證功能集成到路由器中實(shí)現(xiàn),在本地端完成上網(wǎng)認(rèn)證工作,不僅可以節(jié)約設(shè)備成本,同時(shí)在網(wǎng)頁(yè)瀏覽器上就可以完成所有認(rèn)證步驟,方便快捷。[0003]Portal認(rèn)證通常也可以稱作Web認(rèn)證,Portal有入門(mén)或者進(jìn)入的意思,所以Portal認(rèn)證是用戶接入互聯(lián)網(wǎng)時(shí)需要進(jìn)行的一種驗(yàn)證。當(dāng)用戶尚未通過(guò)認(rèn)證時(shí),用戶只能訪問(wèn)指定網(wǎng)站的資源,針對(duì)其他網(wǎng)站的訪問(wèn)行為都會(huì)被拒絕或者強(qiáng)制重定向到指定的網(wǎng)站;當(dāng)用戶需要訪問(wèn)其他網(wǎng)站獲取更多資源信息時(shí),就必須在指定網(wǎng)頁(yè)完成身份認(rèn)證后,才可以完整使用寬帶網(wǎng)絡(luò)訪問(wèn)整個(gè)互聯(lián)網(wǎng)的資源(參見(jiàn)文獻(xiàn)【I】李新,周彩蘭,朱榮.基于Portal技術(shù)的數(shù)字化校園門(mén)戶的研究[J].計(jì)算機(jī)與現(xiàn)代化,2007(9):65-67.)。[0004]文獻(xiàn)【2】(馬燕,范植華.Web/Portal認(rèn)證技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2004,21(8):76-79.)給出了一個(gè)簡(jiǎn)單的Portal認(rèn)證系統(tǒng)的四個(gè)組成部分以及各部分負(fù)責(zé)的具體工作。主要包括:用戶認(rèn)證客戶端,接入設(shè)備,Portal認(rèn)證服務(wù)器和認(rèn)證/計(jì)費(fèi)服務(wù)器。PortalClient是發(fā)起認(rèn)證請(qǐng)求的客戶端,通常是用戶手機(jī)平板等設(shè)備的瀏覽器,運(yùn)行常見(jiàn)的HTTP協(xié)議。PortalServer是認(rèn)證系統(tǒng)的服務(wù)器端,用于接收由客戶端發(fā)起的認(rèn)證請(qǐng)求,該服務(wù)器系統(tǒng)為用戶提供一個(gè)自定義的Web認(rèn)證界面,同時(shí)與BAS交互已經(jīng)認(rèn)證客戶端的身份信息。接入設(shè)備實(shí)現(xiàn)寬帶接入服務(wù),當(dāng)Client未認(rèn)證并且發(fā)出了訪問(wèn)請(qǐng)求時(shí),重定向用戶的HTTP認(rèn)證請(qǐng)求到PortalServer,并完成信息交互;當(dāng)Client認(rèn)證完成后,允許訪問(wèn)被管理資源。AAAServer負(fù)責(zé)與Client設(shè)備進(jìn)行信息的交互,實(shí)現(xiàn)認(rèn)證/授權(quán)/計(jì)費(fèi)等服務(wù)。[0005]Portal認(rèn)證按照選擇的組網(wǎng)方式不同,認(rèn)證的模式也有所不同。按照網(wǎng)絡(luò)層次來(lái)看,主要可以分成兩種認(rèn)證方式:二層認(rèn)證方式和三層認(rèn)證方式。二層認(rèn)證一般在接入設(shè)備的二層端口開(kāi)啟Portal認(rèn)證,通過(guò)用戶設(shè)備的MAC地址(或者M(jìn)AC地址與IP地址結(jié)合)來(lái)區(qū)分認(rèn)證用戶和未認(rèn)證用戶(參見(jiàn)文獻(xiàn)【3】王剛,王欣,馮銘能.一種基于WebPortal架構(gòu)的校園網(wǎng)用戶二次認(rèn)證方案[J].廣東通信技術(shù),2014,34(2):17-19.)。三層認(rèn)證則是在三層接口上開(kāi)啟Portal認(rèn)證,根據(jù)IP地址進(jìn)行局域網(wǎng)內(nèi)用戶身份的區(qū)分和確認(rèn)。接入設(shè)備根據(jù)IP地址完成對(duì)用戶上網(wǎng)請(qǐng)求的認(rèn)證控制和報(bào)文轉(zhuǎn)發(fā)(參見(jiàn)文獻(xiàn)【4】鐘汶娟.基于端口安全的校園網(wǎng)AAA系統(tǒng)設(shè)計(jì)與測(cè)試[D].重慶大學(xué),2014.)。[0006]根據(jù)文獻(xiàn)【5】(CN102143177B,發(fā)明名稱:一種Portal認(rèn)證方法、裝置、設(shè)備及系統(tǒng)),可以將Portal認(rèn)證的一般過(guò)程概括總結(jié)如下:[0007]I)未經(jīng)過(guò)認(rèn)證用戶發(fā)起互聯(lián)網(wǎng)訪問(wèn)請(qǐng)求時(shí),該用戶的訪問(wèn)請(qǐng)求在經(jīng)過(guò)接入設(shè)備時(shí)會(huì)被重定向到Portal服務(wù)器,該服務(wù)器返回Web認(rèn)證頁(yè)面給用戶;[0008]2)用戶在認(rèn)證頁(yè)面中輸入正確的帳號(hào)和密碼后,將認(rèn)證信息提交給認(rèn)證服務(wù)器;[0009]3)Portal服務(wù)器的認(rèn)證處理單元使用用戶的認(rèn)證信息與認(rèn)證服務(wù)器通信進(jìn)行認(rèn)證;[0010]4)認(rèn)證通過(guò)后,認(rèn)證服務(wù)器或Portal服務(wù)器打開(kāi)接入設(shè)備上用戶與互聯(lián)網(wǎng)的通路,允許用戶訪問(wèn)互聯(lián)網(wǎng)?!?br/>發(fā)明內(nèi)容】[0011]本發(fā)明的目的在于:I)本發(fā)明在Openwrt路由器上利用uhttpd服務(wù)和Lua腳本實(shí)現(xiàn)本地認(rèn)證服務(wù)器功能;2)本發(fā)明在Openwrt路由器上實(shí)現(xiàn)完整的上網(wǎng)認(rèn)證的功能;3)本發(fā)明針對(duì)局域網(wǎng)內(nèi)用戶,不需要安裝額外的客戶端,僅通過(guò)瀏覽器頁(yè)面即可以實(shí)現(xiàn)上網(wǎng)認(rèn)證。[0012]本發(fā)明采用的技術(shù)方案為:一種基于Openwrt路由器的Portal認(rèn)證的方法,包括:步驟一,在Openwrt路由器上部署Wifidog協(xié)議,實(shí)現(xiàn)用戶訪問(wèn)數(shù)據(jù)的攔截、重定向和在線狀態(tài)保持等功能;步驟二,利用Openwrt系統(tǒng)支持的uhttpd服務(wù)和Lua腳本編程,建立本地認(rèn)證服務(wù)器,實(shí)現(xiàn)用戶的認(rèn)證功能;步驟三,通過(guò)相關(guān)配置,將Wifidog協(xié)議和本地認(rèn)證服務(wù)器相關(guān)聯(lián),實(shí)現(xiàn)本地認(rèn)證的功能。[0013]l)Wifidog協(xié)議的部署[0014]為了實(shí)現(xiàn)局域網(wǎng)內(nèi)用戶的上網(wǎng)認(rèn)證,必須對(duì)用戶的訪問(wèn)數(shù)據(jù)進(jìn)行攔截和識(shí)別。對(duì)沒(méi)有通過(guò)認(rèn)證、沒(méi)有訪問(wèn)權(quán)限的用戶的訪問(wèn)行為,強(qiáng)制重定向指定的認(rèn)證頁(yè)面進(jìn)行認(rèn)證;對(duì)已經(jīng)通過(guò)了認(rèn)證、擁有聯(lián)網(wǎng)訪問(wèn)權(quán)限的用戶的訪問(wèn)行為,予以放行。同時(shí),經(jīng)過(guò)認(rèn)證的用戶,可以正常的訪問(wèn)網(wǎng)絡(luò)資源而不需要重復(fù)認(rèn)證,由心跳檢測(cè)程序負(fù)責(zé)維持用戶的在線狀態(tài)。Wifidog通過(guò)在路由器建立一系列的Iptables規(guī)則,實(shí)現(xiàn)訪問(wèn)攔截功能;通過(guò)和認(rèn)證服務(wù)器的定時(shí)交互實(shí)現(xiàn)認(rèn)證狀態(tài)保持。[0015]2)本地認(rèn)證服務(wù)器的建立[0016]為了在Openwrt路由器本地端對(duì)用戶實(shí)現(xiàn)認(rèn)證,借助Openwrt系統(tǒng)自帶的uhttpd服務(wù)和對(duì)Lua腳本的支持,在Luci(Openwrt自帶的Web管理服務(wù)器)的基礎(chǔ)上,構(gòu)建本地認(rèn)證服務(wù)器。建立該認(rèn)證服務(wù)器需要在Luci對(duì)應(yīng)的目錄下,編寫(xiě)認(rèn)證以及保持在線狀態(tài)相關(guān)的auth協(xié)議、login協(xié)議和ping協(xié)議,實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證和訪問(wèn)權(quán)限的授予。此外,認(rèn)證成功/失敗的腳本、相關(guān)的網(wǎng)頁(yè)頁(yè)面都需要分別進(jìn)行編寫(xiě)實(shí)現(xiàn)。[0017]3)Wifidog協(xié)議與認(rèn)證服務(wù)器相互關(guān)聯(lián)[0018]為了實(shí)現(xiàn)本地認(rèn)證的功能,需要將Wifidog與認(rèn)證服務(wù)器相關(guān)聯(lián)。通過(guò)在Wifidog的配置文件中添加本地認(rèn)證服務(wù)器的相關(guān)信息,包括IP地址、端口號(hào)和相關(guān)腳本所在目錄等,從而將未經(jīng)過(guò)認(rèn)證的用戶的訪問(wèn)行為重定向到本地認(rèn)證服務(wù)器,完成認(rèn)證和狀態(tài)保持,實(shí)現(xiàn)局域網(wǎng)內(nèi)的用戶認(rèn)證工作。[0019]本發(fā)明的流程圖如圖1所示,具體步驟如下:[0020]步驟I):局域網(wǎng)內(nèi)用戶在連接上路由器后,使用瀏覽器訪問(wèn)任意網(wǎng)站,該用戶的訪問(wèn)數(shù)據(jù)會(huì)被攔截,通過(guò)檢測(cè)該用戶的訪問(wèn)數(shù)據(jù)中是否擁有認(rèn)證成功的標(biāo)志,判定該用戶是否擁有外網(wǎng)訪問(wèn)權(quán)限。若用戶是已經(jīng)通過(guò)認(rèn)證的,則訪問(wèn)請(qǐng)求予以放行,正常訪問(wèn)原請(qǐng)求網(wǎng)站。[0021]步驟2):將未驗(yàn)證用戶強(qiáng)制重定向到認(rèn)證服務(wù)器,該認(rèn)證服務(wù)器基于uhttpd服務(wù)和Lua腳本實(shí)現(xiàn),部署于路由器本地。[0022]步驟3):用戶從認(rèn)證服務(wù)器獲取認(rèn)證頁(yè)面,該頁(yè)面可以由管理員自定義產(chǎn)生,用戶可以在該頁(yè)面輸入帳號(hào)和密碼,從而實(shí)現(xiàn)與認(rèn)證服務(wù)器的數(shù)據(jù)交互。認(rèn)證服務(wù)器負(fù)責(zé)驗(yàn)證用戶的提供的帳號(hào)和密碼是否正確,如果錯(cuò)誤,則返回用戶一個(gè)認(rèn)證失敗的頁(yè)面;[0023]步驟4):認(rèn)證服務(wù)器對(duì)擁有正確帳號(hào)和密碼的用戶返回一個(gè)token值,該數(shù)值通過(guò)用戶的IP地址、MAC地址等相關(guān)數(shù)據(jù)計(jì)算得到,一般在局域網(wǎng)內(nèi)是唯一的。用戶在獲得該token后,會(huì)向認(rèn)證服務(wù)器發(fā)起驗(yàn)證,若驗(yàn)證失敗,則認(rèn)證服務(wù)器向用戶返回認(rèn)證失敗的頁(yè)面。[0024]步驟5):token值驗(yàn)證成功后,認(rèn)證服務(wù)器向用戶推送一個(gè)認(rèn)證成功頁(yè)面。[0025]步驟6):用戶認(rèn)證成功,獲取互聯(lián)網(wǎng)訪問(wèn)權(quán)限,同時(shí)自動(dòng)跳轉(zhuǎn)訪問(wèn)原請(qǐng)求的網(wǎng)站。[0026]在Openwrt路由器上,部署實(shí)現(xiàn)portal認(rèn)證功能主要包括Wifidog和認(rèn)證服務(wù)器兩部分。采用Wifidog實(shí)現(xiàn)針對(duì)局域網(wǎng)內(nèi)用戶HTTP訪問(wèn)數(shù)據(jù)的攔截和重定向;基于Luci自定義本地認(rèn)證服務(wù)器,實(shí)現(xiàn)局域網(wǎng)內(nèi)用戶的認(rèn)證功能。整個(gè)認(rèn)證功能全部在Openwrt路由器本地實(shí)現(xiàn)。[0027]本發(fā)明的優(yōu)點(diǎn)和積極效果為:[0028]1、在Openwrt路由器上,基于輕量級(jí)的uhttpd和Lua建立本地認(rèn)證服務(wù)器,保證上網(wǎng)認(rèn)證功能的實(shí)現(xiàn),同時(shí)以較小的負(fù)載占用保證路由器其他功能的正常運(yùn)行;[0029]2、局域網(wǎng)內(nèi)用戶在連接上路由器后,直接通過(guò)瀏覽器就可以實(shí)現(xiàn)上網(wǎng)認(rèn)證,不需要安裝額外的認(rèn)證客戶端;[°03°]3、整個(gè)Portal認(rèn)證功能全部部署在Openwrt路由器上,不需要額外的設(shè)備支持,也不需要重新組網(wǎng),節(jié)約成本;[0031]4、管理員可以自定義認(rèn)證頁(yè)面?!靖綀D說(shuō)明】[0032]圖1為本發(fā)明一種基于Openwrt路由器的Portal認(rèn)證的方法流程圖?!揪唧w實(shí)施方式】[0033]下面結(jié)合附圖以及【具體實(shí)施方式】進(jìn)一步說(shuō)明本發(fā)明。[0034]本發(fā)明一種基于Openwrt路由器的Portal認(rèn)證的方法,具體包括:[0035]1.Wifidog的部署[0036]Wifidog的基本原理是通過(guò)使用防火墻規(guī)則來(lái)完成對(duì)用戶訪問(wèn)行為的拒絕和放行。在Wifidog啟動(dòng)后,主要通過(guò)客戶端檢測(cè)進(jìn)程,交互進(jìn)程和心跳檢測(cè)進(jìn)程三個(gè)進(jìn)程來(lái)完成所有的工作。用戶在連接了路由器后,檢測(cè)進(jìn)程負(fù)責(zé)監(jiān)控用戶的瀏覽行為,對(duì)于已經(jīng)完成認(rèn)證的用戶的訪問(wèn)行為直接放行;對(duì)于未認(rèn)證用戶的訪問(wèn)請(qǐng)求,該用戶所有的訪問(wèn)請(qǐng)求都會(huì)被重定向到指定網(wǎng)址(即認(rèn)證服務(wù)器的頁(yè)面)。交互進(jìn)程用于客戶端和認(rèn)證服務(wù)器之間的數(shù)據(jù)交互,完成用戶的認(rèn)證請(qǐng)求和訪問(wèn)權(quán)限授予。心跳檢測(cè)進(jìn)程負(fù)責(zé)定期和認(rèn)證服務(wù)器進(jìn)行交互,將路由器的相關(guān)信息匯報(bào)給服務(wù)器,以發(fā)送字符串“ping”作為信號(hào),認(rèn)證服務(wù)器通常返回字符串“pong”給路由器。[0037]2.認(rèn)證服務(wù)器的建立[0038]認(rèn)證服務(wù)器需要與接入端的Wifidog配合,完成局域網(wǎng)內(nèi)用戶的訪問(wèn)外部互聯(lián)網(wǎng)資源的認(rèn)證。在認(rèn)證服務(wù)端主要由auth協(xié)議,ping協(xié)議和login認(rèn)證協(xié)議組成。配置實(shí)現(xiàn)主要通過(guò)以下三個(gè)函數(shù)實(shí)現(xiàn):[0039]Ulogin認(rèn)證協(xié)議用于獲取網(wǎng)關(guān)地址、端口、用戶MAC等的相關(guān)信息,結(jié)合用戶發(fā)送的用戶名和密碼,隨機(jī)生成一個(gè)token值返回給用戶。當(dāng)用戶使用正確的帳號(hào)密碼登錄時(shí),程序計(jì)算出唯一個(gè)token值,該值相當(dāng)于用戶的身份象征,表明該用戶用于進(jìn)行portal認(rèn)證的權(quán)限。[°04°]2、auth協(xié)議用來(lái)實(shí)現(xiàn)token以及用戶MAC等相關(guān)信息的校驗(yàn),通過(guò)匹配來(lái)輸出I或者0,通知Wifidog該用戶是否擁有合法的訪問(wèn)權(quán)限。在login協(xié)議中,擁有賬戶密碼的局域網(wǎng)用戶獲得了一個(gè)token,同時(shí)用戶設(shè)備的MAC地址信息和對(duì)應(yīng)token值也會(huì)保存在認(rèn)證服務(wù)器下,當(dāng)用戶向服務(wù)器申請(qǐng)認(rèn)證時(shí),Portal認(rèn)證協(xié)議會(huì)進(jìn)行數(shù)值的比對(duì)校驗(yàn),校驗(yàn)成功輸出I,表明該用戶可以進(jìn)行互聯(lián)網(wǎng)訪問(wèn),否則輸出0,表明目前該用戶尚未通過(guò)認(rèn)證,沒(méi)有聯(lián)網(wǎng)訪問(wèn)權(quán)限,只能進(jìn)行本地局域網(wǎng)資源或者指定資源的訪問(wèn)。[°041]3、認(rèn)證服務(wù)端ping協(xié)議與Wifidog端的ping協(xié)議對(duì)應(yīng),是對(duì)ping協(xié)議的回應(yīng)。為了保證路由器本地端和認(rèn)證服務(wù)器端信息的同步,Wifidog使用Ping協(xié)議定期向認(rèn)證服務(wù)器發(fā)送路由端的當(dāng)前信息狀態(tài),該類型的數(shù)據(jù)包以字符串“ping”作為信號(hào)。認(rèn)證服務(wù)器接收到該類型的數(shù)據(jù)包后,回應(yīng)字符串“Pong”給Wifidog,表示數(shù)據(jù)包已收到,同步完成;若沒(méi)有“Ping”信號(hào)或者數(shù)據(jù)時(shí)間等信息不匹配,則同步失敗,輸出錯(cuò)誤信息詳情。[0042]為了在路由器上實(shí)現(xiàn)以上協(xié)議,在Iuci的controller文件夾下編寫(xiě)對(duì)應(yīng)腳本文件login.lua、auth.1ua和ping.1ua,以及展示錯(cuò)誤信息的msg.1ua和認(rèn)證成功的portal.1ua0[0043](l)login.1ua是配置登錄相關(guān)信息的登錄腳本,采用GET方式獲取網(wǎng)關(guān)的的IP地址、端口、ID、用戶的MAC地址和用戶初始訪問(wèn)的url,這些參數(shù)在網(wǎng)關(guān)向局域網(wǎng)客戶端傳輸重定向請(qǐng)求時(shí)自動(dòng)生成。此外,token值的計(jì)算和用戶登錄頁(yè)面也由該腳本提供。[0044](2)auth.1ua是認(rèn)證腳本,通過(guò)用戶IP地址,AMC地址和token值等信息,判定用戶是否登陸成功。參數(shù)匹配,則返回Auth:1;參數(shù)不匹配,則返回Auth:0。[0045](3)portal.1ua配置用戶成功登錄后的展示頁(yè)面,僅需要接受ID即可,告知用戶登陸成功了,并實(shí)現(xiàn)重定向到用戶之前訪問(wèn)的網(wǎng)頁(yè)。[0046](4)ping.1ua是心跳檢測(cè)腳本,通過(guò)傳入網(wǎng)關(guān)的id、啟動(dòng)時(shí)間、空閑內(nèi)存和負(fù)載信息等,實(shí)現(xiàn)對(duì)AP節(jié)點(diǎn)的管理。Wifidog訪問(wèn)該腳本時(shí),該腳本回應(yīng)Pong字符串,表示收到相關(guān)?目息O[0047](5)msg.1ua配置登陸錯(cuò)誤信息展示腳本,接受參數(shù)message并將顯示message給用戶。[0048]3.Wifidog與認(rèn)證服務(wù)器關(guān)聯(lián)[0049]為了將Wifidog和認(rèn)證服務(wù)器配合使用,在完成Wifidog程序和認(rèn)證服務(wù)器的編寫(xiě)和配置后,需要在在Wifidog中配置添加認(rèn)證服務(wù)器的相關(guān)地址信息和參數(shù),在實(shí)現(xiàn)兩者的關(guān)聯(lián)后,就可以實(shí)現(xiàn)針對(duì)局域網(wǎng)用戶的本地上網(wǎng)認(rèn)證的功能。Wifidog的配置文件是Wifidog.conf,在文件中添加認(rèn)證服務(wù)器的相關(guān)信息。這里,由于基于Luci建立的本地認(rèn)證服務(wù)器,所以地址配置為192.168.1.1,端口為80。針對(duì)認(rèn)證服務(wù)器的各項(xiàng)協(xié)議,在默認(rèn)路徑下,將各個(gè)協(xié)議腳本的文件名同時(shí)添加到配置文件中,從而實(shí)現(xiàn)Wifidog和本地認(rèn)證服務(wù)器的關(guān)聯(lián)。【主權(quán)項(xiàng)】1.一種基于Openwrt路由器的Portal認(rèn)證的方法,其特征在于,包括:步驟一,在Openwrt路由器上部署Wifidog協(xié)議,實(shí)現(xiàn)用戶訪問(wèn)數(shù)據(jù)的攔截、重定向和在線狀態(tài)保持的功能;步驟二,利用Openwrt系統(tǒng)支持的uhttpd服務(wù)和Lua腳本編程,建立本地認(rèn)證服務(wù)器,實(shí)現(xiàn)用戶的認(rèn)證功能;步驟三,通過(guò)相關(guān)配置,將Wifidog協(xié)議和本地認(rèn)證服務(wù)器相關(guān)聯(lián),實(shí)現(xiàn)本地認(rèn)證的功會(huì)K。2.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的Portal認(rèn)證的方法,其特征在于,步驟一中Wifidog協(xié)議的部署的具體為:為了實(shí)現(xiàn)局域網(wǎng)內(nèi)用戶的上網(wǎng)認(rèn)證,必須對(duì)用戶的訪問(wèn)數(shù)據(jù)進(jìn)行攔截和識(shí)別,對(duì)沒(méi)有通過(guò)認(rèn)證、沒(méi)有訪問(wèn)權(quán)限的用戶的訪問(wèn)行為,強(qiáng)制重定向指定的認(rèn)證頁(yè)面進(jìn)行認(rèn)證;對(duì)已經(jīng)通過(guò)了認(rèn)證、擁有聯(lián)網(wǎng)訪問(wèn)權(quán)限的用戶的訪問(wèn)行為,予以放行;同時(shí),經(jīng)過(guò)認(rèn)證的用戶,可以正常的訪問(wèn)網(wǎng)絡(luò)資源而不需要重復(fù)認(rèn)證,由心跳檢測(cè)程序負(fù)責(zé)維持用戶的在線狀態(tài),Wifidog通過(guò)在路由器建立一系列的Iptables規(guī)則,實(shí)現(xiàn)訪問(wèn)攔截功能;通過(guò)和認(rèn)證服務(wù)器的定時(shí)交互實(shí)現(xiàn)認(rèn)證狀態(tài)保持。3.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的Portal認(rèn)證的方法,其特征在于,步驟二中本地認(rèn)證服務(wù)器的建立具體為:為了在Openwrt路由器本地端對(duì)用戶實(shí)現(xiàn)認(rèn)證,借助Openwrt系統(tǒng)自帶的uhttpd服務(wù)和對(duì)Lua腳本的支持,在Openwrt自帶的Web管理服務(wù)器Luci的基礎(chǔ)上,構(gòu)建本地認(rèn)證服務(wù)器;建立該認(rèn)證服務(wù)器需要在Luci對(duì)應(yīng)的目錄下,編寫(xiě)認(rèn)證以及保持在線狀態(tài)相關(guān)的auth協(xié)議、login協(xié)議和ping協(xié)議,實(shí)現(xiàn)對(duì)用戶身份的認(rèn)證和訪問(wèn)權(quán)限的授予;此外,認(rèn)證成功/失敗的腳本、相關(guān)的網(wǎng)頁(yè)頁(yè)面都需要分別進(jìn)行編寫(xiě)實(shí)現(xiàn)。4.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的Portal認(rèn)證的方法,其特征在于,步驟三中Wifidog協(xié)議與認(rèn)證服務(wù)器相互關(guān)聯(lián)具體為:為了實(shí)現(xiàn)本地認(rèn)證的功能,需要將Wifidog與認(rèn)證服務(wù)器相關(guān)聯(lián),通過(guò)在Wifidog的配置文件中添加本地認(rèn)證服務(wù)器的相關(guān)信息,包括IP地址、端口號(hào)和相關(guān)腳本所在目錄,從而將未經(jīng)過(guò)認(rèn)證的用戶的訪問(wèn)行為重定向到本地認(rèn)證服務(wù)器,完成認(rèn)證和狀態(tài)保持,實(shí)現(xiàn)局域網(wǎng)內(nèi)的用戶認(rèn)證工作。5.根據(jù)權(quán)利要求1所述的基于Openwrt路由器的Portal認(rèn)證的方法,其特征在于,具體實(shí)現(xiàn)步驟如下:步驟I):局域網(wǎng)內(nèi)用戶在連接上路由器后,使用瀏覽器訪問(wèn)任意網(wǎng)站,該用戶的訪問(wèn)數(shù)據(jù)會(huì)被攔截,通過(guò)檢測(cè)該用戶的訪問(wèn)數(shù)據(jù)中是否擁有認(rèn)證成功的標(biāo)志,判定該用戶是否擁有外網(wǎng)訪問(wèn)權(quán)限,若用戶是已經(jīng)通過(guò)認(rèn)證的,則訪問(wèn)請(qǐng)求予以放行,正常訪問(wèn)原請(qǐng)求網(wǎng)站;步驟2):將未驗(yàn)證用戶強(qiáng)制重定向到認(rèn)證服務(wù)器,該認(rèn)證服務(wù)器基于uhttpd服務(wù)和Lua腳本實(shí)現(xiàn),部署于路由器本地;步驟3):用戶從認(rèn)證服務(wù)器獲取認(rèn)證頁(yè)面,該頁(yè)面可以由管理員自定義產(chǎn)生,用戶可以在該頁(yè)面輸入帳號(hào)和密碼,從而實(shí)現(xiàn)與認(rèn)證服務(wù)器的數(shù)據(jù)交互,認(rèn)證服務(wù)器負(fù)責(zé)驗(yàn)證用戶的提供的帳號(hào)和密碼是否正確,如果錯(cuò)誤,則返回用戶一個(gè)認(rèn)證失敗的頁(yè)面;步驟4):認(rèn)證服務(wù)器對(duì)擁有正確帳號(hào)和密碼的用戶返回一個(gè)token值,該數(shù)值通過(guò)用戶的IP地址、MAC地址等相關(guān)數(shù)據(jù)計(jì)算得到,一般在局域網(wǎng)內(nèi)是唯一的,用戶在獲得該token后,會(huì)向認(rèn)證服務(wù)器發(fā)起驗(yàn)證,若驗(yàn)證失敗,則認(rèn)證服務(wù)器向用戶返回認(rèn)證失敗的頁(yè)面;步驟5):token值驗(yàn)證成功后,認(rèn)證服務(wù)器向用戶推送一個(gè)認(rèn)證成功頁(yè)面;步驟6):用戶認(rèn)證成功,獲取互聯(lián)網(wǎng)訪問(wèn)權(quán)限,同時(shí)自動(dòng)跳轉(zhuǎn)訪問(wèn)原請(qǐng)求的網(wǎng)站?!疚臋n編號(hào)】H04L29/08GK105871881SQ201610303832【公開(kāi)日】2016年8月17日【申請(qǐng)日】2016年5月6日【發(fā)明人】凌強(qiáng),張雷,徐駿【申請(qǐng)人】中國(guó)科學(xué)技術(shù)大學(xué)