2015年2月

搭建自己的wifidog认证服务器

本人刚刚开始研究这个,看到有很多人在求自建认证服务器,心得如下,实现 wifidog 4 个接口: portal,login,auth,ping (还有一个get_gw_message.php 的接口,可不用实现)
简单来说,就是路由器会以GET方式请求 你的服务器(加入了白名单) 以下四个地址:
http://认证服务器/路径/login
http://认证服务器/路径/auth
http://认证服务器/路径/ping
http://认证服务器/路径/portal

以下以php为例子,实现
( 我是写了一个rewrite , 把所有请求转发到了 index.php?q=,当然,你也可以每个请求建立一个文件夹下一个 index.php)

具体代码如下:

$q = $_GET['q'] ;
$q = explode('/',$q) ;
$q = $q[0] ;
$a = '' ;
if(!empty($q[1])) $a = $q[1] ;


if($q == 'portal'){
        print 'portal' ;
}

if($q == 'login'){
        print 'login' ;
        $gw_port = $_GET['gw_port']  ;
        $gw_address = $_GET['gw_address']  ;
        //token 自己生成一个
        print '<br /><a href="http://'.$gw_address.':'.$gw_port.'/wifidog/auth?token=789">login</a>' ;
}

if($q == 'auth'){
        $token =  $_GET['token']  ;
        if($token == '789') print "Auth: 1"; 
        else print "Auth: 0"; 
}



if($q == 'ping') print 'Pong' ;

如果你想看一下,路由器到底请求了你些什么,可以看日志或者自己加个写入

$time = date('YmdHis') ;
file_put_contents(dirname(__FILE__) . '/get_'.$q.'_'.$time.'.txt',var_export($_GET,true)) ;

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

原版wifidog 防火墙放行 微信 规则

由于原版wifidog没有白名单设置,想要将微信放行的话,只能通过防火墙放行IP的方式。

wifidog防火墙规则:

FirewallRuleSet global {
FirewallRule allow tcp port 443
FirewallRule allow udp port 53
FirewallRule allow tcp port 80 to 101.227.131.0/24
FirewallRule allow tcp port 80 to 101.226.76.0/24

    FirewallRule allow tcp port 80 to xxx.xxx.xxx.xxx

}

由于微信在全国各地放置了许多加速服务器,每个地方ping到的ip可能不太一样,大家可以ping 下weixin.qq.com,把自己ping到的微信服务器ip添加到上面的xxx.xxx.xxx.xxx处即可。

缺点是,DNS对应的IP可能会有变化。

本文章由 http://www.wifidog.pro/2015/02/10/wifidog%E6%94%BE%E8%A1%8C%E5%BE%AE%E4%BF%A1.html整理编辑,转载请注明出处

如何刷OPENWRT系统以支持wifidog

一.下载固件:
在OpenWr官方网站(https://openwrt.org/) 页面,找到自己路由器对应型号的固件.
二.刷写固件:
用一根网线将路由器的Lan口和你电脑相连,电脑上设置为DHCP模式进入路由器管理界面,,然后进入固件更新,选择下载的文件,然后更新。等待一段时间,然后重启路由。
三. 安装管理界面和WIFIDOG功能.
刷好的openwrt标准版 没有web管理界面(LuCI),需要安装才可以管理
第1步、修改Root密码
telnet 192.168.1.1
输入passwd root 然后修改Root密码
出现Password for root changed by root提示,表示更改root用户密码成功,
OpenWRT会把路由器的Telnet服务关闭,以后只能通过ssh协议和root用户密码登录路由器的Linux终端。
第2步、修改network配置连上互联网
1.用WinSCP登陆路由器;
2.进入路由器的/etc/config目录,双击打开network文件;
3.修改“config interface ,wan,”项目为如下:

config interface "wan"
 option ifname "eth0.2"
 option _orig_ifname "eth0"
 option _orig_bridge "false"
 option proto "static"
 option ipaddr "192.168.100.86"
 option netmask "255.255.255.0"
 option gateway "192.168.100.1"
 option dns "202.102.224.68"

4.保存,再次打开network文件,确认修改成功;
5.ssh登录路由器的Linux终端;
6.输入

/etc/init.d/network restart

等待一会,提示几行“,radio0, is disabled”等状态信息就表示重启完毕;
7.输入“ping 8.8.8.8”,如果Ping通,表示已经成功接入互联网,按Ctrl+C可停止Ping操作;
第3步、安装Web管理界面LuCY;

opkg update
opkg install luci    //安装管理界面



opkg install luci-i18n-chinese  //安装中文语言包
/etc/init.d/uhttpd enable    //启用
/etc/init.d/uhttpd start        //启动

第4步、安装WIFDOG功能

opkg install wifidog //安装wifidog

通过以上步骤操作,您的路由器已经成功刷成OPENWRT系统,并且有WIFIDOG功能了.

本文章由 http://www.wifidog.pro/2015/02/10/openwrt%E5%AE%9E%E7%8E%B0wifidog.html 整理编辑,转载请注明出处

openwrt实现 WiFiDog

Please read WiFiDog Captive Portal for a definition of WiFiDog. It is FOSS software used to create wireless hot-spots. It is a next-generation alternative to NoCat.

Preparation

Prerequisites

Required Packages

iptables-mod-extra
iptables-mod-ipopt
kmod-ipt-nat
iptables-mod-nat-extra
libpthread

Installation

opkg update
opkg install wifidog
vi /etc/wifidog.conf
/etc/init.d/wifidog enable
/etc/init.d/wifidog start
netstat -a

You can also run wifidog in foreground/debug mode:

wifidog -f -d 7
  -f means to run in foreground (do not become a background daemon)
  -d 7 increases debug output level to the maximum

Configuration

Start on boot

To enable/disable start on boot:
/etc/init.d/wifidog enable this simply creates a symlink: /etc/rc.d/S?0??? → /etc/init.d/???
/etc/init.d/wifidog disable this removes the symlink again

Administration

Follow instructions on http://dev.wifidog.org/wiki/doc/install/auth-server

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