标签 wifidog配置 下的文章

ubuntu 安装 Wifidog安装手册

一、 安装前准备 打开终端(用普通用户进入终端,不要用超级用户)。

sudo apt-get update  sudo apt-get install apache2 php5 

二、 安装Database Server

sudo apt-get install postgresql

三、 安装需要的库文件

sudo apt-get install php5-cgi  
sudo apt-get install php5-mhash php5-pgsql php-pear php5-xmlrpc php5-curl php5-mcrypt php5-dev  
sudo apt-get install language-pack-en-base 
sudo apt-get install subversion 
sudo pear install XML_RPC 
cd /tmp  
wget  http://ovh.dl.sourceforge.net/sourceforge/phlickr/Phlickr-0.2.5.tgz 
sudo pear install Phlickr-0.2.5.tgz  
rm Phlickr-0.2.5.tgz  
sudo apt-get install openssh-server 

四、 安装auth server 获取认证服务器源码(如果已经有源码,可以不用获取,直接将源码放到/var/www目录下)。

svn checkout https://dev.wifidog.org/svn/trunk/wifidog-auth 
sudo mv wifidog-auth/ /var/www/

修改配置文件

 sudo vi /etc/apache2/sites-available/default   
将第4行做如下改变 
 DocumentRoot /var/www/ 改变为 
DocumentRoot /var/www/wifidog-auth/wifidog   
重启apache2   
sudo /etc/init.d/apache2 restart   需要修改语言支持,以便网页能够正常显示 
 sudo vi /var/www/wifidog-auth/wifidog/config.php 
define('DEFAULT_LANG', 'fr_CA'); 改变为

define('DEFAULT_LANG', 'en_US');

五、 配置auth server
打开浏览器,在地址栏输入http://ipaddress:port/install.php(例如http://192.168.1.11:8909/install.php,默认端口号为80,如果没有修改端口号,在本机可以输入http://localhost/install.php),可以看到安装流程。
点击next后,将会询问密码,密码在/tmp/dog_cookie.txt文件中,用户名和密码都输入dog_cookie.txt文件中的内容即可。 进入到每一步,可能都需要通过终端做页面要求的事情,才能进行下一步,直到完成安装。
1, 进入第一个页面,需要进行下面的动作 在postgres数据库创建一个用户

sudo su - postgres  
createuser wifidog --pwprompt  

要求输入密码

wifidogtest  

创建一个属于这个新建用户wifidog的database

createdb wifidog --encoding=UTF-8 --owner=wifidog 

2, 进入第二个页面,需要进行下面的动作
点击next时会报错,然后会有会有提示,提示可能是要求一些文件的访问权限,直接将提示复制到终端执行即可。终端需要先退出postgres用户。
3, 进入第三个页面 可能会有一些包没有安装,这时可以点击页面上的安装,如果提示安装失败,那就需要手动下载安装包,将下载好的安装包放到/var/www/wifidog-auth/wifidog/lib目录下,并解压。
4, 进入第四个页面,填写表格,按前面创建的database信息填写。
然后后面的步骤都是默认下一步,直到最后一步,需要填写登录wifidog的管理员用户名、密码和邮箱。下一步出现wifidog的信息就表明安装已完成。

本文章由 http://www.wifidog.pro/2015/06/04/ubuntu%E5%AE%89%E8%A3%85wifidog.html整理编辑,转载请注明出处

OpenWrt WifiDog + wiwiz 安装配置

wifidog

WifiDog是路由器的一种上网认证功能,如果开启此功能,所有通过路由器上网的设备都会跳转到指定的界面,需要通过某种方式认证才可以上网,这种认证方式的优势在于安全性高,不容易被破解验证。

WifiDog安装
登录到 OpenWrt luci 后台,打开 System / Software,然后查找 wifidog
NewImage1.png

再点击 Available packages (wifidog),选择安装
NewImage2.png

NewImage.png

WifiDog 安装后,还需要到 System / Startup 使用 WifiDog 服务自动启动
NewImage4.png

然后还要到 Network /Firewall 里,把 lan => wan 的默认 Forward 规则改为 reject
NewImage3.png

wiwiz 账号申请

Wifidog 使用时需要配合认证系统来使用,你可以部署一个 AuthPuppy,不过如果为了测试方便,可以直接申请一个 wiwiz 的账号。Wiwiz是一个有线/无线网络热点管理系统,利用它你可以为你的热点创建一个强制门户/强制认证页面(captive portal)。

申请好账号之后,需要在 Wiwiz 里创建一个热点,这个时候将得到你的 HotSpot ID,把这个 ID 记录下来,等下 WifiDog 配置的时候要用到。

WifiDog配置

使用 SSH 登录到你的 OpenWrt 上,编辑 /etc/wifidog.conf 文件,在文件末尾增加以下配置:

GatewayID 14BBB888BBB
AuthServer {
    Hostname cp.wiwiz.com
    Path /as/s/
}

最后直接重新启动一下路由器,然后用你的终端通过你的路由器访问互联网,就会弹出 Wiwiz 的认证页面

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

