使用 Wifidog 的无线门户
在大多数主要城市拥有 Wi-Fi 团体已变得司空见惯。“无线社区”运动已遍及北美、欧洲,并扩展到拉丁美洲和亚洲。世界各地的黑客都无法将他们的手从低成本、易于扩展的硬件上移开。一些 Wi-Fi 团体聚在一起分享技术信息和战争驾驶数据,而其他团体则致力于建立特别 mesh 网络或在他们最喜欢的聚会场所创建免费热点的项目。
两年前,在一个类似于许多其他城市发生的事件中,一群蒙特利尔技术爱好者聚在一起,决定开始为自己和其他蒙特利尔人创建免费热点。人们在通过当地的开源渠道听到这个团体后加入了他们。他们自称为 Ile Sans Fil(法语意为“无线岛”——是的,蒙特利尔是一个岛屿),他们现在是世界上较为活跃的已建立 Wi-Fi 团体之一,拥有 25-35 名活跃志愿者、50 个热点和 6,000 名用户。他们目前的扩张速度是每月 4-8 个热点和 1,000 名用户。根据用户数量,这个志愿者团体是该地区运营的七家 Wi-Fi 公司中最成功的。
Ile Sans Fil (ISF, www.ilesansfil.org) 通过使用一种流行的开源强制门户 NoCat,能够快速启动该项目,NoCat 在仅允许来自用户名和密码列表中的用户通过方面做得很好。强制门户是一个动态防火墙,其中所有流量都被阻止,直到用户登录(或显示免责声明页面并同意服务条款)。登录页面通过拦截 http 流量并在其位置显示一个表单直到用户被验证来工作。一旦登录,某些或所有端口正常工作。本质上,所有强制门户身份验证解决方案都容易受到 MAC 地址欺骗的影响,因此,它们并非万无一失。但是,它们具有巨大的优势,即除了 Web 浏览器之外,无需任何软件即可执行登录。
但是 NoCat 并不完全符合他们的需求。NoCat 网关是一个 Perl 脚本,它依赖于几个大型软件包。它太大而无法在大多数嵌入式硬件上运行,因此选择是在新机器(可能是小型但昂贵的 Soekris 板)上运行它,还是使用从壁橱和存储区挖出来的旧台式机。虽然成本低廉,但结果是一个开放的无线接入点,连接到 Pentium I,再连接到调制解调器和 WAP(无线接入点)。即使对于最初的三个或四个热点,维护一个由异构二手 Pentium I 在公共场所运行的网络也被证明是一场支持噩梦。NoCat 中央服务器也缺乏任何网络监控功能,很难从其日志中获得任何有用的统计数据,并且它没有任何机制为每个热点提供不同的内容。最后,为了保持用户的连接处于活动状态,NoCat 使用了第二个浏览器窗口,该窗口使用 JavaScript 每五分钟 ping 一次网关。这意味着无法打开多个窗口的设备(例如 PDA)或没有(或禁用)JavaScript 支持的设备被迫不断重新验证。
幸运的是,两年前,一款运行 Linux 的无线路由器(Linksys WRT54G)上市了。它没有宣传为运行 Linux,但 Seattle Wireless 团体发现了这一点,黑客攻击开始了。ISF 最终有了一个廉价的嵌入式平台可以迁移到。他们选择了 OpenWRT 作为发行版,但 NoCat 及其依赖项就是无法安装。
因此,Wi-Fi Guard Dog 强制门户系统诞生了。与 NoCat 一样,Wifidog (www.wifidog.org) 由两部分组成:每个热点运行一个客户端进程的网关和一个基于 Web 的中央服务器(图 1)。
Wifidog 网关是用 C 语言编写的,除了内核之外没有任何依赖项。一个可用的网关安装包在 i386 平台上可以小于 15Kb。它在运行 OpenWrt 的基于 MIPS 的 WRT54G 上运行良好。Wifidog 中央服务器是用 PHP 编写的,处理身份验证和管理网络。系统通过来自网关的心跳检测知道哪些热点已启动。
网关保持小巧和简单,通过将所有密码学委托给用户的 Web 浏览器和身份验证服务器。令牌由身份验证服务器在成功身份验证后生成,然后发送到网关。然后,网关使用身份验证服务器验证令牌。令牌会定期重新验证,以防它们过期。
它有多安全?网关永远不会看到密码。令牌本身在网关和身份验证服务器之间以明文传输。加密它非常简单,但这被认为是没必要的臃肿,考虑到它是一次性使用的令牌,并且要对其进行中间人攻击,攻击者需要位于网关和身份验证服务器之间,在这种情况下,攻击者已经具有 Internet 访问权限,这使得整个攻击毫无意义。一个更实际的攻击是 MAC 地址欺骗,这对于在开放 Wi-Fi 网络上运行的任何强制门户软件来说都是天生容易做到的。唯一的解决方案是使用 WPA。不幸的是,技术支持的现实使得要求这样做完全不切实际,直到每个平台都有一个中心位置来输入必要的信息(更不用说许多驱动程序仍然不支持它)。一旦对标准的支持得到改善,团队最终将转向 802.11i。
当然,Wifidog 身份验证服务器处理用户身份验证(目前,插件存在用于内部身份验证和身份验证到远程 radius 数据库,包括记录每个客户端传输的流量)。但是,身份验证服务器的功能远不止于此。它处理用户注册、实时网络监控、关于网络使用模式和热点普及程度的广泛统计信息。
借助 Wifidog,志愿者团体可以轻松地继续部署热点,同时最大限度地减少花在支持上的时间。
然而,尽管从技术上讲,这是一个成功的项目,创建了另一个开源强制门户解决方案,但这只是故事的一半。从一开始,ISF 就将建立免费热点视为仅仅是第一步。志愿者现在拥有了将笔记本电脑用户从他们的地下室和家庭办公室吸引到公共场所的工具。该项目的下一步是利用热点网络来帮助创造当地社区意识。
实现这一目标的一种方法是通过推广本地内容。Wifidog 系统的一个独特功能是其对特定位置内容的广泛支持。从 Laika 咖啡馆连接的用户看到的启动页面和门户页面与从 Atwater 图书馆连接的用户看到的完全不同。起初,本地内容的唯一形式是与热点绑定的 HTML 和 RSS 提要。幸运的是,一些热点有来自其网站的自己的 RSS 提要。
通过与当地的新媒体艺术团体合作,本地内容功能最近得到了扩展,因此现在有一个系统还可以管理来自 Flickr 的文本、图像、音频、视频和照片(通过使用 Flickr API)。所有这些内容都可以跨网络发送,也可以仅发送到选定的热点门户。广泛的日志记录功能还允许该团体仅向用户显示内容一次,每个热点一次,每天一次。这当然为这些艺术家提供了一些有趣且独特的基于位置的艺术可能性。
另一个功能是能够查看还有谁在热点上在线(本地或远程),如果他们填写了个人资料,则可以了解更多关于他们的信息。个人资料是一个可选功能,不仅仅是因为该团体不想打扰其用户。用户的地理位置邻近(在同一热点中)引发了某些安全和隐私问题,这些问题在大多数社交网络软件实例中不存在。

