2014年12月

DD-WRT刷机及wifidog配置等等总结

最开始想用openwrt,刷了一个,结果发现不会用,里面配置太复杂了,被wan lan搞晕了,一直无法联网,因为在公司路由器本来在一个局域网下,没办法请公司SA帮忙弄了哈,也没有搞定,换DDWRT吧,这个可是有中文界面的,顿觉亲了很多。

ddwrt确实方便很多了,不过一定要注意呀,因为我要用WIFIDOG,之前下了几个版本都没有wifidog的配置,好像可以自己装,没试过,因为最开始测试用的wiwiz,下载到路由器上以后,没法安装,最后直接下了dd-wrt.v24_nokaid_generic.bin这个版本的ddwrt,上面可以直接配置wifidog.org相当的方便。

wifidog认证服务用authpuppy.org,web服务配置(nginx)。

if (!-e $request_filename) {
    rewrite ^(.*) /index.php last;
}

ddwrt => services => hotspot

11.png

gateway id 这个很重要,认证服务需要这个。

服务器路径这个一定要注意哈,加/,这个最开始老是不对,研究了很久。发现原来路径里面少了一个/,导致无法访问到正确的认证接口,如果是路径的最后还要多加一个/哦。亲

认证服务配置

nodes页面里面加一个node,默认会有一个的啦。定义gw_id就是刚才ddwrt wifidog里面配置的那个。

然后去下载一个plugin,做验证的,apAuthLocalUserPlugin,就他了吧。安装以后里面可以配置,页面信息,注册等等。

现在客户端连接上你的WIFI,去测试下吧,应该可以了哦。亲。

下面说下自己开发wifidog服务端接口的问题。

我只实现了4个接口地址,不晓得其他的还有那些哈。E文看的不是很懂,需要的自己可以看http://dev.wifidog.org/wiki/doc/developer/WiFiDogProtocol_V1

/login 这个是连接的时候访问的登录接口 登录成功以后,返回一个302转向到http://gw_server:gw_port/wifidog/auth?token=你的token,这样子就可以了。至于是否需要用户名密码等等登录方法。看你自己咯

/auth 这个接口太重要,之前各种没法验证的原因都是因为没有访问到这个,路由器在刚才拿到login之后的token后,会再次访问这个接口,带上了一些其他参数如ip、MAC地址等等,当然也包括token,服务器端可以再次做验证,这个接口重要是的要返回给路由成功与否,结果如下:

Auth: Number

Number 如下:

0 - AUTH_DENIED - User firewall users are deleted and the user removed.
6 - AUTH_VALIDATION_FAILED - User email validation timeout has occured and user/firewall is deleted
1 - AUTH_ALLOWED - User was valid, add firewall rules if not present
5 - AUTH_VALIDATION - Permit user access to email to get validation email under default rules
-1 - AUTH_ERROR - An error occurred during the validation process

自己猜内容,我都是猜的。反正我返回的1,就对了。

/ping 这个接口很简单。返回结果内容包含Pong字符串就可以了。

/portal 哦。这个还是有点重要哦,是认证通过以后,路由器自动定向的页面,当然如果你需要返回到用户之前的页面,在/login接口的时候,路由器传入了一个url的地址,那个是用户真的想访问的地址哈。

好吧,打完收工,

本文章由 http://www.wifidog.pro/2014/12/22/DD-WRT%E5%88%B7%E6%9C%BA%E5%8F%8Awifidog%E9%85%8D%E7%BD%AE.html 整理编辑,转载请注明出处

如何用DD-WRT搭建一个开源无线热点网络 (2)

设置NoCatSplash解决方案
下面我将选择一个解决方案来和大家看一下如何设置无线热点网络,我将介绍如何设置NoCatSplash。
在进行配置之前,你需要创建一个网页(.html文件格式)来作为上网前的界面,你然后可以把它上传到路由器上或者托管在一个网站上。一个用户在连接上热点网络后,必须点击这个界面上的一个按钮(例如“我同意”之类)后,才能浏览网络。
使用类似如下的代码可以创建登录界面上的一个表格:

<p><b><font size="5">Welcome to $GatewayName!</font></b></p>
<p><b><font size="2">Read the following terms and conditions, and hit the I Agree to proceed.</font>   </b></p>
<p><font size="2">...</font></p>
<form name="login" method="post" action="http://192.168.1.1:5280/">
<input type="hidden" name="accept_terms" value="yes" /> 
<input type="hidden" name="redirect" value="$redirect">
<input type="hidden" name="mode_login">
<input type="submit" value="I Agree">
</form>

