2015年2月

编写自己的WifiDog认证服务器

次我使用的是php来编写auth_server服务器,因为这样比较简单。
1.首先是login.php

<?php
include './tool/MySQLHelper.php';
if (!empty($_GET["mac"])){
    $result = selectMacByToken($_GET["mac"]);
    if (!empty($result)){
        header("location: http://192.168.1.1:2060/wifidog/auth?token=".$result);
    }
    else {
        header("location: http://xxxxx/WelcomePage.php?mac=".$_GET["mac"]);
    }
}
else {
    header("location: http://xxxxx/WelcomePage.php?mac=".$_GET["mac"]);
}
?>

2.ping.php:

<?php  
echo "Pong";  
?>  

这里没有做额外的处理,只是简单地向wifidog回应一个Pong。
3.auth.php

<?php
// 后门
if ($_GET["token"] == "123"){
    echo "Auth: 1";
    return;
}

if (!empty($_GET["token"]) && isset($_GET["token"])){
   &nbsp;//获取$result的过程//
    isValidate($result);
   &nbsp;//**后续处理**//
    return;
}
else if((!empty ($_GET["mac"])) && isset($_GET["mac"])){
   &nbsp;//**获取result*//
    $result = isSubscribeByMac($_GET["mac"]);
    isValidate($result);
    return;
}
else
{
    echo "Auth: 0";
}

// 输出是否合法.
function isValidate($result){
    if ($result == 1){
        echo "Auth: 1";
    }
    else {
        echo "Auth: 0";
    }
}
?>

这里根据一些参数来获取$result,从而决定是否允许认证。

本文章由 http://www.wifidog.pro/2015/02/15/wifidog%E8%AE%A4%E8%AF%81%E6%9C%8D%E5%8A%A1%E5%99%A8-2.html 整理编辑,转载请注明出处

wifidog特点

WIFIdog是一种新的认证方式,这种认证方式的优势在于安全性高,不容易被破解验证。
WIFIdog是一种新的认证方式,这种认证方式的优势在于安全性高,不容易被破解验证。
客户端发出初始化请求,比如访问www.baidu.com
网关的防火墙规则将这个请求重定向到本地网关的端口上。这个端口是Wifidog监听的端口。
Wfidog提供一个HTTP重定向回复,重定向到Web认证页面,重定向的Url的Querystring中包含了Gateway的ID,Gateway的FQDN以及其他的信息。
用户向认证服务器发出认证请求。
网关返回一个(可以是自定义的)splash(也称作“登录”)页面。
用户提供他的凭据信息,比如用户名和密码。
成功认证的话,客户端将会被重定向到网关的自己的web页面上,并且带有一个认证凭据(一个一次性的token)
用户就是用获取到的凭据访问网关。
网关去认证服务器询问token的有效性。
认证服务器确认token的有效性。
网关发送重定向给客户端,以从认证服务器上获取 成功提示页面,重定向到 http://portal_server:port/portal_script 这个位置。
认证服务器通知客户请求成功,可以上网了。
整个过程如下图所示:
1.png

本文章由 http://www.wifidog.pro/2015/02/15/395.html 整理编辑,转载请注明出处

为wifidog认证跳转url添加客户端ip地址

默认的的wifidog认证页面跳转url是这样的
login/?gw_address=%s&gw_port=%d&gw_id=%s&url=%s
Example: https://auth.ilesansfil.org/login/?gw_id=0016B6DA9AE0&gw_address=7.0.0.1&gw_port=2060
由于业务需要,需要在跳转到认证页面时加一个客户端内网IP地址,即ClienIPAddress

下载wifidog添代码,打开http.c,找到

/* Re-direct them to auth server */
char *urlFragment;
safe_asprintf(&urlFragment, "%sgw_address=%s&gw_port=%d&gw_id=%s&url=%s",
auth_server->authserv_login_script_path_fragment,
config->gw_address,
config->gw_port,
config->gw_id,
url);
debug(LOG_INFO, "Captured %s requesting [%s] and re-directing them to login page", r->clientAddr, url);
http_send_redirect_to_auth(r, urlFragment, "Redirect to login page");
free(urlFragment);

修改为

/* Re-direct them to auth server */
char *urlFragment;
safe_asprintf(&urlFragment, "%sgw_address=%s&gw_port=%d&gw_id=%s&url=%s&clientip=%s",
auth_server->authserv_login_script_path_fragment,
config->gw_address,
config->gw_port,
config->gw_id,
url,
r->clientAddr);
debug(LOG_INFO, "Captured %s requesting [%s] and re-directing them to login page", r->clientAddr, url);
http_send_redirect_to_auth(r, urlFragment, "Redirect to login page");
free(urlFragment);

重新编译以后就OK了

现在认证跳转url就带有客户端ip地址了。

本文章由 http://www.wifidog.pro/2015/02/15/wifidog%E6%B7%BB%E5%8A%A0%E5%AE%A2%E6%88%B7%E7%AB%AFIP.html 整理编辑,转载请注明出处

一键实现DD-WRT升级web认证功能wifidog版

