2015年1月

wifidog_authserver_demo 简单部署说明

简单部署步骤1.将项目文件放到http服务器 htdoc目录之后,通过几个关键页面比如http://domain/index.php/wifidog/login http://domain/index.php/wifidog/ping 看返回是否正常来判断是否成功运行,页面返回错误,就要检查http服务器以及文件放置位置是否正确
2.此时服务器的对外wifidog接口为

 /index.php/wifidog/login 
 /index.php/wifidog/ping 
 /index.php/wifidog/auth 
 /index.php/wifidog/portal 

3.修改wifidog配置文件,将几个关键路径url修改如下
AuthServer {
Hostname gw.freeap.net
SSLAvailable no
Path /index.php/wifidog/
}
4.如果需要配置成wifidog默认的路径,请调整CI路由、apache rewrite规则、.htaccess 规则、nginx规则等配置文档
5.有问题首先参考CI文档或CI不同环境下的部署文档

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

wifidog_gateway--part1

配置网关注意事项
用户超时
跟其它解决方法不同,Wifidog无需一直打开认证页面用脚本来保持连接。网关只会在数秒中没有获得任何来自客户端的流量时,才判断为超时断开连接。确保客户端没有因为闲置而超时,网关将会在每个时间间隔来重新ping每个客户端来检测流量。遗憾的是,有些所谓防火墙设置很讨厌,防ping,造成检测时完全丢包被误判为离线。这也是经常超时的原因。
Wifidog网关网站界面
网关只有最小化的网站界面,为用户提供了很少的信息。这样就不会与门户相混淆,门户必须由认证服务器进行管理。以下信息可以直接从网关得到:
http://gateway_ip:gateway_port/wifidog/
l 网关版本
l 节点ID
http://gateway_ip:gateway_port/wifidog/status
l 网关版本
l 网关正常运行时间
l 网关是否具有网络连通性
l 是否与认证服务器相连接
l 获得此服务的用户编码
l 已连接的用户编码
l 用户列表
² IP
² MAC
² Token
² 下载字节
² 上传字节
l 目前使用的认证服务器
http://gateway_ip:gateway_port/wifidog/about

服务器设置
当你准备配置镜像时,你可以将它放在服务器,这样升级脚本能够提取它。
存储库里的URL都带有镜像和程序包,它相当于你在customupgrade脚本中定义的服务器变量。
这个存储库的根目录包含以下文件
l Latest
l Packages-list
l Images.trx files
Latest的内容如下
version: 1file: myimage_v1.trxmd5sum: 83081f198d0a890e6d2c33114ccd35c4
这表示AP应该运行的目前版本应该是1,应该下载的镜像文件是myimage_v3.trx,与latest文件处于相同的目录。注意的是这个版本必须与镜像的CUSTOM_FILE版本编号相符,否则它会在每次执行定时任务时都不停的闪。
Packages-list文件列举了服务器应该有的程序包和应该运行的版本,一行一个。Customupgrade脚本会检测每个程序包的目前使用版本,如果不是应该运行的,它会进行升级。
内容如下
wifidog 20091125-1dropbear 0.51-2
这表示AP上的wifidog程序包版本应该是20091125-1,dropbear的应该是的0.51-2。如果目前的版本不是,它将会被升级。如果你想在AP添加openvpn程序包,你只需要用以下方法升级packages-list文件即可。
wifidog 20091125-1dropbear 0.51-2 openvpn 2.0.9-5.1
如果任何没有被列举的程序包被释放在openwrt目录,就不会被升级。只有在packages-list文件的程序包被升级。
跨平台
一些组织机构也许使用的不只一种硬件。每个平台都需要一个不同的镜像和一组不同的程序包。每个平台在存储服务器都会有自己的目录。所以每个customupgrade文件需要指定到正确的URL。只需要在第一次编辑时完成这些操作即可。
当编辑时,你需要给每个平台都建立环境,编辑自定义升级文件和相应的生成文件。
编辑新镜像
第一次是由系统创建的镜像,此前提到的所有文件都将被创建。编辑完一个再编辑另外一个,这些文件不需要都进行修改。
路由器的文件只有一个需要升级的是files/etc.custom_compil.txt文件。
编辑完以后,新镜像文件需要在服务器中展开,并且latest文件需要被升级才能体现这个新镜像。你可以用以下命令来计算新程序包的md5校验码。

md5sum myimage_v2.trx51c50a0c62484151b8e459ad79f71e7c myimage_v2.trx
此时latest如下:
version: 2file: myimage_v2.trxmd5sum: 51c50a0c62484151b8e459ad79f71e7c

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

wifidog_auth server upgrade

Wifidog认证服务器升级的最优方法
Wifidog认证服务器升级
将成品服务器的认证服务器进行升级,安全流程如下:
1 阅读Changelog;
2 在升级前使用sql/backup_database.sh;
3 测试;
l 在研发设备上检测最新的SVN(不能与你的服务器使用同一台,除非你真的了解你在做什么;你需要修改config.php来指向一个不同的DB,并且你不能直接使用还原的脚本)
l 在研发设备上还原实时数据库。检测是否一切有序。(内容包括登录,查看你最复杂的门户)。更复杂些的测试内容有在开发服务器上安装网关并且登录,尝试创建一个新帐户;
4 在实时服务器上运行SVN;
5 在认证服务器主页面确认架构已经升级;
6 如果Changelog中提到了依赖性变更,那就在Dependencies页面启动安装脚本。
已测试的稳定的修订包
虽然wifidog在升级时应该被反向兼容,但这仍然会不可避免的中断一些进程。当用户安装最新版本的wifidog时,也是在冒险。这升级版本也会被新的未经测试的功能或修改所中断。
这部分是记录已知的,已测试的和可运行的修订包。可能更新的包也可以运行,但在这里却没有列举。这些是为那些寻找已测试并可运行的人准备的,因为他们不想很麻烦的调试他们的新版本。
知道最新的版本号,使用命令:svn info。你需要在wifidog的文件夹内。
版本号:1226 (Thu, 17 May 2007 at 16:25:43) - Tested by Wadz (wmaalouf -@at- fqccl d0t org)
细节:我从1154版本顺利升级到此版本。但刚才我尝试升级到最高版本(1250)时崩溃了,我用了好几个小时进行还原,当我找到可运行的版本时进行了重新安装。新数据库架构升级经常失败。所以最后我获取了1226版本,并成功安装。
在Debian etch服务器的PHP5.2.0-8和SQL7.4.17进行测试
-->重新安装:svn -r 1226 checkout https://dev.wifidog.org/svn/trunk/wifidog-auth
-->升级:svn update -r 1226

