分类 wifidog认证 下的文章

wifidog简介

WiFidog简介
WIFIdog是一种新的认证方式,这种认证方式的优势在于安全性高,不容易被破解验证。

  1. 客户端发出初始化请求,比如访问www.baidu.com
  2. 网关的防火墙规则将这个请求重定向到本地网关的端口上。这个端口是Wifidog监听的端口。
  3. Wfidog提供一个HTTP重定向回复,重定向到Web认证页面,重定向的Url的Querystring中包含了Gateway的ID,Gateway的FQDN以及其他的信息。
  4. 用户向认证服务器发出认证请求。
  5. 网关返回一个(可以是自定义的)splash(也称作“登录”)页面。
  6. 用户提供他的凭据信息,比如用户名和密码。
  7. 成功认证的话,客户端将会被重定向到网关的自己的web页面上,并且带有一个认证凭据(一个一次性的token)
  8. 用户就是用获取到的凭据访问网关。
  9. 网关去认证服务器询问token的有效性。
  10. 认证服务器确认token的有效性。
  11. 网关发送重定向给客户端,以从认证服务器上获取 成功提示页面,重定向到
    http://portal_server:port/portal_script 这个位置。
  12. 认证服务器通知客户请求成功,可以上网了。

本文章由 http://www.wifidog.pro/2015/03/03/wifidog%E7%AE%80%E4%BB%8B-3.html 整理编辑,转载请注明出处

如何查看wifidog运行状态

在wifidog运行时,路由器或网关的终端会打印出log,但如果没有这些终端我们如何查看wifidog当前的运行状态?

wifidog给我们提供了一个接口,/wifidog/status 的回调函数http_callback_status,当我们访问http://gw_ip:wifidog_port/wifidog/status 时,我们会看到一个页面,这个这面提供了wifidog当前的基本状态,包括wifidog版本,wifidog运行时间,网络是否通达,客户端个数、IP、mac、token、上下行速度,wifidog的mac白名单,认证服务器等,通过这些状态我们可以简单知道wifidog运行时是否正常,对于简单的运行错误可以直接看出问题所在。

本文章由 http://www.wifidog.pro/2015/03/03/wifidog%E7%8A%B6%E6%80%81.html 整理编辑,转载请注明出处

wifidog是什么?源码在哪里下载?

wifidog 是一种开源的用来做无线认证的协议,集成到路由器或者网关中,对于连接到路由器或者网关的设备,使其先登录云端认证服务器,然后通过认证才能上网。比如在星巴克上网,浏览器会先弹出一个广告页面,我们输入手机号,获取验证码,然后就可以上网了。

wifidog 官方网站给出了下载路径:
openwrt wifidog 及auth server:http://dev.wifidog.org/wiki/Download

wifidog 及auth server 源码下载及安装:http://dev.wifidog.org/wiki/doc

wifidog 编译编译教程 http://www.wifidog.pro/2015/03/20/Ubuntu%E4%B8%8B%E7%BC%96%E8%AF%91WifiDog%E7%A8%8B%E5%BA%8F.html

本文章由 http://www.wifidog.pro/2015/03/03/wifidog%E4%B8%8B%E8%BD%BD.html 整理编辑,转载请注明出处

wifidog auth server is not set

安装了wifidog 的linux系统,在启动wifidog之后,可能会爆错误:"wifidog auth server is not set", 在wifidog的源码conf.c中找到:

static void
config_notnull(const void *parm, const char *parmname)
{
        if (parm == NULL) {
                debug(LOG_ERR, "%s is not set", parmname);
                missing_parms = 1;
        }
}

这个函数在调用:

void
config_validate(void)
{
        config_notnull(config.gw_interface, "GatewayInterface");
        config_notnull(config.auth_servers, "AuthServer");

        if (missing_parms) {
                debug(LOG_ERR, "Configuration is not complete, exiting...");
                exit(-1);
        }
}

而config_validate是在gataway.c的main里被调用:

config_init();

parse_commandline(argc, argv);

/* Initialize the config */
config_read(config->configfile);
config_validate();

整个config 设置的流程就是,先把默认值设置给全局变量config,然后将wifidog 的命令行参数传给config,然后是读wifidog的配置文件设置config,最后检查config参数是否有效,只要检查gateway interface和AuthServer。

在config_init中gw_interface和auth_servers初始化为NULL,也就是没有值;在命令行里也没有支持gw_interface和auth_servers的命令参数,所以我们可以通过修改wifidog.conf 的配置来最简单的解决上述问题。

GatewayInterface eth0

AuthServer {
    Hostname 192.168.33.131
    SSLAvailable no
    Path /
}

另外我们也可以通过给wifidog 添加命令行参数来实现,这里就不详述了。

本文章由 http://www.wifidog.pro/2015/03/03/wifidog-auth-server-is-not-set.html 整理编辑,转载请注明出处