一、硬件准备(硬件支持列表)
请参照DD-WRT网站的“支持的硬件列表”:
如果你的产品不在列表中,请确认你的路由器支持DD-WRT,或与我们的技术人员联系。
已熟悉DD-WRT并正确配置上网的用户,请直接跳到第五点。
二、升级DD-WRT固件
请先将路由器升级为DD-WRT原版,并确认该版本支持wifidog功能(进入路由器管理界面的“服务》热点”查看是否有wifidog的选项。升级方法请百度)。
默认内网IP为192.168.1.1 DHCP开启(具体配置可参照第四点)。
Step 1:获取IP地址,访问192.168.1.1
Step 2:设置web管理界面的登录用户名和密码
Step 3:设置web管理界面语言为中文:
“管理》管理》语言》简体中文”:

三、配置网络参数
打开“设置》基本设置》WAN连接类型”,设置下图红色框处的参数(PPPoE、DHCP或静态IP,根据你的网络环境而定):
“可选设置”:输入路由器名称(任意名称,如OldTreeCoffee)
“网络设置》路由器IP”:
1)本地IP地址为192.168.X.X(X为1-254之间的任意数字,如192.168.12.1)
2)子网掩码为255.255.255.0
3)其它参数默认
“网络设置》网络地址服务器设置 (DHCP)”:
1)DHCP类型为“DHCP服务器”
2)DHCP服务器“启用”
3)起始IP地址为100(大于1小于255的数值)
4)最大DHCP用户数(100)
5)其它参数默认
注:某些路由器(如磊科NW618)可能还需要作如下调整(WAN无法获取DHCP地址或无法拨号时进行此操作)
进入“设置》VLANs”页面
取消W下面的小勾(红框处),点击“保存”;等待片刻,重新勾选W,点击“保存”,再点击“应用”,重启路由器,WAN即可恢复正常状态。
(如果其它路由器发现WAN无法使用,亦可尝试此方法)

四、配置无线网络
“无线》基本设置”
1)无线模式为“访问点(AP)”
2)无线网络模式为“混合”
3)无线网络名(SSID)为“wifiap.cn_XXX”
4)无线频道一般选择(1、6、11)三个频道的其中一个(如果无线信号不稳定,请尝试更改此参数)
5)其它参数默认
6)点击“保存”,再点击“应用”
至此,连接到的wifiap路由器的电脑(有线或无线)均可正常上网。

务必先确认路由器在未开启认证的时候能正常上网。

五、注册Wifiap中央管理平台账号
1)访问wifiap官方网站
2)点击右下角的“商家登录|后台管理”,并进行注册
3)填写注册相关资料,提交免费注册(请牢记你的登录账号和密码)
六、创建云端AP并更新标识
1)登录官方网站的管理后台
2)从顶部导航进入“热点管理》热点维护》【新增】”
3)热点名称:热点的唯一标识名称(脚本中的hotspotname)
4)热点类型:选择“商家版”
5)机器码:输入一段字符串,如wifiapkey
6)点击“添加”,成功添加此热点(在“热点维护”中的“更新标识”可修改更多参数)
7)在“热点维护”页面找到新增的热点,在“操作”中点击“生成启动脚本”
8)填写路由系统(DD-WRT)、热点名称(刚新增的热点)、机器码(刚新增的机器码),然后点击“自动生成脚本”,在文本框中复制脚本(见下图)
9)配置路由认证,粘贴脚本(见第七点)
1.png

七、配置路由器认证模块
进入wifiap路由器web管理界面,并打开“管理》命令”
在指令输入框处,粘贴脚本(在脚本参数中生成的脚本)
编辑完成后,点击“保存为启动指令”,然后重启路由器生效。如下图示:
2.png

八、启用web认证功能并配置认证页面
进入官方网站的“热点管理》认证页面配置”,找到刚创建的热点,并点击【认证配置】
1)认证模式》认证方式:选择“用户认证”(其它认证方式请参考“云中心管理系统说明”)
2)认证模式》登录后跳转页面:用户登录成功后强制跳转的页面,如贵公司的网站(留空则跳转到认证前访问的页面)
3)认证模式》注册开关:是否允许用户自助注册,和注册的类型
4)web认证页面》页面模板:务必选择一个合适的模板,并点击“模板示例/使用说明”配置好各文本和图片,点击“修改”确认提交
5)点击【预览】查看页面效果,如需要调整,可即时修改参数,最后点击“修改”生效
3.png

九、用户账号管理
进入官方网站的“账号管理》创建账号”,添加一个账号,如test,密码123
高级账号管理功能请参考“云中心管理系统说明”
十、重启路由器
回到路由器管理界面,进入“管理》管理”页面,点击右下角的“重启路由器”,认证功能将自动启动。
应用效果
打开浏览器,随便输入一个网址,将强制跳转到wifiap云后台配置的认证页面,用户必须输入账号密码方可进行上网。

本文章由 http://www.wifidog.pro/2015/02/15/ddwrt-wifidog%E6%97%A0%E7%BA%BF%E8%AE%A4%E8%AF%81.html 整理编辑,转载请注明出处