wifidog 接口详解
概述
wifidog:是搭建无线热点认证系统的解决方案之一,他比nocat更适合互联网营销思路。目前支持openwrt系统,他实现了路由器和认证服务器的数据交互,在路由器方是用C语言代码,通过wifidog程序和linux iptables防火墙实现接入用户的认证跳转和控制,在认证服务器方是通过php实现用户的认证流程和管理。
优点:有开源代码,可以很方便的搭建认证系统。
缺点:通过iptables方式实现,性能比较差,整体拉低了路由器的数据包处理速度,协议比较繁琐,对认证服务器的造成性能损耗比较大,在安全方面都是明文传输,有一定的安全隐患。
认证流程
注意:
热点服务器地址为:auth_server
热点服务器路径为: /
网关心跳协议
Wifidog将ping协议作为心跳机制向认证服务器发送当前状态信息。实现认证服务器和每个节点的状态双向健康监测的机制。
请求信息:
http://auth_sever/ping/?
gw_id=%s
sys_load=%lu
sys_memfree=%u
sys_load=%.2f
wifidog_uptime=%lu
回复格式:Pong
例子:
GET /ping/? gw_id=001217DA42D2&sys_uptime=742725&sys_memfree=2604&sys_load=0.03&wifidog_uptime=3861 HTTP/1.0
User-Agent:cnrouter wifidog
Host: auth.cnrouter.com
用户状态心跳协议
请求格式:
http://auth_server/auth/? (因文明发贴将:换为&)
stage=
ip=
mac=
token=
incoming=
outgoing=
注意:
ip,mac,token为用户的基本信息,incoming/outgoing为用户的连接计数信息。
stage=counter|login|logout,分别表示:已认证,新认证用户,超时需要删除的用户。
回复格式:
Auth: 状态码 (注意 中间冒号和状态码之间有个空格)
状态码:
0 - AUTH_DENIED - User firewall users are deleted and the user removed.
1 - AUTH_ALLOWED - User was valid, add firewall rules if not present
例子:
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:cnrouter wifidog
Host: auth.cnrouter.com
跳转协议
对于新连接用户,路由器将其产生的任意url请求通过302重定向到认证平台.
请求格式:
http&//auth_server/login/? (因文明发贴将:换为&)
gw_id=
gw_address=
gw_port=
mac=
url=
例子:
GET /login/?gw_id=808100949391&gw_address=192.168.81.1&gw_port=80&mac=aa:bb:cc:dd:cc:ee&url=http&//www.sina.com.cn/ HTTP/1.0
User-Agent:cnrouter wifidog
Host: auth.cnrouter.com
注册协议
平台确定成功注册用户,开通互联网权限,将用户请求重定向到路由器,完成注册。
请求格式:
http://gw_ip/wifidog/auth?
token=
例子:
GET wifidog/auth?token=12312412124
User-Agent:iphone
Host:路由器ip
注册请求成功,以307的方式跳转平台的 portal/?gw_id=
本文章由 http://www.wifidog.pro/2014/12/19/wifidog-%E6%8E%A5%E5%8F%A3%E8%AF%A6%E8%A7%A3.html整理编辑,转载请注明出处