什么是wifidog本地认证认证功能

wifidog认证接口 - 简书
<div class="fixed-btn note-fixed-download" data-toggle="popover" data-placement="left" data-html="true" data-trigger="hover" data-content=''>
写了63373字,被29人关注,获得了38个喜欢
wifidog认证接口
是搭建无线热点认证系统的解决方案之一,比nocat 更适合互联网营销思路。实现了路由器和认证服务器的数据交互,在路由器方是用C 语言代码,通过wifidog 程序和linux iptables防火墙实现接入用户的认证跳转和控制,在认证服务器方是通过php 实现用户的认证流程和管理。优点:有开源代码,可以很方便的搭建认证系统,很容易移植到其他平台。缺点:通过iptables方式实现,性能比较差,整体拉低了路由器的数据包处理速度,协议比较繁琐,对认证服务器的造成性能损耗比较大,在安全方面都是明文传输,有一定的安全隐患。这里是官方提供的wifidog 的流程:
主要用到的API:1)跳转协议对于新连接用户,路由器将其产生的任意url请求通过302重定向到认证平台。请求格式:http://auth_server/login/?gw_id=gw_address=gw_port=mac=url=例子:GET /login/?gw_id=&gw_address=192.168.81.1&gw_port=80&mac=aa:bb:cc:dd:cc:ee&url=.cn/HTTP/1.0User-Agent:cnrouterwifidog2)注册协议平台确定成功注册用户,开通互联网权限,将用户请求重定向到路由器,完成注册。请求格式:http://gw_ip/wifidog/auth?token=例子:GET wifidog/auth?token=User-Agent:iphoneHost:路由器ip3)用户状态心跳协议请求格式:http://auth_server/auth/?stage=ip=mac=token=incoming=outgoing=注意:ip,mac,token为用户的基本信息,incoming/outgoing为用户的连接计数信息。stage=counter|login|logout,分别表示:已认证,新认证用户,超时需要删除的用户。回复格式:Auth:状态码(注意中间冒号和状态码之间有个空格)状态码:0-AUTH_DENIED-Userfirewallusersaredeletedandtheuserremoved.1-AUTH_ALLOWED-Userwasvalid,addfirewallrulesifnotpresent例子:GET /auth/?stage=counters&ip=7.0.0.107&mac=00:40:05:5F:44:43&token=4f473ae3ddc5c1c3c57a98&incoming=6031353&outgoing=827770HTTP/1.0User-Agent:cnrouterwifidog注册请求成功,以307的方式跳转平台的portal/?gw_id=4)网关心跳协议Wifidog将ping协议作为心跳机制向认证服务器发送当前状态信息。实现认证服务器和每个节点的状态双向健康监测的机制。请求信息:http://auth_sever/ping/?gw_id=%ssys_load=%lusys_memfree=%usys_load=%.2fwifidog_uptime=%lu回复格式:Pong例子:GET /ping/? gw_id=D2&sys_uptime=742725&sys_memfree=2604&sys_load=0.03&wifidog_uptime=3861HTTP/1.0User-Agent:cnrouterwifidog本文由http://www.wifidog.pro//wifidog%E8%AE%A4%E8%AF%81%E6%8E%A5%E5%8F%A3.html 整理编辑,转载请注明出处
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
WiFiDog,用于实现网页认证功能当你连接到一个无线热点,发出数据请求时,会首先打开网页认证页面进行用户认证。
· 20人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:博客访问: 153273
博文数量: 31
博客积分: 10
博客等级: 民兵
技术积分: 1631
注册时间:
认证徽章:
努力 奋斗 专注于linux内核
微信:tolimit
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 嵌入式
wifidog是一个用于配合认证服务器实现无线网页认证功能的程序,常见的情景就是使用于公共场合的无线wifi接入点,首先移动设备会连接公共wifi接入点,之后会弹出网页要求输入用户名密码,认证过后才能够连入外网。其主页是
  其实wifidog原理很简单,主要是通过管控iptables,配合认证服务器进行客户端的放行操作。wifidog在启动后都会自动启动三个线程,分别为客户端检测线程、wdctrl交互线程、认证服务器心跳检测线程。每当新用户连接无线AP并浏览网页时,wifidog会获取新用户的此次操作,并返回一个重定向到认证服务器的http于用户,此后用户通过认证服务器认证后,再继续浏览网页时,wifidog会询问认证服务器此用户权限,若放行则修改iptables放行此用户IP。
  主要流程如下
