分类 默认分类 下的文章

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

DD-Wrt WiFiDog用自建服务器进行WEB认证

首先准备一台刷好DD-Wrt的路由器,进行基本的的联网配置,保证能够正确的连接上网,申请个WEB空间并绑定域名,然后可以安装配置wifidog了.
去WiFidog网站下载认证服务器网站文件,点Download,提示已启用新网址http://www.authpuppy.org,请这个网址下载,点Download,选择 authpuppy-1.0.0-stable.tgz (md5, sig)下载,把下载下来的文件解压,传到你申请的服务器的网站根目录,创建一个mysql或PostgreSQL数据库,建议用PostgreSQL,我用mysql安装没成功,在浏览器中打开http://你的域名/web,运行安装向导,点Let's Go开始,检查文件目录权限,点Next继续,Db type选择数据库类型,Db server填你的数据库地址默认localhost,Db name填你创建的数据库名称,Db username Dbpassword 填入你登陆的数据库用户名密码,然后继续会创建数据表,输入管理员账号密码,然后完成了,如果无法创建请检查数据库配置,认证服务器就安装完成了,下一步就可以配置了.

打开http://你的域名/web打开管理登陆页面,点Administrative login输入管理员账号登陆.Server configuration进行服务器配置,Site name填入服务器的名称,Main url填入一个链接,这个链接是认证页面logo所链接的页面,不是认证网关地址,Show administrative login link?显示管理登陆链接,Show network login link显示用户登录链接,Show node and connection information显示连接信息链接,Support link用户支持的链接,Support text用户支持信息,Logo选择网站logo图片,Email from给用户发送邮件的发件人,不填会影响用户自主注册的认证邮件发送,Name from发件人,Connection expiry登陆后连接超时时间,Available languages可用的语言列表,设置好后 save保存.

User创建管理管理员账号与客服账号
Manage nodes管理节点,new新建.然后新窗口打开路由器的管理页面,服务-热点,wifidog-启用

wifidog认证服务器        路由器            说明

Name                    Web服务器名        服务器名称

gw id                   网关ID            节点网关ID

Description                               节点描述         

Deployment status                         运行状态选ln planning

Address civic number等                    联系地址的信息

                        鉴权服务器主机名   你申请的域名 例yourdomain.com

                        鉴权服务器SSL启用  禁用

                        鉴权服务器HTTP端口 80

                        鉴权服务器路径     /web/    注意/

然后都保存应用

Manage plugins可以增加各种插件,以增加功能,View all available plugins and updates,显示所有插件,安装apAuthLocalUserPlugin 插件,并配置,可以进行免费注册账号认证上网

现在用路由器打开网址就会提示登陆,Signup for a free account创建用户账号,需要选择邮件验证,验证后可登陆上网

通过安装其他插件以实现认证上网.

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

wifidog相关的AC、AP以及ACL

做WIFI实施部署,涉及几个概念:AP、AC、无线路由器、认证,简单说来:
AP就是无线接入点。
无线路由器大致可以理解为:AP+路由
AC是用来管理AP用的,可以对AP进行集中式管理。这在诸如连锁店、大公司部署需要支撑上百个接入点以及复杂的控制措施(例如多级认证,微·商白皮书中提到的全国漫游)等就需要AC。
AC最重要的职能是完成对接入设备的认证、授权、计费(AAA),一般采用Radius协议来完成。认证、授权的凭证包括终端的MAC地址等等信息(Radius系统一般放在云端,大家常用的宽带拨号上网的认证都是基于Radius认证)。
终端设备要接入网络,必须在AC的ACL(访问控制列表中)有对应的匹配项,对终端的标识包括MAC地址、IP等信息。

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