在用户通过点击“I Agree”按钮被认证后,你可以使用$redirect变量来发送给用户一个你选择的站点(而不是他们最初试图访问的URL)。
另一个可选的变量是$GatewayName,它在登录页面上显示网关名称的值。
现在你需要来配置这个热点网络的设置:
Gateway Name:网关名称,使用变量$GatewayName可以被显示在登录页面上;
Home Page:假如你有一个网站地址,可以输入进去。
Allowed Web Hosts:用户在点击按钮之前能够访问的域名。假如登录界面在一个网站上,你必须输入它的域名。
Document Root:登录表格(或登录页面)在你路由器上的哪个目录。假如你把登录页面托管在一个网站上,那么你可以忽略这个选项。
Splash URL:假如你的登录页面托管在一个网站上,输入它的地址;否则假如它是上传到路由器中的,则保持为空。
Exclude Ports:设定热点网络用户不可以使用的端口,通过分行来输入不同的端口号。
MAC White List:设置不受访问限制的计算机网卡的MAC地址。举个例子来说,你可以把你的无线网卡的MAC地址输入进去,那么你访问网络的时候就不会收到上面的端口限制。
Login Timeout:设置登录界面显示的频率。举个例子来说,你可以将其设定为86400秒,那么每隔24个小时,用户将会看到登录页面,必须再次点击“I Agree”按钮。
Route Only:当启用它后,你的路由器将不会支持网络地址转换(NAT)。除非你有一个严格路由的网络,保持默认设置(禁用)就可以了。

步骤五:配置其他功能
• 启用信息站点密码保护:默认情况下,当一个用户访问路由器的治理IP地址时,无需输入密码就可以访问一个显示路由器状态信息的页面,尽管这个信息不时非凡敏感,你还是应当阻止普通人可以访问它。到Administration(治理)标签中的Management设置中找到Web Access部分。
• 过滤SMTP通信:为了防止用户使用你的互联网连接发送垃圾邮件信息,你可以阻挡SMTP通信。
• 启用AP隔离:防止热点网络用户之间的互相通信(例如文件共享),可以保护那些忘记禁用共享的用户的数据安全。在Wireless标签中的高级设置中可以进行这个设置。
• 配置QoS:为了配置你的热点网络中的每一个人可以使用的带宽,你可以配置QoS。在NAT/QoS标签中的QoS子标签中找到QoS Setting部分。根据你使用的解决方案的不同,你还可以通过你的热点网络治理设置来实现这个控制。

结 论:
在这个文章中,我们讨论了如何利用开源社区的优势来搭建一个无线热点网络。你可以在一个简单的现成无线路由器使用第三方固件来替代购买一个商业无线热点网关。虽然需要花一点时间,冒一点风险,但是我们的解决方案却能为你省下不少银子。
在本文所提及的三种常用固件解决方案中,DD-WRT无疑是我们的最佳选择,可以帮助我们搭建属于我们自己的无线热点网络。

本文章由 http://www.wifidog.pro/2014/12/22/dd-wrt%E6%90%AD%E5%BB%BA%E6%97%A0%E7%BA%BF%E8%AE%A4%E8%AF%81%E7%83%AD%E7%82%B9-1.html整理编辑,转载请注明出处

如何用DD-WRT搭建一个开源无线热点网络 (2)

