分类 wifidog openwrt 下的文章

WiFidog编译成库

1.在package/ utils下创建wifidog_lib目录。在wifidog_lib目录下创建一个文件夹src和一个Makefile文件。Makefile文件编写内容如下:

include $(TOPDIR)/rules.mk

PKG_NAME:=wifidog_lib
PKG_VERSION:=20130917

PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/package.mk

define Package/wifidog_lib
  SECTION:=utils
  CATEGORY:=Utilities
  DEPENDS:=+iptables-mod-extra +iptables-mod-ipopt +iptables-mod-nat-extra +libpthread
  TITLE:=A wireless captive portal solution
endef

define Package/wifidog_lib/description
      The Wifidog project is a complete and embeddable captive
      portal solution for wireless community groups or individuals
      who wish to open a free Hotspot while still preventing abuse
      of their Internet connection.
endef

define Build/Prepare
      mkdir -p $(PKG_BUILD_DIR)
      $(CP) ./src/* $(PKG_BUILD_DIR)/
endef

define Build/Configure
endef

define Build/Compile
      $(MAKE) -C $(PKG_BUILD_DIR) \
           CC="$(TARGET_CC)" \
           CFLAGS="$(TARGET_CFLAGS) -Wall" \
           LDFLAGS="$(TARGET_LDFLAGS)"
endef

define Package/wifidog_lib/conffiles
/etc/wifidog.conf
endef

define Package/wifidog_lib/install
      $(INSTALL_DIR) $(1)/usr/bin
      $(INSTALL_BIN) $(PKG_BUILD_DIR)/test_wifidog $(1)/usr/bin/
      $(INSTALL_DIR) $(1)/usr/lib
      $(CP) $(PKG_BUILD_DIR)/libwifidog.so* $(1)/usr/lib/
      $(INSTALL_DIR) $(1)/etc
      $(INSTALL_DATA) $(PKG_BUILD_DIR)/wifidog.conf $(1)/etc/
endef

$(eval $(call BuildPackage,wifidog_lib))

2.解压wifidog包进入src目录

Tar xzvf wifidog-20130917-440445db60b0c3aff528ea703a828b0567293387.tar.gz –C src

3.在src下创建Makefile文件,内容如下:

LIB_VERMAJOR = 0
LIB_VERMINOR = 1
LIB_FILENAME = libhttpd.so

LIBWIFIDOG_FILENAME = libwifidog.so

OBJEXT = o

CFLAGS += -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float

LIB_CFLAGS  = $(CFLAGS) -shared -fPIC -DPIC
LIB_LDFLAGS = $(LDFLAGS) -Wl,-soname,$(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)
LIBWIFIDOG_LDFLAGS = $(LDFLAGS) -Wl,-soname,$(LIBWIFIDOG_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)

wifidog_OBJECTS = src/conf.$(OBJEXT) src/commandline.$(OBJEXT)\
      src/debug.$(OBJEXT) src/fw_iptables.$(OBJEXT) src/firewall.$(OBJEXT) \
      src/gateway.$(OBJEXT) src/centralserver.$(OBJEXT) src/http.$(OBJEXT) \
      src/auth.$(OBJEXT) src/client_list.$(OBJEXT) src/util.$(OBJEXT) \
      src/wdctl_thread.$(OBJEXT) src/ping_thread.$(OBJEXT) src/safe.$(OBJEXT) \
      src/httpd_thread.$(OBJEXT) src/wifidogapi.$(OBJEXT)

wdctl_OBJECTS = src/wdctl.$(OBJEXT)

LIB_OBJ = libhttpd/protocol.o libhttpd/api.o libhttpd/version.o libhttpd/ip_acl.o

DEFS = -DHAVE_CONFIG_H
DEFAULT_INCLUDES = -I.-I..
sysconfdir = /etc
AM_CPPFLAGS += \
      -I./libhttpd/ \
      -DSYSCONFDIR='"$(sysconfdir)"'

COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
      --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
      $(LDFLAGS) -o $@

wifidog_LDADD = libhttpd/$(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)

LIBS = -lnsl -lpthread


all: Makefile   libhttpd   libwifidog test_wifidog

test_wifidog: src/test_wifidog.o libhttpd libwifidog
      @rm -f test_wifidog
      $(LINK) src/test_wifidog.o $(LIBWIFIDOG_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)  $(LIBS)

wdctl: $(wdctl_OBJECTS) libhttpd
      @rm -f wdctl
      $(LINK) $(wdctl_OBJECTS) $(wdctl_LDADD) $(LIBS)
wifidog_test: $(wifidog_OBJECTS) libhttpd
      @rm -f wifidog_test
      $(LINK) $(wifidog_OBJECTS) $(wifidog_LDADD) $(LIBS)          

libhttpd:$(LIB_OBJ) ./libhttpd/httpd_priv.h ./libhttpd/httpd.h
      $(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS) $(LIB_OBJ) $(LIBS) \
           -o libhttpd/$(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)

libwifidog:$(wifidog_OBJECTS) $(wdctl_OBJECTS) $(LIB_OBJ) ./libhttpd/httpd_priv.h ./libhttpd/httpd.h
      $(CC) $(LIB_CFLAGS) $(LIBWIFIDOG_LDFLAGS) $(LIB_OBJ) $(wifidog_OBJECTS) $(wdctl_OBJECTS) $(LIBS) \
           -o $(LIBWIFIDOG_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)

.c.o:
    $(CC) $(DEFS) $(AM_CPPFLAGS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CFLAGS) -MD -fPIC -DPIC -c -o $@ $<


clean:
      rm -f  $(LIB_FILENAME)*
  1. 修改src下对应的源代码,同时把scripts/init.d/wifidog脚本提供的功能通过lib库提供,这样 lib库需要提供int wifidogstart(),int wifidogstop(),int wifidogreload(),int wifidogrestart()。make package/wifidog_lib/compile V=s进行编译生成libwifidog.so.0.1和测试程序test_wifidog

本文章由 http://www.wifidog.pro/2015/02/03/wifidog%E7%BC%96%E8%AF%91-1.html 整理编辑,转载请注明出处

OpenWRT wifidog

基于OpenWRT SVN r39999源码,包含常用组件。
SVN r39161编译:http://blog.ich8.com/post/4274
SVN r39433编译:http://blog.ich8.com/post/4363

前言说明

本版本(Build1403)作为Build1402的更新,与上一个版本主要修改之处开启内核对更多的芯片组支持(测试),使用animefans_xj童鞋的vsftp插件,完善一些细节。如使用之前版本无重大问题,木必要升级。若一定想升级及保留配置文件请参考下文。
samba性能优化请自行寻找。

主要软件版本及更新

+更新 linux kernel 3.10.36
+更新 nginx 1.5.12
+更新 OpenSSL 1.0.1g
+新增 支持更多芯片组及部分第三方芯片组的IDE通道*(测试)
-增删 取消默认的vsftp,使用animefans_xj童鞋的vsftp插件
+新增 fping工具
+完善 BCM千兆网卡支持
+保持 Transmission 2.82
+保持 Aria2 1.18.3
+保持 带vim文本编辑器

可选组件

所有ipk文件(linux kernle 3.10.36)都位于packages压缩包中,如有需要可直接该压缩包获取。
nginx:http://files1.ich8.com/upfiles/2014/openwrt-trunk-1403/packages/nginx_1.5.12-1_x86.ipk
multiwan:http://files1.ich8.com/upfiles/2014/openwrt-trunk-1403/packages/multiwan_1.0.22-2_x86.ipk

ipk通过网络的安装方法

关于nginx的使用方法和一些问题,参考:http://blog.ich8.com/post/4359 ,nginx的默认端口是8080。

安装要求

最低512M的存储空间(硬盘 电子盘 CF卡均可)
最低64M的内存容量
最少一张有线网卡

硬件支持

无线网卡支持:
Atheros 5K/9K/10K
Broadcom B43xx
Intel 3945/4965/以及部分支持agn规格的网卡
Ralink RT2x00 USB网卡/RT73
Realtek RTL8187/RTL8192CE/CU/DE/SE
ZyDAS zd1211rw
有线网卡支持:
支持主流百兆和千兆网卡以及部分marvell网卡

安装方法

可参考详细过程:http://blog.ich8.com/post/4499
方法1(推荐):
1.下载vmdk磁盘文件放到其他存储设备(比如U盘等)
2.使用winimage软件进行镜像恢复操作。
具体步骤:磁盘 – 恢复物理驱动器中的虚拟硬盘映像 – 选择物理驱动器(如果是硬盘请勾选包括不可移动的硬盘) – 确定 在弹出的文件选择框中,下拉菜单选择vmdk格式,之后选择vmdk文件。
3.选择要安装的磁盘(被安装的该磁盘的所有分区以及数据都会被覆盖,谨慎选择磁盘!)
4.重启,注:如果在SATA模式或者AHCI模式下无法启动成功请将硬盘类型修改成IDE。
5.默认网关地址:192.168.1.1,单网卡和多网卡都可以通过WAN IP访问设置界面。默认WAN设置为DHCP,用户名为root,密码为admin。
方法2:
1.下载img文件和 physdiskwrite 工具,一起放到其他存储设备(比如U盘等)
链接:http://blog.ich8.com/file/53
2.在命令行窗口(CMD)中,进入文件所放的目录,输入
physdiskwrite.exe -u openwrt-ext4.img
3.选择要安装的磁盘(被安装的该磁盘的所有分区以及数据都会被覆盖,谨慎选择磁盘!)
4.重启,注:如果在SATA模式或者AHCI模式下无法启动成功请将硬盘类型修改成IDE。
5.默认网关地址:192.168.1.1,单网卡和多网卡都可以通过WAN IP访问设置界面。默认WAN设置为DHCP,用户名为root,密码为admin。

升级方法

首先,备份配置文件。系统 – 备份/升级 中备份配置文件。接着选择上述方法1或者方法2,安装完成进入设置页面,导入配置文件,重启即可。

设备挂载

挂载无线网卡:
插入USB/PCI-E无线网卡,之后重启路由器,网络 – 无线 菜单配置无线网卡,如果未生效请重启路由。并不保证一定完美支持上述列表所列网卡或者不在列表中的网卡,可以尝试,如果驱动不在列表之中也可以自行安装驱动。也可以直接编辑/etc/config/wireless,如果弄乱wireless文件,可以删除etc/config/wireless文件,重启后会重建该文件的默认设置。
挂载存储设备:
如果是已经安装好的,请在 磁盘 – 挂载点 中寻找你的设备,点击修改按钮,选择你的磁盘文件系统,可选添加一些参数。保存/应用即可。或者直接在 挂载点 中勾选相关设备,自动识别。支持挂载ntfs格式,ext3,ext4,推荐挂载ext4。

统计图表

关于统计图表,可以通过 统计 – Collectd 中的network设置来添加删除需要被统计接口,RRDTool之中建议将存储目录改为其他目录而非tmp目录。增减接口后如果图表中存在老的接口图表记录,而此接口已经从被统计接口中删除,请重启系统。

其他说明

如果启动停留在EXT4-fs (sda1): mounted filesystem without journal. Opts: (null)阶段,请直接回车即可,不影响使用。

包含以下功能:

1)状态
–|总览
–|防火墙
–|路由表
–|系统日志
–|内核日志
–|系统进程
–|实时信息
2)统计
–|Collectd
–|图表
3)系统
–|系统
–|管理权
–|软件包
–|启动项
–|计划任务
–|时间同步
–|LED配置
–|备份/升级
–|重启
4)服务
–|动态DDNS
–|UPNP
5)网络
–|接口
–|无线
–|DHCP/DNS
–|主机名
–|静态路由
–|诊断
–|防火墙
–|网络唤醒
–|QoS
6)磁盘应用
–|挂载点
–|磁盘信息
–|Aria2
–|FTP服务器
–|UPnP/AV媒体
–|miniDLNA
–|网络共享
–|Transmission
7)释放内存
8)重启

预览图

1.png

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

下载地址

vmdk文件:
下载地址:http://blog.ich8.com/file/106
SHA1:AA22BAA16EA712908CB497CE5DB0864F604F0B98

img文件:
下载地址:http://blog.ich8.com/file/107
SHA1:6F4B0A0F7249F8943D8767B4934967A11895FCE3
Packages打包:
下载地址:http://blog.ich8.com/file/108
SHA1:C38BDAF2DDF04FE547579CBEA7B62E1A0914BA57

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

OPENWRT安装wifidog

需要学会用ssh登录路由器用linux命令查看。
ps 命令查看当前系统运行的进程信息
free 命令查看内存使用和swap挂载情况
ls 查看目录和文件
cd 进入退出目录
vi 查看编辑配置文件

安装命令:

#opkg update
#opkg install nano


uci set network.lan.ipaddr=[lan ip]  

使用pppoe设置
Shell代码

uci set network.wan.proto=pppoe    //设置wan口类型为pppoe  
uci set network.wan.username=[上网帐户]  
uci set network.wan.password=[上网密码]    //这两行设置pppoe用户名和密码 

如果要挂在上级路由下面,就需要进行下面的设置
Shell代码

uci set network.wan.proto=none    //关掉wan  
uci set network.lan.gateway=[上级路由ip]    //网关指向上级路由  
uci set network.lan.dns=[上级路由ip]    //dns指向上级路由  
uci set dhcp.lan.ignore=1    //关掉lan的dhcp  

最后对无线网络进行配置
Shell代码

uci set wireless.@wifi-device[0].disabled=0    //打开无线  
uci set wireless.@wifi-device[0].txpower=17    //设置功率为17dbm 太高会烧无线模块  
uci set wireless.@wifi-device[0].channel=6    //设置无线信道为6  
uci set wireless.@wifi-iface[0].mode=ap    //设置无线模式为ap  
uci set wireless.@wifi-iface[0].ssid=[自己设置SSID]    //设置无线SSID  
uci set wireless.@wifi-iface[0].network=lan    //无线链接到lan上  
uci set wireless.@wifi-iface[0].encryption=psk2    //设置加密为WPA2-PSK  
uci set wireless.@wifi-iface[0].key=[密码]    //设置无线密码  

提交应用配置
Shell代码

uci commit    //应用  
/etc/init.d/network restart    //重启网络服务  

安装luci管理界面
Shell代码

opkg update // 更新软件列表  
opkg list-installed // 查看已安装软件  
opkg install luci // 安装LUCI  
opkg install luci-i18n-chinese // 支持中文  

luci-app-firewall - 0.10.0-1
luci-i18n-english - 0.10.0-1
luci-lib-core - 0.10.0-1
luci-lib-ipkg - 0.10.0-1
luci-lib-lmo - 0.10.0-1
luci-lib-nixio - 0.10.0-1
luci-lib-sys - 0.10.0-1
luci-lib-web - 0.10.0-1
luci-mod-admin-core - 0.10.0-1
luci-mod-admin-full - 0.10.0-1
luci-proto-core - 0.10.0-1
luci-proto-ppp - 0.10.0-1
luci-sgi-cgi - 0.10.0-1
luci-theme-base - 0.10.0-1
luci-theme-openwrt - 0.10.0-1

即可完成LUCI的安装。
输入以下命令开启支持web服务的uhttpd,并设置其为自启动:
Shell代码

/etc/init.d/uhttpd enable # 开机自启动  
/etc/init.d/uhttpd start # 启动uhttpd  
  • Wifidog
    你可以尝试执行以下命令安装Wifidog:

    opkg update # Optional
    opkg install wifidog

--sftp安装

opkg update
opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start

SSH工具:
1.WINSCP
2.putty中文版 中文的使用的难度相对低一点
3.熟练一些的用户推荐 SecureCRT
操作多台设备的时候,十分的方便。这个自行搜索安装吧~

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

wifidog 用户第一次访问网络流程图

通过wifidog实现用户上网强制认证后,用户第一次访问网络的流程大致如下:

1.用户通过浏览器访问某一网页。
2.wifidog重定向用户请求到认证服务器。
3.认证服务器返回登录认证页面给用户。
4.用户输入认证信息并提交。
5.认证通过后,服务器告知路由器放行。
6.用正常上网。

对应流程图如下:
1.jpg

本文章由 http://www.wifidog.pro/2015/01/20/wifidog%E6%B5%81%E7%A8%8B%E5%9B%BE.html整理编辑,转载请注明出处