OpenWRT+wifidog portal认证路由器 青浦之家wifi

2014年 15月 10日 03:25

项目背景

portal认证形式的公共wifi已经很常见了
例如星巴克,银行,i-shanghai。
在朋友的推荐下,打算在青浦地区架设与青浦之家合作的认证路由器。
具体功能为:
1. 添加“青浦百事通(qingpubaishitong)”微信号或商家微信号获取上网密码。
2. 使用青浦之家账户直接登陆。
3. 设定认证密码直接登陆。
4. 青浦之家任意访问。
5. 联网情况的统计。
6. 上网时段时长控制。

wifidog

portal认证方式有多重,我们选择了十分普遍额开源项目wifidog,支持openwrt,用户群体大,资料较完善,中文资料多。
主要优点:
1. 开源(https://github.com/wifidog github,上提供了源码及基于php的认证网关源码)
2. 国内使用wifidog的情况比较普遍,二次开发更容易。

(总结:低成本,易上手。)

目前也存在一定的缺点
1. 通过实际抓包发现,心跳包不断的检查用户在线情况,网关服务器性能开销较大。
2. 基于iptables,协议繁琐。
3. 隐私问题,url直接传递含隐私的信息。

工作机制

/ping 心跳接口

"GET /ping/?gw_id=网关id&sys_uptime=1183&sys_memfree=105884&sys_load=0.14&wifidog_uptime=1169 HTTP/1.0"

/login 新用户认证跳转页面

GET /login/?gw_address=111&gw_port=111&gw_id=111&mac=88:72:0d:f2:88:29&url=url HTTP/1.1

/auth 用户检测

/auth/?stage=counters&ip=192.168.10.81&mac=88:72:0d:f2:a8:29&token=85ea71f2484b2c52fee&incoming=5638570&outgoing=722214&gw_id=111 HTTP/1.0

Screenshot_2014-09-15-13-16-35.png
Screenshot_2014-09-15-13-16-48.png
Screenshot_2014-09-16-14-58-54.png