本文章由 http://www.wifidog.pro/2015/01/15/wifidog-auth-server-upgrade.html 整理编辑,转载请注明出处

wifidog_auth server adminstration--part5

如何授权和使用用户配置文件
创建配置文件
1.创建必要的内容类型过滤器
这些数据类型在配置文件中可能会用到。
每个内容类型过滤器的格式是标准陈列:在内容类型执行的函数引用。格式是array(array(callback_funct, array(callback_funct_parameters))
注意的是callback_funct表示对象已被验证,所以它没有静态的classname。
例如:获取文档子类别的Simple内容类型,陈列应为
array(array('isSimpleContent'), array('isContentType',array(array('File'))) );
注意的是第二个callback:isContentType,用了单参数。当$criteria_array指定callback参数为列表,将“File”传到“isContentType”应该写成array(array('File'))。
你也许至少需要以下过滤器:
Avatars
array (
array (
'isContentType', array (
array (
'Avatar',
),
),
),
)
Hyperlink only
array (
array (
'isExactContentType', array (
array (
'HyperLink',
),
),
),
)
SimpleLangstring only
array (
array (
'isExactContentType', array (
array (
'TrivialLangstring',
),
),
),
)
SimplePictures
array (
array (
'isContentType', array (
array (
'SimplePicture',
),
),
),
)
SimpleString only
array (
array (
'isExactContentType', array (
array (
'SimpleString',
),
),
),
)
2 创建配置文件模版
包括配置文件的字段列表,当用户进行编辑,其它用户浏览时可见的选项标签。
3 将配置文件模版与网络进行关联
4 编辑你自己的配置文件进行测试

数据模型
Network_has_profile_templates
l Network_id:每个profile_field只有一个网络
l Profile_template_id:配置文件模版id
l Is_invisible boolean:用户是否希望用匿名模式
Profile_templates
l Profile_template_id guuid:配置文件id
l Creation_date timestamp
Profile_template_fields
基本上是用户可以进行填充的数据字段列表。被管理员用来指定用户配置文件中可得的字段。
l Display_label content_id:配置文件显示界面的字段标签。Content id必须可本地化,最好是个图片。
l Admin_label content_id:用户编辑界面的字段标签。
l Content_filter filter_id:用来列出指定内容类型的过滤器。这些内容类型允许被此配置文件字段的用户当作函数来进行记录。UI代码应该保存在ContentTypeFilter类别当中。
l Order:配置文件中字段显示的顺序
l Semantic_id text:用户不可见。这字段有两个作用:

  1. 最终用于允许输出配置文件的微格式和XML算法。
  2. 一些semantic_id函数对于wifidog是有特殊意义的。例如配置文件中存在foaf:img的元素,它将用来在在线用户列表中显示用户的自定义头像。用来指定网络配置文件字段的管理界面必须列出所有对wifidog有特殊意义的semantic_id函数。
    User_has_profiles
    用配置文件连接用户表格
    l User_id:用户id
    l Profile_id:配置文件id
    l Is_invisible Boolean:用户是否希望用匿名模式
    Profiles
    从技术上讲,我们应该直接在user_profile_fields连接用户表格,但这不可取。配置文件和user_has_profiles tables被替换的原因是:
  3. 允许在用户创建自己的配置文件前添加用户协议。
  4. 允许更便捷的保存非数据元素,例如可视模式,是否其它用户可以发送用户短信息等等。
  5. 如果用户需要,允许每个网络都有一个配置文件。
    l Profile_id guuid:配置文件id
    l Creation_date timestamp
    Profile_fields
    由终端用户输入的配置文件函数。
    l Content_id:当前连接的数据
    l Last_modified timestamp:起初不会被应用,因为它要求每个内容类型要有调节器和processAdminUI并反馈数据是否被正确修改。这实际上并不困难并且如果我们想衡量用户如何使用和更新他们的配置文件的话,这点都是最基本的。
    ContentTypeFilter
    ContentTypeFilter已存在并且应用在内容管理器的一些部分。基本上它会在每个备用ContentType以静态的方式用自己的参数启用函数引用。一些Content类的函数也是因为这个被指定的。当它非常灵活的运转时,从代码指定过滤器是唯一的方法。我们需要UI和数据表示法,这会很困难但并非不可能。困难点有:
    l 列举可得的滤函数
    l 解决已存在的过滤器由于代码中的滤函数丢失导致失效,从过滤器永久删除字段。
    l 在callback函数参数输入的界面,它以能够让PHP在不使用eval()的情况下进行解析

本文章由 http://www.wifidog.pro/2015/01/15/wifidog-auth-server5.html 整理编辑,转载请注明出处