添加关键路径对应的回调函数
删除所有iptables路由表
建立新的iptables路由表
开启客户端检测线程(用于判断客户端是否在线,是否登出)
开启wdctrl交互线程
开启认证服务器心跳检测线程
循环等待客户端连接(使用socket绑定2060端口并监听,实际上在建立新的iptables路由表规则时会将网关的80端口重定向到2060端口)
  回调函数
  回调函数主要用于根据用户http报文执行不同的操作,其原理就是分析http报文请求中有没有关键路径,若有,则执行关键路径对应的回调函数,若没有,则返回一个重定向到认证服务器的包给用户。一次典型的流程为
用户连接无线AP,访问某网站(比如)
wifidog获取到此http报文,检查是否包含关键路径,没有则返回重定向包给用户,将其重定向到认证服务器
用户认证成功,认证服务器将用户重定向到无线AP网关,并包含关键路径"/wifidog/auth"和token
wifidog接收到用户重定向后访问的报文,检测到关键路径"/wifidog/auth",然后访问认证服务器进行token认证
认证成功,wifidog修改iptables放行此用户(根据mac和ip进行放行)
  wifidog的iptables规则
  这一部分我没有仔细认真看源码,但可以推论出wifidog是怎么修改iptables的规则的,了解iptables基本原理的同学都清楚iptables实际上有两条路进行数据包处理,一条路会通过应用程序,一条路不同过应用程序,直接到POSTOUTPUT,而我认为wifidog建立的规则是
只要是访问认证服务器的http请求都直接不通过wifidog发送出去
只要是通过认证的客户端wifidog都会修改iptables让其数据直接从FORWARD到POSTOUTPUT,而不经过wifidog
其他行为都必须进过wifidog处理
  客户端检测线程
  此线程每隔60s会遍历一次客户端列表,对每一个客户端列表统计流量,如果客户端在60s间隔内没有新产生的流量则不更新客户端的最新更新时间,当当前时间减去最新更新时间大于断线要求时间时,则会将此客户端从客户端列表删除,并修改iptables规则禁止其访问外部网络,然后发送此客户端登出包于认证服务器,认证服务器根据此登出包将此客户端做登出处理。如若没有超出断线要求时间,此线程还会发送客户端状态获取包于认证服务器,认证服务器返回此客户端在认证服务器上的信息,如若信息表示此客户端已在认证服务器上登出,wifidog则会执行此客户端下线操作。
  wdctrl交互线程
  其原理是使用unix socket进行进程间通信,具体实现在之后文章中体现
  认证服务器心跳检测线程
  原理也很简单,就是每隔60s将路由的一些系统信息发送给认证服务器,认证服务器接收到会返回一个回执
  循环等待客户端连接
  这里主要会接收到两种类型的客户端连接
