Wifidog協議V1

ap0581w9c發表於2014-12-15
Wifidog閘道器協議V1
閘道器心跳(Ping協議)
Wifidog將ping協議作為心跳機制向認證伺服器傳送當前狀態資訊。這可以實現為認證伺服器每個節點的狀態生成中央日誌。
Wifidog客戶端在conf檔案中進行設定,目的是通過http定期啟動thread(ping_thread.c)向認證伺服器傳送狀態資訊。資訊格式如下:

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

通過系統呼叫wifidog客戶端收集的資料

Headers
HTTP/1.0

“User-Agent: WiFiDog %s
” 

“Host: %s
” 


“,

一個典型的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

認證伺服器認證協議
這個頁面描述了當使用者已經被認證並允許訪問網際網路時,為了認證使用者和程式,wifidog閘道器和認證伺服器之間的資訊傳送。
Wifidog客戶端將定期的啟動一個thread來報告每個使用者的連線狀況。目前它被用來報告每個使用者輸入/輸出計數器,以顯示使用者依然在現,並允許認證伺服器將不再連線的使用者斷開。
以下是發給每個線上使用者的資訊

auth_server:/auth/index.php?
stage=
ip=
mac=
token=
incoming=
outgoing=

注意:stage=計數器/登入,取決於是否是新客戶端
即使輸入輸出變數會在所有資訊中出現,但他們只對處於*counter*階段的資訊有效。其它情況下輸入輸出經常設定為0。
在做回覆時,認證伺服器會以有效身份或新使用者資訊,或者認證伺服器錯誤提示形式進行回覆。
回覆格式如下:

Auth: <number from user status list>

新使用者狀態為:

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

閘道器重定向瀏覽器
客戶端瀏覽器在不同情況下會被重定向到其它頁面:
初始化請求:
基於捕捉,客戶端會被閘道器重定向到以下URL:
l   login/?gw_address=%s&gw_port=%d&gw_id=%s&url=%s
初始化請求之後
當請求被處理並且客戶端已經被重定向到閘道器時
如果伺服器回覆AUTH_DENIED:注意你通常在標準認證伺服器上看不到這樣的提示。客戶端將不會被重定向回閘道器。
l  gw_message.php?message=denied
如果伺服器回覆AUTH_VALIDATION:
l  gw_message.php?message=activate
如果伺服器回覆AUTH_ALLOWED:這是門戶重定向
l  portal/?gw_id=%s
如果伺服器回覆AUTH_VALIDATION_FAILED:注意你將不會在標準認證伺服器看到此回覆。客戶端將不會重定向回閘道器。
l  gw_message.php?message=failed_validation
 
認證伺服器重定向瀏覽器
基於成功登入,客戶端將被重定向到閘道器。 http://” . $gw_address . “:” . $gw_port . “/wifidog/auth?token=” . $token