One easy way to do much of this (Captive Portal, lower P2P priority,
etc) is to just use pfSense. If you load something like dd-wrt on a
Linksys, then you can have SSIDs with different VLANs, and that will
allow you to prioritize accordingly on your router/firewall out.
I'm curious how you do the 10 pass thing. Perhaps there is something on
SourceForge already that's similar.
> I've seen the page of recommendations on the wiki -
> http://coworking.pbwiki.com/WirelessNetworkRecommendations - and
> there's a lot of good info. But I'm curious if any of you space owners
> doing something like this already? If so, what's your setup?
That URL mentions pfSense, which is the "best" firewall you can get for
the money (assuming you have a piece of hardware lying around that you
can use). pfSense also has an ntop plugin, which will allow you to see
how much of the network is being used for garbage, like torrents, P2P,
Kazaa, etc.
So now, the wireless network[2] is powered by two standard Linksys
routers running OpenWRT[3] and the WifiDog gateway. Instead of using
the standard WifiDog authentication server (which was a bit overkill
for what we needed), I wrote a WordPress plugin that implements the
WifiDog authentication protocol[4]. "Authentication" consists of
agreeing to the TOS, and typing in the shared wifi password, which is
still written up on the whiteboard. You can see the login page
here[5]. Right now the plugin is rather crudely written, and doesn't
capture any of the interesting data WifiDog makes available. We've
actually been having some problem with Wifidog lately, so we've had to
turn it off, but I am planning to dig into that over the next couple
of weeks. I'm fairly certain it's because we're running OpenWRT
Kamikaze instead of the more tested White Russian version.
Other plans for the WordPress plugin include expanding the
"authentication" so that users can actually login with a WordPress
account if they have one, or fill out a simple form which asks for
their name and reason why their using the space (regular drop-in, a
specific event, etc). The idea is to gather a little more data about
who is using the space, but without making it a huge barrier. Wifidog
also provides data to build graphs of how much bandwidth each
individual machine is using, though I don't have immediate plans to
build that into the WordPress plugin. As far as I know, WifiDog does
*not* give you any data about specific protocols being used, so you
can't identify BitTorrent, etc. You'd need something like pfSense for
that. There is talk of a future version of WifiDog having the ability
to throttle bandwidth for specific users. If it ever becomes a
problem, we might using something like that to give paying residents
preferential bandwidth over free drop-ins.
The code for the WordPress plugin is currently up on github[6], and
will eventually be moved to the WordPress plugin directory[7] once I
get all of the CS specific stuff out of it. Even if the plugin itself
isn't useful to you, it should at least demonstrate how easy it is to
implement a custom WifiDog authentication server for any platform you
want.
[0]: http://wifidog.org/
[1]: http://citizenspace.us/policy/terms/
[2]: http://citizenspace.pbwiki.com/Network (mostly up to date)
[3]: http://openwrt.org/
[4]: http://dev.wifidog.org/wiki/doc/developer/WiFiDogProtocol_V1
[5]: http://citizenspace.us/wordpress/wifidog/login
[6]: http://github.com/willnorris/cs-wifidog/
[7]: http://wordpress.org/extend/plugins/wifidog/