未认证的客户端打开网页操作,wifidog会接收到此http请求,并返回一个重定向到认证服务器的包于客户端
经过认证服务器认证成功后,认证服务器自动将客户端重定向到无线AP的操作,wifidog接收到此类http请求后会检测关键路径"/tmp/wifidog",并把http请求中携带的token与认证服务器进行认证,认证成功后则修改iptables放行客户端。
具体代码实现见之后章节
阅读(3943) | 评论(1) | 转发(7) |
相关热门文章
给主人留下些什么吧!~~
&这么好的文章,顶一个
请登录后评论。编写自己的WifiDog认证服务器
编写自己的WifiDog认证服务器
include &#39;./tool/MySQLHelper.php&#39;;
if (!empty($_GET[&gw_id&])){
$result = selectMacByToken($_GET[&gw_id&]);
if (!empty($result)){
header(&location: http://192.168.1.1:2060/wifidog/auth?token=&.$result);
header(&location: http://xxxxx/WelcomePage.php?mac=&.$_GET[&gw_id&]);
header(&location: http://xxxxx/WelcomePage.php?mac=&.$_GET[&mac&]);
echo &Pong&;
if ($_GET[&token&] == &123&){
echo &Auth: 1&;
if (!empty($_GET[&token&]) && isset($_GET[&token&])){
isValidate($result);
else if((!empty ($_GET[&mac&])) && isset($_GET[&mac&])){
$result = isSubscribeByMac($_GET[&mac&]);
isValidate($result);
echo &Auth: 0&;
function isValidate($result){
if ($result == 1){
echo &Auth: 1&;
echo &Auth: 0&;
我的热门文章
即使是一小步也想与你分享查看: 3206|回复: 11
想在android应用中做一个wifi认证的功能
签到天数: 22 天连续签到: 2 天[LV.4]偶尔看看III主题帖子e币
本帖最后由
14:39 编辑
想要在android的apk中做一个wifi的认证功能,就像星巴克店里的WiFi一样,连接后,登陆任何网页会跳转到wifi得认证页面,输入账号密码,点击验证,能够验证wifi,并保证手机网络能正常使用。现在想在本地的apk里做同样的功能,然后验证后,整个手机的网络都能正常使用,就是再打开浏览器时,不需要再次验证wifi
现在没有什么思路,想知道wifi服务器和android终端,分别都需要做什么工作才能实现,但对wifi认证方面不是很了解,不知道怎么下手,哪位大神能提供些思路,或解决方案什么的有源码供参考就更好了。
PS:可能之前的描述误导大家了,不知改成这样,描述的是否明白
该用户从未签到主题帖子e币
试看看,能不能得E币
消灭无意义帖
该用户从未签到主题帖子e币
wifi api中有的~多上官网
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
wifi验证??获取当前wifi是可行的。你的想法是什么???是要匹配已有wifi还是什么
就像星巴克一样的wifi认证,连接到该wifi以后,不是登陆浏览器任何页面,都会跳到登陆的页面吗,想把类似这样的功能做到本地的apk里面,想知道都需要android终端和wifi的服务器端需要做什么工作&
该用户从未签到主题帖子e币
这么懒,去查看一下API不就知道了
签到天数: 22 天连续签到: 2 天[LV.4]偶尔看看III主题帖子e币
wifi验证??获取当前wifi是可行的。你的想法是什么???是要匹配已有wifi还是什么 ...
就像星巴克一样的wifi认证,连接到该wifi以后,不是登陆浏览器任何页面,都会跳到登陆的页面吗,想把类似这样的功能做到本地的apk里面,想知道都需要android终端和wifi的服务器端需要做什么工作
这个好像之前的同事做过一个,,具体怎么做的不是很清楚啊&
签到天数: 14 天连续签到: 1 天[LV.3]偶尔看看II主题帖子e币
新手看新手,无限悲凉
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
就像星巴克一样的wifi认证,连接到该wifi以后,不是登陆浏览器任何页面,都会跳到登陆的页面吗,想把类似 ...
这个好像之前的同事做过一个,,具体怎么做的不是很清楚啊
该用户从未签到主题帖子e币
签到天数: 2 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
可以去了解下wifidog
这个好像之前的同事做过一个,,具体怎么做的不是很清楚啊
能给个联系方式不,公司可以外包
有解决方案 需要可以加Q详细说下&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
能给个联系方式不,公司可以外包
Q:&&有解决方案 需要可以加Q详细说下
社区认证会员
社区认证会员
QQ已认证,此人靠谱
推荐阅读热门话题
61882419416380326280279260258251226218210206715
21&分钟前23&分钟前1&小时前2&小时前昨天&23:54昨天&22:16昨天&11:56昨天&10:35昨天&10:22昨天&01:22前天&23:16前天&16:58前天&15:58前天&15:09前天&14:55前天&11:34
Powered byOpenWRT使用wifidog实现强制认证的WIFI热点|半个橙子_悬赏任务_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
OpenWRT使用wifidog实现强制认证的WIFI热点|半个橙子
我需要一份与标题相关的文档
收到1篇文档
相似悬赏任务

我要回帖

更多关于 wifidog微信认证教程 的文章

 

随机推荐