Wifidog網關協議V1

  1. 網關心跳(Ping協議)

Wifidog將ping協議作爲心跳機制向認證服務器發送當前狀態信息。這可以實現爲認證服務器每個節點的狀態生成中央日誌。
Wifidog客戶端在conf文件中進行設置,目的是通過http定期啓動thread(ping_thread.c)向認證服務器發送狀態信息。信息格式如下:
http://auth_sever/ping/?
gw_id=%s
sys_uptime=%lu
sys_memfree=%u
sys_load=%.2f
wifidog_uptime=%lu

通過系統調用wifidog客戶端收集的數據
Headers
HTTP/1.0\r\n"
"User-Agent: WiFiDog %s\r\n"
"Host: %s\r\n"
"\r\n",

一個典型的HTTP需求應該是:
GET /ping/?gw_id=001217DA42D2&sys_uptime=742725&sys_memfree=2604&sys_load=0.03&wifidog_uptime=3861 HTTP/1.0
User-Agent: WiFiDog 1.1.3_beta6
Host: auth.ilesansfil.org

  1. 認證服務器認證協議

這個頁面描述了當用戶已經被認證並允許訪問互聯網時,爲了認證用戶和進程,wifidog網關和認證服務器之間的信息傳送。
Wifidog客戶端將定期的啓動一個thread來報告每個用戶的連接狀況。目前它被用來報告每個用戶輸入/輸出計數器,以顯示用戶依然在現,並允許認證服務器將不再連接的用戶斷開。
以下是發給每個在線用戶的信息
auth_server:/auth/index.php?
stage=
ip=
mac=
token=
incoming=
outgoing=

注意:stage=計數器/登錄,取決於是否是新客戶端
即使輸入輸出變量會在所有信息中出現,但他們只對處於counter階段的信息有效。其它情況下輸入輸出經常設置爲0。
在做回覆時,認證服務器會以有效身份或新用戶信息,或者認證服務器錯誤提示形式進行回覆。
回覆格式如下:
Auth: 
新用戶狀態爲:
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 deleted
1 - AUTH_ALLOWED - User was valid, add firewall rules if not present
5 - AUTH_VALIDATION - Permit user access to email to get validation email under default rules
-1 - AUTH_ERROR - An error occurred during the validation process

注意:認識服務器錯誤一般不會改變防火牆或用戶狀態
標準的URL爲:
GET /auth/?stage=counters&ip=7.0.0.107&mac=00:40:05:5F:44:43&token=4f473ae3ddc5c1c2165f7a0973c57a98&incoming=6031353&outgoing=827770 HTTP/1.0
User-Agent: WiFiDog 1.1.3_beta6
Host: auth.ilesansfil.org

  1. 網關重定向瀏覽器,wifidog的http流程

客戶端瀏覽器在不同情況下會被重定向到其它頁面:
初始化請求:
基於捕捉,客戶端會被網關重定向到以下URL:
login/?gw_address=%s&gw_port=%d&gw_id=%s&url=%s
例如:https://auth.ilesansfil.org/login/?gw_id=0016B6DA9AE0&gw_address=7.0.0.1&gw_port=2060&url=www.baidu.com
初始化請求之後認證服務器重定向瀏覽器
客戶端將被重定向到網關。 http://"gw_address:gw_port/wifidog/auth?token=xxx
URL示例:http://7.0.0.1:2060/wifidog/auth?token=4f473ae3ddc5c1c2165f7a0973c57a98
網關帶着auth去認證服務器上認證token值是否正確
http://auth.ilesansfil.org/auth/?stage=login&ip=xxx&mac=xxx&token=4f473ae3ddc5c1c2165f7a0973c57a98&incoming=0&outgoing=0&gw_id=xxx
如果服務器回覆AUTH_DENIED:注意你通常在標準認證服務器上看不到這樣的提示。客戶端將不會被重定向回網關。
gw_message.php?message=denied
如果服務器回覆AUTH_VALIDATION:
gw_message.php?message=activate
如果服務器回覆AUTH_ALLOWED:這是門戶重定向
portal/?gw_id=%s
如果服務器回覆AUTH_VALIDATION_FAILED:注意你將不會在標準認證服務器看到此回覆。客戶端將不會重定向回網關。
gw_message.php?message=failed_validation
路由器收到AUTH_ALLOWED重定向瀏覽器到http://auth.ilesansfil.org/portal/?gw_id=xxx, auth server確定成功返回成功頁面,認證完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章