分类 wifidog-ddwrt 下的文章

wifidog中命令组合代码测试

wifidog中命令组合代码测试,有需要的朋友可以参考下

/*************************************************************************
    > File Name: test.c
    > Author: NULL
    > Mail: 574889524@qq.com
    > Created Time: 2014年11月21日 星期五 20时22分18秒
 ************************************************************************/

#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include<stdio.h>
#define TABLE_WIFIDOG_TRUSTED "WiFiDog_$ID$_Trusted"

int safe_vasprintf(char **strp,const char *fmt,va_list ap)
{
    int retval;
    retval = vasprintf(strp,fmt,ap);
    if(retval == -1){
        printf("FAIL\n");
        exit(-1);
    }
    return retval;
}
int safe_asprintf(char **strp,const char *fmt,...)
{
    va_list ap;
    int retval;
    va_start(ap,fmt);
    retval = safe_vasprintf(strp,fmt,ap);/*这里要给strp分配内存*/
    va_end(ap);
    return retval;
}

int iptables_do_command(const char *format,...)
{
    va_list vlist;
    char *fmt_cmd;
    char *cmd;

    va_start(vlist,format);
    safe_vasprintf(&fmt_cmd,format,vlist);/*将每个参数组合到一起*/
    va_end(vlist);
    safe_asprintf(&cmd,"iptables %s",fmt_cmd);/*格式化输入到cmd*/
    printf("%s\n",cmd);
    free(fmt_cmd);/*释放两次分配的空间*/
    free(cmd);
    return 0;
}
int main()
{
    iptables_do_command("-t mangle -N " TABLE_WIFIDOG_TRUSTED);
    /*两个字符串合并,组成一个字符串*/
    return 0;
}

输出:

iptables -t mangle -N WiFiDog_$ID$_Trusted

本文章由 http://www.wifidog.pro/2015/01/19/wifidog%E5%91%BD%E4%BB%A4.html 整理编辑,转载请注明出处

ddwrt+wifidog搭建热点认证系统(无线路由器web认证)

先来说说什么是热点认证系统,如果你有用过酒店或者机场的wifi,当你连上网络后试图去浏览某些页面的时候就会被从定向到一个特定的页面要求你登录啊什么的,是的,这就是热点登陆系统,可能也可以叫做wifi login portal。不过是什么,如果你理解了这概念,或者觉得有用,那么我们就来实际的搭建一下吧。
准备工作:
1、一个支持ddwrt的路由器,关于如何得到这个路由器以及那些是兼容的请上ddwrt官网自行搜索,个人比较推荐的是上tb买个二手的linksys wrt54g的路由器,一般这样的一个机器都有被改造过,扩充flash容量以便能安装完全版的ddwrt固件。所以下文将不会讲如何安装ddwrt固件,其实我只是自己也没安装过罢了。。
2、internet环境(其实不连应该也没什么关系,不过我没测试过)。首先有一点很重要的是,如果你把路由器只接个lan口当做交换机来用的话是无法成功的,所以这里我们必须在wan口上插根网线,并在设置里配置好二级路由,开启dhcp服务。
3、一台机器,通过lan口连接路由器,用来配置鉴权服务器。
准备完成后,举例配置如下:
ddwrt路由器 ip:192.168.11.1
鉴权服务器ip:192.168.11.128
就可以进行配置了。先配置服务器吧,wifidog官网上说使用了新的验证服务器authpuppy,于是就下载之,之后如果你想省去麻烦的php和mysql等等配置工作,建议直接使用xampp。
然后把解压的文件夹authpuppy扔到xampp默认的访问目录htdocs下,修改authpuppy部分目录的权限(详细的参看官网设置,这里就整个目录777了)。
开打浏览器输入localhost/authpuppy/web/后来到安装页面,根据要求安装就是了,这部应该没什么问题,需要你建立数据库就按照要求建个就是了,用户名则可以随便分配。
安装完之后用新建的管理员账号登陆,选择manage node,新建一个node,注意这里有个GW ID的设置,随便设个,但必须在路由器端的wifidog设置中也使用这个id,不然无法进行认证。到此为止鉴权服务器的简单功能应该算是配置完成了,之后加入复杂的功能等等则可以通过官网提供的插件和api或者自己看源码理解,可能我下次会说到,这里就不提了。
接着是路由器的配置,点开"服务"标签,二级标签选"热点",在里面会看到被禁用的狗狗,开启之,依下设置(图片稍后奉上):
网管ID,就是前面服务器设的那个GW ID
服务器名,随意了
下面一些默认不要动
鉴权服务器主机名,安装authpuppy服务器的ip地址192.168.11.128
SSL服务禁用
端口,还是看你服务器的配置,默认是80。
鉴权服务器路径,/authpuppy/web/
填写完成后按应用就可以了。这时候你可以登录到路由器上的wifidog看看dog是否正常工作。在浏览器中输入:192.168.11.1:2060/wifidog/status
状态如图(继续稍后。。。)就说明成功了,不过此时还有一部非常重要的事要做,那就是进入路由器管理菜单,重启路由器,之前一直由于这个原因搞了我很久。
测试,随便找个带wifi的电脑或手机,连上我们设的热点后,任意访问个页面,此时如果页面成功跳转了那么便大功告成,没有的话检测看看原因,一般如果wifidog状态正常的话是不会出问题的。
over~其实配置起来还是蛮简单的,关键还是在于后续的开发和管理上面

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