步骤一:获得一个支持DD-WRT的路由器
第一步是选择一些802.11g的无线路由器,诸如如下设备:
• Linksys WRT54G/GL/GS
• Buffalo WHR-G125和WHR-HP-G54
• 华硕WL-500G和WL-300G
你还可以从DD-WRT官方网站上查看完整的支持设备列表(http://www.dd-wrt.com/wiki/index.php/Supported_Devices),上面还有更多信息可供参考。
注重:你应该尽量避免选择只有2MB闪存的设备(诸如WRT54G/GS v5.0/6.0),因为在它们上面你只能运行DD-WRT的简化版。你还应该注重华硕WL-500G高级版只被v23 SP3或以后的版本所支持。

步骤二:获得DD-WRT固件
接下来,你需要下载这个固件,根据你正在使用的路由器和你想要的功能,从DD-WRT官方站点列表(http://www.dd-wrt.com/dd-wrtv2/downloads.php)中下载相应的固件。但是,在你开始浏览这个固件集合之前,你应该让自己了解固件命名和组织的含义。你将看到这个固件被组织为三个不同的部分:稳定版(stable)、候选发布版(release candidates)和测试版(beta)。从名字中你可以看出,稳定版可能是你最好的选择,它是经过具体测试的固件版本。

为了节省路由器资源和支持那些具有较小内存的路由器,每一个固件版本分成不同的版本,来控制其中支持功能的多少。大多数情况下,标准版(Standard Version)是最适合热点网络解决方案的,因为它具有除了非凡的VoIP和VPN之外的所有功能。

另外还有不同的固件类型:
• ASUS:为WL-300/500G预备的。
• Generic:为那些不需要自己版本和非凡需要的路由器而预备。
• Linksys specific:为那些名字以wrt开始的特定型号路由器而专门设计的固件版本。
• Motorola specific:只针对那些微型和迷你型文件版本,以moto标示。
小技巧:对于Linksys最初的固件版本,你必须使用mini版来升级;然后在升级到其他版本。当使用Web界面方法升级的话,你必须使用generic固件类型。
在浏览固件集合的时候,你会看到下列格式的文件名称:dd-wrt.vXX_set_type.bin。其中的XX代表固件版本,set定义固件功能集合(诸如micro或voip等,只对非标准的版本显示),而type则标示硬件类型(诸如ASUS或Generic)。
步骤三:使用DD-WRT固件刷新路由器
有两个基本的方法可以来刷新一个路由器:简单文件传输协议(TFTP),一个使用命令行界面来简单的传输文件的方法;和使用一个路由器的Web界面的固件更新功能。通过网页界面进行刷新非常简单,而且也被大多数路由器所支持。但是,假如你的设备是Buffalo的,你必须使用TFTP方式。
警告:
1、对于任何开源固件,很重要的一点是完全按照其指令和示例来进行刷新,因为任何一个错误都可能让你的路由器报废。
2、当然进行这些修改会让你丧失厂家的质保。
3、升级有风险,需谨慎。

因为具体的刷新过程可能根据路由器的厂家和型号不同而不同,你需要查看DD-WRT网站上的刷新指南(http://www.dd-wrt.com/wiki/index.php/Installation#Flashing)。

步骤四:建立无线热点网络解决方案
正如上面所提到的,DD-WRT整合了许多专门针对无线热点网络的独立开源项目到它的固件中,包括如下:
• Sputnik:整合了来自Sputnik的一个免费版/付费版的托管服务,来提供给用户认证和设备治理功能。尽管你可能需要对这个服务收费,相比其他解决方案,它更具用户友好性。
• Wifidog:被整合到固件中,为自由访问的无线热点提供高级的强制网络门户和内容治理功能。你必须使用它们的专有软件搭建一个外部服务器,这可能需要一些高级Web开发技术和知识。
• Chillispot:为免费或付费访问的无线热点网络提供网络用户认证和治理,但是需要一个外部的RADIUS服务器。
• NoCatSplash:仅仅提供一个简单的强制性网络门户功能和一些过滤功能,但是对于那些自由访问的无线热点网络来说它是非常优秀的。假如你再有些网页开发经验的话就更完美了,这样你可以创建自己的门户页面。其默认自带的页面比较简单。
现在你已经选择了一个解决方案,接下来再看一下设置它的基本步骤(以v23 SP2为例):
1、使用路由器的IP地址(默认是192.168.1.1)登录到网页界面。
2、点击Services(服务)标签。
3、输入路由器的username and password(用户名和口令)(默认是root和admin)到对话框中。
4、点击Hotspot(热点网络)。
5、启用其中一个热点网络解决方案,配置其设置,最后点击保存设置按钮。
尽管我们不会讨论如何配置每一个解决方案,但是你可以从其官方网站上查看相应帮助。

本文章由 http://www.wifidog.pro/2014/12/22/DD-WRT%E6%90%AD%E5%BB%BA%E6%97%A0%E7%BA%BF%E8%AE%A4%E8%AF%81%E7%83%AD%E7%82%B9.html整理编辑,转载请注明出处

如何用DD-WRT搭建一个开源无线热点网络 (1)

为什么要花费大批的银子来购买一个无线热点网关呢?借助于闻名的开源路由器固件DD-WRT和一个便宜的路由器,你完全可以DIY一个自己的无线热点网关。
假如你曾经尝试搭建一个无线热点网络,你可能已经发现,你不仅仅需要一个宽带互联网连接、无线路由器或AP。现成的路由器和AP们通常不提供“强制网络门户(captive portal)”功能,而无论是处于认证用户考虑,还是简单的让他们知道使用这个免费的无线连接需要感谢谁,这个功能都是需要的。而且现成的普通路由器一般也不提供诸如计费支持、带宽限制和用户隔离等功能。为了获得热点所特有的功能和性能,你必须通常参照一个热点网关来选择自己的设备。
假如你已经意识到你需要一个热点网关来搭建一个无线热点,你可能不知道在这个领域中的开源项目所能带给你的巨大好处。下面我们就看一下相关的开源资源,以及如何通过一个简单的配置示例来实现这个过程。

正反两面看固件更换
许多无线路由器是基于开源操作系统和工具的,这给企业开发者打开了一扇大门,让他们可以进行一些小的优化或修改,还可以更换整个固件。这些备选的路由器固件通常提供一些便宜的SOHO路由器所不提供的功能,其中包括诸如强制网络门户和带宽限制等热点网络功能。
无论你是在一个公共场所(诸如饭店、商店或咖啡店)还是在一个办公大楼(为访问者、顾问和销售人员)搭建无线网络访问,开源固件都为你的热点网络需求提供了一个中备选解决方案。在你投入建无线热点网络之前,你应该对它的优点和所带来的影响有一个全面的熟悉。

更换路由器固件的优缺点:
正面 反面
省钱 丧失厂家质保
具有企业功能 缺乏技术支持
可定制化 设置比较复杂
省钱是其中最大的好处之一。你可以花200-300左右买一个简单的路由器,然后将其升级成免费的固件,来获得那些需要花费上千块钱的“真正”的热点网络网关的类似功能。
此外,第三方固件通常可以让你使用那些企业级设备才具有的功能,诸如虚拟局域网(VLAN)、虚拟/多个SSID、VPN服务器、网桥和质量服务(QoS)功能等。假如你了解编程和网络的话,你还能够对路由器的功能进行定制化,实现开源固件本身所提供功能之外的功能。
再来说一下负面的影响,使用第三方固件肯定会让你失去厂家所提供的路由器质量保证。因此假如你碰到问题的话,你不能联系你的产品厂商来寻求帮助或产品更换。而且假若你对电子设备的工作原理没有清醒的熟悉的话,其安装设置可能是一件比较复杂的事情,至少要比使用那些专门针对热点网络所设计的现成热点网关复杂的多。
幸运的是,对于那些比较流行的备选开源固件,例如本文中我们将要使用的,往往一些比较活跃的用户交流方式,例如wiki、论坛和其他一些方式,可以让你在碰到问题的时候寻求解决办法。但是假如你是哪种一旦碰到问题就需要别人帮助的人,那么更换路由器固件的做法可能不适合你。

了解开源固件项目
目前有三个比较受认可的开源固件项目提供热点网络功能:
• DD-WRT:提供许多固件版本来支持不同的路由器。在增加新的普通功能的同时,这个开源项目整合了专门针对热点网络的功能。
• Sveasoft:也提供多个固件版本,包含仅支持Linksys WRT54G/GS路由器的免费公众版和支持更多路由器的高级版。它包含了热点网络所需要的功能,但是需要使用者支付每年20美元的订阅费。
• OpenWRT:和大多数其他固件的更换所不同的是,使用它建立一个热点网络功能和基于Web的图形化界面,需要你具备高级的技术水平和更多的安装步骤。
还有许多专门为热点网络解决方案而开发的开源项目,其中包括如下项目:
• ChilliSpot
• Wifidog
• NoCat
• Sputnik
• CoovaAP

安装DD-WRT固件以供热点网络使用
我选择了使用DD-WRT固件,因为它是一个成熟、功能丰富而且提供多种热点网络解决方案的替代固件。通过下面的步骤,你将可以了解实现一个公众热点网络解决方案的安装和配置DD-WRT的过程。

本文章由 http://www.wifidog.pro/2014/12/22/DD-WRT-%E6%90%AD%E5%BB%BA%E8%AE%A4%E8%AF%81%E7%83%AD%E7%82%B9.html 整理编辑,转载请注明出处