wifidog安装Oauth login for Google and Facebook on OpenWrt routers

Oauth for OpenWrt routers aims to support authentication via OAuth services (Google, Facebook...) and run on the same box with WifiDog. It is using Luci and provides an alternative to single Auth Server for WifiDog. There is no need to setup a separated machine for authentication.

How does it work?

When a new guest uses Wifi from a router to go to the Internet, he/she will be presented a login page where he/she can use his Facebook or Google accounts to log in order to have permission of using our Wifi to access the Internet. When the session of using the Internet is over, a page with a message informing that the user is unauthenticated is displayed, and he/she is withdrawn the Internet access permission. This means he/she must be login again to have the permission.

System requirements

The followings are all you need to successfully deploy Oauth for OpenWrt:

  • OpenWrt firmware.
  • LuCi package.
  • Wifidog package.
  • Standard wget package.
  • Oauth for OpenWrt package.

a. Install Wifidog package:

  • Connect with your router via SSH.
  • Use this command to install Wifidog: opkg install wifidog.

Note: if you can not install wifidog, let's first use this command: “opkg update”, and then install it again.

b. Modify Wifidog's configuration file:

The configuration file of Wifidog is in /etc/wifidog.conf.

  • Use this command to access the file: vi /etc/wifidog.conf.
  • There are some parameters that you need to alter, according to your
    system: + ExternalInterface. + GatewayInterface. + GatewayAddress
    (your router) + AuthServer (your router) + GatewayPort.

c. Install Oauth for OpenWrt package:

We provide an ipk package to easily install via opkg.

