标签 wifidog 下的文章

wifidog认证之自带HTTP 服务器lighttpd分析

wifidog的源码里除了会编译出wifidog 的主程序,还会有一个库libhttpd.so,这个库是wifidog自带的http server,就是在wifidog 的http 监听线程中会用到这个库,而且在wifidog的几个回调函数中也会用到:

 if ((webserver = httpdCreate(config->gw_address, config->gw_port)) == NULL) {
                debug(LOG_ERR, "Could not create web server: %s", strerror(errno));
                exit(1);
        }

        debug(LOG_DEBUG, "Assigning callbacks to web server");
        httpdAddCContent(webserver, "/", "wifidog", 0, NULL, http_callback_wifidog);
        httpdAddCContent(webserver, "/wifidog", "", 0, NULL, http_callback_wifidog);
        httpdAddCContent(webserver, "/wifidog", "about", 0, NULL, http_callback_about);
        httpdAddCContent(webserver, "/wifidog", "status", 0, NULL, http_callback_status);
        httpdAddCContent(webserver, "/wifidog", "auth", 0, NULL, http_callback_auth);
        /*get free client by this way*/
        httpdAddCContent(webserver, "/wifidog", "getfree", 0, NULL, http_get_free);

        httpdAddC404Content(webserver, http_callback_404);

以及:

r = httpdGetConnection(webserver, NULL);
接受客户端http 请求

result = pthread_create(&tid, NULL, (void *)thread_httpd, (void *)params);
把创建的httpd 结构传给http 线程

这里用的是 1.3 版本的库。

本文章由 http://www.wifidog.pro/2015/04/09/wifidog-lighttpd.html 整理编辑,转载请注明出处

wifidog认证优缺点wifidog原理

portal认证方式有多重,我们选择了十分普遍额开源项目wifidog,支持openwrt,用户群体大,资料较完善,中文资料多。
主要优点:

  1. 开源(https://github.com/wifidog github,上提供了源码及基于php的认证网关源码)
  2. 国内使用wifidog的情况比较普遍,二次开发更容易。
  3. 代码可移植性高,各种平台几乎都不受限制

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

目前也存在一定的缺点

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

下面来看下wifidog工作机制:
工作机制
/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

本文章由 http://www.wifidog.pro/2015/04/09/wifidog%E8%AE%A4%E8%AF%81%E4%BC%98%E7%BC%BA%E7%82%B9.html 整理编辑,转载请注明出处