分类 wifidog原理 下的文章

原版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 整理编辑,转载请注明出处

wifidog标准流程描述

一 认证流程描述
i. Wifidog 运行之后建立一系列的防火墙规则,主要规则起到如下作用:
    1.阻断所有内网到外网的访问。
    2.开通内网到外网的 dns 访问。
    3.开通内网到认证服务器以及域名白名单的访问。
    4.对内网到外网 80 端口的访问转向到 wifidog 自己的 http 服务(2060 端口)。
ii. 手机、pc 连接上来后,app 或者系统(安卓、ios 会自己连接到各自的服务器上来验证网络的连通性)会发起对外网的访问请求,dns 请求会被放过,然后对应的 80 端口的访问会被指向 2060 的 http 服务,其他的请求都会被拦截。

iii. Wifidog 的 http 接到 web 请求后,基本上都会被指向 404 页面,404 页面会给客户端一个重定向返回(302),要求客户端重定向访问认证服务器的 login 页面,附加参数 gw_id、gw_address、gw_port、url。 iv. 手机、pc 客户端加载、显示认证服务器的 login 页面,用户根据页面内容做相关的认证操作(qq 登录、微博登录、用户名密码登录、手机短信登录等多种登录方式) ,原则只有一个认证不成功就仍然让用户停留在认证服务器继续认证操作,认证成功给客户端一个 302 重定向返回,根据 login 接口提交上来的参数 gw_address、gw_port 跳转套 wifidog web 服务的/wifidog/auth 页面上,附带 token 和 url 参数。

v. Wifidog 的 web 服务收到手机、pc 客户端的/wifidog/auth 请求后,会主动对认证服务器的 auth 接口发起一个验证请求, 附带参数 ip、 mac、 token、 stage=loginvi. 认证服务器的 auth 接口收到 wifidog 的请求, 要根据内部逻辑返回是否允许通过的应答 :     
Auth: 0 拒绝
 Auth: 1 允许   

vii. Wifidog 接收到验证结果后,如果拒绝访问,就会返回 302 给客户端,重定向到认证服务器的 gw_message 接口,附带 message=denied 参数,客户端的上网访问仍然会回到第二步骤;如果允许访问,则改动防火墙规则,开通改客户端的上网(至此客户端已经能够正常上网) ,然后返回 302 重点向给客户端,重定向到认证服务器的 portal 接口,附带参数 gw_id。   

viii. 认证服务器的的 portal 接口根据业务流成显示广告业或者做其他的跳转ix. 整个认证流程完成。

二 ping 心跳流程描述
i. ping 接口 wifidog 检测认证服务器访问是否正常、并向认证服务器提交 wifidog的运行状态。
ii. 定时 ping 认证服务器。
iii. 提交的参数 gw_id、sys_uptime、sys_memfree、wifidog_uptime。

三 auth 心跳流程描述
i. 和 ping 一样的频率定期请求认证服务器,并且有多少已认证客户端就发多少请求。
ii. 用来向认证服务器提交客户端的状态以及执行认证服务的验证结果。
iii. 提交的参数有:ip、mac、token、incoming、outgoing 、stage=counters。
iv. 如果服务器返回拒绝,则 wifidog 改动防火墙规则,关闭该客户端的上网。

本文章由 http://www.wifidog.pro/2015/02/09/wifidog%E6%A0%87%E5%87%86%E6%B5%81%E7%A8%8B.html 整理编辑,转载请注明出处