一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

wifidog安裝以及自寫wifidog認證服務(wù)器

 mrjbydd 2018-05-11
前言

最近在做關(guān)于路由器認證相關(guān)的工作,由于需求,認證的過程同往常的網(wǎng)頁認證有稍許不同,因此,自己開始嘗試編寫wifidog的認證服務(wù)器,查閱了中外的一些資料,現(xiàn)將經(jīng)驗總結(jié)一下。

Wifidog的原理

下圖是在Wifidog的wiki網(wǎng)站上截取的wifidog認證流程圖,網(wǎng)址為點擊打開鏈接。

wifidog由兩部分組成,一個是運行在路由器上的程序,另一部分是運行在認證服務(wù)器上的程序。

wifidog的認證流程大致是:

1.首先,用戶的終端可以連接上wifi,然后發(fā)起訪問網(wǎng)站的請求,如www.baidu.com;

2.網(wǎng)關(guān)根據(jù)防火墻規(guī)則,將用戶的請求重定向到本地端口(wifidog的監(jiān)聽端口);

3.網(wǎng)關(guān)將用戶的訪問重定向到認證服務(wù)器上的認證頁面;

4.認證服務(wù)器返回登錄頁面至用戶;

5.用戶再向認證服務(wù)器提供憑據(jù),如用戶名和密碼;

6.認證服務(wù)器根據(jù)用戶提供的憑據(jù)來確定用戶是否符合要求,是否可以上網(wǎng);

7.如果符合要求,認證服務(wù)器將用戶的訪問重定向至路由器的網(wǎng)關(guān)并攜帶標(biāo)識token;

8.網(wǎng)關(guān)向認證服務(wù)器確認用戶信息;

9.如果符合要求,服務(wù)器向用戶返回登錄成功頁面;

10.用戶就可以上網(wǎng)了。

WifiDog在openwrt上的安裝和配置

我的路由器型號是:TP-LINK的TL-941N V4/V5版。

安裝的openwrt是:openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-sysupgrade(先刷openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-factory)。

我是先裝了luci,然后查到了這個路由器的wifidog版本的下載地址,然后通過opkg install安裝的(由于這款路由器的FLASH只有4M,裝了luci以后就不能裝wifidog了,所以又刷了一次系統(tǒng),只安裝了wifidog,然后通過windows下的putty這個ssh工具來訪問openwrt路由器。)。

首次訪問路由時,可通過telnet工具,然后通過passwd,設(shè)置路由器的密碼,之后就可通過ssh訪問了。

Wifidog的配置如下所示:

[plain]view plain copy
  1. GatewayID default  

  2. GatewayInterface br-lan  

  3. GatewayAddress 192.168.1.1  

  4. ExternalInterface br-lan  

  5. AuthServer{  

  6. Hostname (也可以是域名)  

  7. SSLAvailable no  

  8. HTTPPort 8080(默認是80)  

  9. Path /wifidog/(文件名的兩邊都要加‘/’號,除非是根目錄,只要一個‘/’)  

  10. LoginScriptPathFragment login.php/? (這里把第一次登陸時重定向的位置也修改了,加了一個后綴,默認是login/?,)<pre class="plain" name="code">   PingScriptPathFragment ping.php/?  

  11. PortalScriptPathFragment portal.html?  

  12. AuthScriptPathFragment auth.php/?  

  13. ...  

  14. 可以有多個AuthServer,Wifidog會從第一個往后找,直到找到可用的認證服務(wù)器為止。  

這段代碼首先根據(jù)mac地址來判斷登錄用戶是否合法,如果合法則直接重定向至192.168.1.1:2060/wifidog/auth?token=XXX,如果是不合法,則重定向至歡迎頁面,引導(dǎo)用戶獲得認證。

Wifidog與AuthServer的交互

這里特別提一下,我發(fā)現(xiàn)在openwrt的download網(wǎng)站里,ar71xx有兩個版本的wifidog,所以請根據(jù)需要確定好opkg的源,一個是2009版的wifidog,一個是2013版本的wifidog,我用的源是http://downloads./snapshots/trunk/ar71xx.nand/packages/packages/,這個源的wifidog版本是wifidog_20130917-440445db60b0c3aff528ea703a828b0567293387_ar71xx,它們在login處有一個區(qū)別,后面會提。

先介紹一下wifidog與Auth服務(wù)器的交互協(xié)議:

1.首先是重定向,在首次登陸時,用戶訪問的url會被重定向到如下的地址:

login/?gw_address=%s&gw_port=%d&gw_id=%s&url=%s(2009版本的wifidog)

login/?gw_address=%s&gw_port=%d&gw_id=%s&mac=%s&url=%s(2013版本的wifidog)

這里有一個版本的問題,即2009的wifidog在重定向時不會在鏈接中帶上mac參數(shù),而2013版本的wifidog是會帶上的,所以這里需要根據(jù)自己的應(yīng)用特別注意。在用戶首次連接路由上網(wǎng)時,它訪問的url會被定向到login頁面,并帶上如上所述的參數(shù),我們可以利用這些參數(shù)做生成token或其它一些判斷等。而通常情況是在login中向用戶返回通過wifi認證的方法,如帶有用戶名和密碼的登錄頁面等。

2.用戶認證協(xié)議:

auth_server:/auth/auth.php?stage=%s&ip=%s&mac=%s&token=%s&incoming=%s&outgoing=%s

一般情況下,認證服務(wù)器auth_server會根據(jù)用戶輸入的信息生成一個token,然后將用戶重定向到wifidog的監(jiān)聽端口上,這個端口的默認地址為:192.168.1.1:2060/wifidog/auth?token=%s,wifidog得到這個token后,將其發(fā)送到auth_server認證服務(wù)器上進行認證。如果認證通過,auth_server返回“Auth: 1”,認證未通過則返回“Auth: 0”。具體參數(shù)如下。

0 - AUTH_DENIED - User firewall users are deleted and the user removed.6 - AUTH_VALIDATION_FAILED - User email validation timeout has occured and user/firewall is deleted1 - AUTH_ALLOWED - User was valid, add firewall rules if not present5 - AUTH_VALIDATION - Permit user access to email to get validation email under default rules-1 - AUTH_ERROR - An error occurred during the validation process

認證服務(wù)器通過獲取以上鏈接的參數(shù)可以判斷這個用戶是否合法等。這個鏈接是認證服務(wù)器用來判斷首次登陸的用戶是否合法和正在連接的用戶是否可以繼續(xù)訪問鏈接的方法。每隔一段時間,wifidog會向認證服務(wù)器發(fā)送信息,即通過如上所示的鏈接發(fā)送信息,通過這些參數(shù),可以看到某個客戶的上傳流量、下載流量、mac地址、ip地址、token和、ip和stage。stage可能是兩個參數(shù),分別是counters或login。第一次登陸驗證時,stage=login,其它時候stage=counters。

3.Ping協(xié)議

http://auth_sever/ping/?gw_id=%s&sys_uptime=%lu&sys_memfree=%u&sys_load=%.2f&wifidog_uptime=%lu

wifidog會向認證服務(wù)器發(fā)送一些信息,來報告wifidog現(xiàn)在的情況,這些信息是通過Http協(xié)議發(fā)送的,如上的鏈接所示,參數(shù)大概如字面意思,沒仔細研究過,而作為認證服務(wù)器,auth_server應(yīng)回應(yīng)一個“Pong”。

4.認證成功后的跳轉(zhuǎn)

portal/?gw_id=%s

在認證成功后,wifidog會將用戶重定向至該頁面。

5.若驗證失敗,則會根據(jù)失敗原因跳轉(zhuǎn)至如下頁面

gw_message.php?message=denied

gw_message.php?message=activate

gw_message.php?message=failed_validation

注意一下,按照我對wifidog.conf的配置,在執(zhí)行l(wèi)ogin時,相當(dāng)于重定向至鏈接http:///wifidog/login.php?gw_id=XX....等等,其它執(zhí)行的鏈接也是如此。

編寫自己的WifiDog認證服務(wù)器

這次我使用的是php來編寫auth_server服務(wù)器,因為這樣比較簡單。

1.首先是login.php

[php]view plain copy
  1. <?php  

  2. include'./tool/MySQLHelper.php';  

  3. if(!empty($_GET["mac"])){  

  4. $result = selectMacByToken($_GET["mac"]);  

  5. if(!empty($result)){  

  6. header("location: http://192.168.1.1:2060/wifidog/auth?token=".$result);  

  7. }  

  8. else{  

  9. header("location: http://xxxxx/WelcomePage.php?mac=".$_GET["mac"]);  

  10. }  

  11. }  

  12. else{  

  13. header("location: http://xxxxx/WelcomePage.php?mac=".$_GET["mac"]);  

  14. }  

  15. ?>  

2.ping.php

[php]view plain copy
  1. <?php  

  2. echo "Pong";  

  3. ?>  

這里沒有做額外的處理,只是簡單地向wifidog回應(yīng)一個Pong。

3.auth.php

[php]view plain copy
  1. <?php  

  2. // 后門  

  3. if($_GET["token"] == "123"){  

  4. echo "Auth: 1";  

  5. return;  

  6. }  


  7. if(!empty($_GET["token"]) && isset($_GET["token"])){  

  8. //獲取$result的過程//  

  9. isValidate($result);  

  10. //**后續(xù)處理**//  

  11. return;  

  12. }  

  13. elseif((!empty ($_GET["mac"])) && isset($_GET["mac"])){  

  14. //**獲取result*//  

  15. $result = isSubscribeByMac($_GET["mac"]);  

  16. isValidate($result);  

  17. return;  

  18. }  

  19. else

  20. {  

  21. echo "Auth: 0";  

  22. }  


  23. // 輸出是否合法.  

  24. functionisValidate($result){  

  25. if($result == 1){  

  26. echo "Auth: 1";  

  27. }  

  28. else{  

  29. echo "Auth: 0";  

  30. }  

  31. }  

  32. ?>  

這里根據(jù)一些參數(shù)來獲取$result,從而決定是否允許認證。

4.welcomePage.php以及Portal.html就不一一列舉了。

總結(jié)

暑假做了一個關(guān)于微信的wifi認證項目,在工作中,總結(jié)了這些經(jīng)驗,雖然不難,但也花了一點時間,主要難點在于wifidog協(xié)議的理解、路由器選型、openwrt操作系統(tǒng)安裝、wifidog的安裝和配置。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    精品人妻一区二区四区| 国产精品香蕉一级免费| 欧美一级特黄特色大色大片| 激情综合五月开心久久| 日本办公室三级在线观看| 91日韩在线观看你懂的| 国产真人无遮挡免费视频一区| 扒开腿狂躁女人爽出白浆av| 久久机热频这里只精品| 欧美日韩三区在线观看| 国产精品亚洲二区三区| 四十女人口红哪个色好看| 精品亚洲一区二区三区w竹菊| 最近日韩在线免费黄片| 婷婷激情五月天丁香社区| 午夜福利直播在线视频| 一区中文字幕人妻少妇| 东京热男人的天堂久久综合| 二区久久久国产av色| 日韩女优精品一区二区三区| 人妻熟女欲求不满一区二区| 高清免费在线不卡视频| 欧美激情一区=区三区| 久热99中文字幕视频在线| 日本av一区二区不卡| 五月天六月激情联盟网| 欧美日韩一级aa大片| 大香蕉再在线大香蕉再在线| 国产在线一区二区免费| 色综合视频一区二区观看| 欧美日韩无卡一区二区| 国产精品一区二区视频成人| 91亚洲国产成人久久精品麻豆| 五月婷婷六月丁香在线观看| 91免费精品国自产拍偷拍| 欧美国产日产在线观看| 人妻偷人精品一区二区三区不卡| 亚洲欧洲在线一区二区三区| 香蕉尹人视频在线精品| 激情视频在线视频在线视频| 激情丁香激情五月婷婷|