You can also build your own from source (https://github.com/hongquan/Oauth for OpenWrt):

  • Copy the source folder to openwrt/package (source tree).
  • Rename Makefile_build_standalone to Makefile (replace the old
    Makefile).
  • Rename "dist" folder to "root" Choose the luci-app-Oauth for OpenWrt
    in"make menuconfig".
  • Run "make package/luci-app-Oauth for OpenWrt/compile V=99" to build.

After finishing the whole things above, let's do some more steps following to make Oauth for OpenWrt works:

  • In Terminal, connect to your router via SSH.
  • Run wifidog via this command: “/etc/init.d/wifidog start” (or
    “wifidog -d 7 -f” to see log information)
  • On your web browser, access your router via its IP address. After
    logging in, select tab “Network/Oauth for OpenWrt/Status”. Then,
    press “Apply” button.

Oauth for OpenWrt is now ready to work.

Configure Oauth for OpenWrt

We have created some nice stuffs for you to make Oauth for OpenWrt work as you like. First of all, you need to access the admin page of router by typing the your router address. There are some options that you can choose to bend the Oauth for OpenWrt with your needs.

本文章由 http://www.wifidog.pro/2015/04/07/wifidog%E5%AE%89%E8%A3%85%E6%8E%88%E6%9D%83.html 整理编辑,转载请注明出处

wifidog配置分析

AuthServer {
    Hostname                  (Mandatory; Default: NONE)
    SSLAvailable              (Optional; Default: no; Possible values: yes, no)
    SSLPort                   (Optional; Default: 443)
    HTTPPort                  (Optional; Default: 80)
    Path                      (Optional; Default: /wifidog/ Note:  The path must be both prefixed and suffixed by /.  Use a single / for server root.)
    LoginScriptPathFragment   (Optional; Default: login/? Note:  This is the script the user will be sent to for login.)
    PortalScriptPathFragment  (Optional; Default: portal/? Note:  This is the script the user will be sent to after a successfull login.)
    MsgScriptPathFragment     (Optional; Default: gw_message.php? Note:  This is the script the user will be sent to upon error to read a readable message.)
    PingScriptPathFragment    (Optional; Default: ping/? Note:  This is the script the user will be sent to upon error to read a readable message.)
    AuthScriptPathFragment    (Optional; Default: auth/? Note:  This is the script the user will be sent to upon error to read a readable message.)
}

# Listen on this port
GatewayPort 2060

# Parameter: CheckInterval
# Default: 60
# Optional
#
# How many seconds should we wait between timeout checks.  This is also
# how often the gateway will ping the auth server and how often it will
# update the traffic counters on the auth server.  Setting this too low
# wastes bandwidth, setting this too high will cause the gateway to take
# a long time to switch to it's backup auth server(s).
CheckInterval 60

# Parameter: ClientTimeout
# Default: 5
# Optional
#
# Set this to the desired of number of CheckInterval of inactivity before a client is logged out
# The timeout will be INTERVAL * TIMEOUT
ClientTimeout 5

wifidog流程参照http://dev.wifidog.org/wiki/doc/developer/FlowDiagram描述,这里介绍下配置内容。

AuthServer是Portal服务器的配置项;GatewayPort是Wifidog监听的地址,默认是2060,一般保持默认即可;CheckInterval是心跳时长,单位是秒,什么是心跳呢,客户端认证成功之后,如果有网络访问动作,Wifidog getway就会每隔一段时间访问Portal服务器的一个脚本,用于认证计费,当然,如果客户使用超时或超流量,也可以通过心跳强制客户端下线。ClientTimeout是用户一次认证成功后的网络访问时长,超过这个时间需要重新认证,这个时长并非由ClientTimeout单独决定,取决于INTERVAL * TIMEOUT。详细的配置信息可以访问:http://dev.wifidog.org/browser/trunk/wifidog/wifidog.conf

重点讨论Portal服务器的配置项,Hostname是Portal服务器的ip或者是域名,SSLAvailable和SSLPort是SSL加密配置,如果你的Portal服务器有配置HTTPS加密,则需要配置这两项;Path是指你的脚本路径(举例,http://a.com/to/,则a.com是域名,/to/是路径),注意路径必须以“/”开头和结尾,如果是根路径,则填一个“/”即可;接下来的5个配置指明你的脚本名,这说明了我们需要写五个脚本,我会详细说明。(以下文中涉及的“第几步”均是指Wifidog认证过程的步骤)

LoginScriptPathFragment配置项配置的是登陆脚本,它通过GET方式接受传入参数gw_address、gw_port、gw_id、mac和url,gw_address是AP Getway的ip地址;gw_port是Wifidog监听的端口,即上面介绍的wifidog.conf中的GatewayPort配置;gw_id是AP Getway的id,配置文件wifidog.conf中可以配置,默认值是default,这个值的作用是当存在多个AP是,服务器或管理员可以根据不同的id确定用户的接入点;mac是客户计算机的网卡物理地址,注意不是AP网关的mac,这个mac是用来识别客户计算机的;url是客户初始访问的Url,这些Querystring都是AP Getway向客户端发出重定向请求自动生成的。这个脚本同时需要提供登陆页面,如果登陆成功,需要向客户;端返回302重定向,重定向到:http://gw_address:gw_port/wifidog/auth?token=[token];即实现第7步,其中[token]是你自己自动生成的token字符串,随机生成一个字符串即可,但是长度最好长些,安全性更高,另外,token需要根据不同用户保存,最好保存于数据库中,之后的AP Getway询问token有效性(第9步)还需要用到。这里最好使用cookie或session,使之后的登陆成功页面可以判断用户已经成功,阻止未登录成功的人访问认证成功页面。

PortalScriptPathFragment配置项配置的是登陆成功后服务器展示的脚本(第11步),它通过GET方式接受1个传入参数,gw_id,这个脚本比较简单,告知用户登陆成功即可,当然,最好重定向到用户之前想要方位的url,即第1步用户输入的URL。
MsgScriptPathFragment配置项配置的是错误信息展示脚本,它通过GET方式接受一个传入参数message,这个脚本也很简单,展示message的内容即可,目的是当认证过程出现错误,AP Getway会重定向到这个脚本,URL中含有错误的信息。

PingScriptPathFragment配置项配置的是心跳脚本,这个脚本它通过GET方式接受5个传入参数,gw_id,sys.uptime,sys.memfree,sys.load,wifidog.uptime,其中,sys.uptime指的是AP Getway的启动时间,sys.memfree指的是AP Getway的空闲内存,sys.load指的是AP Getway的CPU负载,wifidog.uptime指的是wifidog的启动时间,这个脚本每隔一段时间(Wifidog.conf里配置的CheckInterval),Wifidog会自动访问,但是其目的不是用户验证,而是帮助管理员管理AP节点,了解AP节点的负载情况,适时增加节点等,Wifidog访问这个脚本时,需要这个脚本返回Pong,如果你没有统计AP节点负载数据的需求,可以丢弃这些数据,直接回应Pong,注意,这个回应只包含“Pong”字符串,无需包含其他html标签。

AuthScriptPathFragment是用户认证脚本,实现的是第10步的功能,这个脚本它通过GET方式接受7个传入参数:stage、ip、mac、token、incoming、outcoming和gw_id。其中stage的值是login,ip是客户端的ip,注意不是AP Getwap的ip;mac是客户端的网卡物理地址,token就是你在认证脚本生成并返回给客户端的;incoming和outcoming用于流量控制,默认值为0;gw_id同上。如何识别用户登录成功,通过mac和token吧,LoginScriptPathFragment登陆脚本在用户登陆成功后需要记录用户的mac和token,然后在此处验证,如果匹配,回复Auth: 1,否则,回复Auth: 0。另外,这个脚本也是心跳脚本,每隔一段时间Wifidog会自动访问,如果用户使用时间超过限制或流量超过额度,服务器可以及时回应Auth: 0结束用户的访问。另外需要注意的是,回应同样无需包含html标签,另外,在Auth后的冒号和0/1之间,有一个空格,缺少这个空格也会导致出错。
在配置Wifidog的配置文件wifidog.conf是,配置脚本的配置项都必须以“?”结尾,否则以GET方式传递的QueryString会因Url缺少问号访问错误的脚本。

本文章由 http://www.wifidog.pro/2015/04/03/wifidog%E9%85%8D%E7%BD%AE%E5%88%86%E6%9E%90-1.html 整理编辑,转载请注明出处