wifidog安装--part1

Wifidog 网关安装
需求:
1) 熟悉GNU/Linux环境
2) 内核中编译了netfilter的GNU/Linux OS
3) Iptables
4) GNU C 编辑器。其它编辑器可能也适用,但我们没有测试,也不支持。
5) 可以从SourceForge得到最新的Wifidog TAR包
预安装
很多人会在这里遇到问题,所以我们大致陈述一下:
将Wifidog引入到环境之前先要确保一切都是正常运行
l 路由器须boot正确
l 路由器能正确调出界面
l 路由器须联网
l 正确设置DNS,并能正常运行
l 正确设置DHCP
l 装载ipt_mac.o内核模块
l 如果用NAT,路由器必须用iptables设置NAT/masquerading规则
l 获取WIFI的客户端必面能够绑定和联接到互联网
l 当路由器开始运行时,以上所有须自动运行
安装
Wifidog跟其它开源项目一样,使用标准的自动化工具,使得安装更加便捷。打开TAR包获取来自SVN的最新资源,然后按以下步骤:
./autogen.sh
make
make install

如果你没有用make install来安装,二进制文件会保存在src/wifidgo。

OpenWrt ipkg
mkdir ~/wifidog.openwrtcd ~/wifidog.openwrtwget http://downloads.openwrt.org/whi ... inux-i686-1.tar.bz2tar -jxvf OpenWrt-SDK-Linux-i686-1.tar.bz2svn checkout https://dev.wifidog.org/svn/trunk/wifidogcd wifidog./autogen.shmake ipk OPENWRTSDK=~/wifidog.openwrt/OpenWrt-SDK-Linux-i686-1
如果没有错误,你的包应该保存在~/wifidog.openwrt/OpenWrt-SDK-Linux-i686-1/bin/packages
配置
编辑/etc/wifidog.conf并依照说明操作,一切OK。
首次运行Wifidog
按照以下命令启动Wifidog:
Wifidog –f –d 7
测试:
当客户端获取WIFI后,用浏览器打开你喜欢的网页。
监测运行当中的Wifidog的output。
认证服务器安装
需求
PHP5
l PHP5网络服务器。推荐Apache httpd服务器,并提义使用虚拟主机。
l 必用:Pgsql,dom,bmstring
l 选用:xml,gettext,mcrypt,mhash,xmlrpc
l PEAR:radius,Auth_RADIUS,Crypt_CHAP
l PHP library:Smarty,MagpieRSS,Phlickr
强烈建议安装选用项,以便激活认证服务器的所有特性。如果你不知道哪些已经安装,install.php将会进行检测并显示出对你有用的信息。最后一项将会通过install.php自动下载安装。
重点:认证服务器所需内存要大于PHP默认的8Mb。你需要在php.ini将其提高到32Mb或64Mb。如果你没进行此操作,也会安装成功,但不久就会用光内存。
PostgreSQL
正确配置PostgreSQL服务器。install.php脚本不会向PostgreSQL数据库服务器提供特殊的安全方式。系统管理员要做的是授予正确的数据库存取许可。
快速安装
1) 将Wifidog认证服务器软件源从CVS中撤出
2) 在人喜欢的浏览器中打开http://server.com/wifidog/install.php并按说明操作
3) 在config.php设置语言
4) 用管理员身份登录,填入网络信息,创建热点和目录
install.php
即使是install.php也无法尽其所能的来简化安装。但它能很快的给你一个门户,你可以做为管理员进行登录,自定义你的网络,热点,目录,用户等。
首先,你需要在浏览器中打开install.php。如果你尝试另一个门户网页,并且认证服务器没有预先设置好,那么你的浏览器将自动重新导向install.php。
按照网页上的说明创建wifidog用户和数据库。
第一次打开install.php,脚本会在/tmp/dog_cookie.txt文件中随机产生密码。这只是一种安全控制,用来防止选程用户用新安装的认证服务器做坏事。这个文件只是随机密码,不需要用户名。

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

wifidog-openwrt x86虚拟机运行

openwrt x86在虚拟机中运行方法(vmware和 VirtualBox)
首先安装vmware或VirtualBox虚拟机软件(个人推荐VirtualBox),再去openwrt官网下载openwrt-x86-ext2.image镜像文件, 用VirtualBox的命令行方式: VBoxManage convertfromraw --format VMDK openwrt-x86-ext2.image openwrt-x86-2.6-ext2.vmdk 把下载到的镜像文件转换成vm的虚拟磁盘格式. 运行虚拟机软件,建立新虚拟机,128M内存就够了,硬盘就用上面转换出来的vmdk文件,不要忘了用桥接方式加2块以上网卡,1Lan,1Wan (vm最多可以加10块网卡,VirtualBox可以加8块,4块可以直接加,另外4块可以建完虚拟机后修改xml配置文件得到) 启动虚拟机,设本机IP为192.168.1.X,直接在浏览器中输入192.168.1.1,就能进入openwrt的web配置界面了.

本文章由 http://www.wifidog.pro/2015/01/06/wifidog-openwrt-x86%E8%99%9A%E6%8B%9F%E6%9C%BA.html 整理编辑,转载请注明出处