图 2. 开发人员很高兴看到 Wifidog 在全球范围内被采用。从左到右:Philippe April、Pascal Leclerc、Alexandre Carmel-Veilleux、François Proulx 和 Benoit Grégoire。未显示:Mina Naguib。
对于开发人员来说,过去的这个夏天是令人欣慰的,因为他们的项目吸引了世界各地许多无线团体的目光。采用它的团体包括 WirelessLondon、纽约市无线和巴黎无线。WirelessLondon 最近开始将 Wifidog 网关与其现有的中央服务器一起使用。该团体的成员和最近 O'Reilly 书籍 Mapping Hacks 的合著者 Jo Walsh 写道:“我们发现它很容易根据我们的需求进行定制;我们在半小时内调整了我们的门户服务以适应它。Wifidog 周围存在一个活跃且投入的开发社区令人放心;我们知道它不会消失,并且社区非常优雅地接受了我们的建议。”
NYCwireless 的执行董事 Dana Spiegel 谈到他的组织即将进行的强制门户试用时说:“NYCwireless 正在一个试点项目中试用该软件,并希望在夏季结束前部署它,以帮助当地热点展示当地人才、多媒体共享、艺术和学生作品。[Wifidog] 是为社区无线网络提供有用解决方案的伟大协作努力。它能够创建具有面向社区和社区创建内容的受支持无线网络,并且真正展示了这些网络和团体如何为当地社区提供重要的服务。”
该团体对成功并不感到惊讶。该团体的首席开发人员之一 Benoit Grégoire 说:“我们将 Wifidog 设计为强制门户系统的瑞士军刀。我们希望它能够充分满足大多数无线社区团体的需求,以至于他们更愿意帮助其开发,而不是自行开发。现在我们正在看到这一目标的一些实现。” Wi-Fi 社区团体的世界开始同意他们的观点。剩下的问题是,其他团体将如何在他们自己的网络和他们自己的社区中使用 Wifidog。从寻找使该软件在 mesh 网络中工作(并有意义)的方法,到开发 GIS 应用程序,再到向网络添加聊天功能,对于最初是一个基础设施项目的项目来说,有很多有希望的社区和社会应用程序。
除了有趣的技术可能性之外,对 Wifidog 开发人员来说,似乎最能激励他们的是有机会影响他们同胞的生活。到 2005 年 12 月,仅在蒙特利尔就预计有 10,000 名用户,他们的代码很有可能被邻居、同事和朋友使用。这,加上频繁的新闻报道以及与他们通常不会遇到的人(例如艺术家和社区活动家)合作的机会,意味着团队的精力和热情在可预见的未来应该保持高涨。
Michael Lenczner 是 Ile Sans Fil 的志愿者。他曾在加拿大和国外从事社区信息学工作八年。他的博客地址是 mtl3p.ilesansfil.org。