I was introduced to the
Freedombox project
in 2010, when Eben Moglen presented his vision about serving the need
of non-technical people to keep their personal information private and
within the legal protection of their own homes. The idea is to give
people back the power over their network and machines, and return
Internet back to its intended peer-to-peer architecture. Instead of
depending on a central service, the Freedombox will give everyone
control over their own basic infrastructure.
I've intended to join the effort since then, but other tasks have
taken priority. But this summers nasty news about the misuse of trust
and privilege exercised by the "western" intelligence gathering
communities increased my eagerness to contribute to a point where I
actually started working on the project a while back.
The initial
Debian initiative based on the vision from Eben Moglen, is to
create a simple and cheap Debian based appliance that anyone can hook
up in their home and get access to secure and private services and
communication. The initial deployment platform have been the
Dreamplug,
which is a piece of hardware I do not own. So to be able to test what
the current Freedombox setup look like, I had to come up with a way to install
it on some hardware I do have access to. I have rewritten the
freedom-maker
image build framework to use .deb packages instead of only copying
setup into the boot images, and thanks to this rewrite I am able to
set up any machine supported by Debian Wheezy as a Freedombox, using
the previously mentioned deb (and a few support debs for packages
missing in Debian).
The current Freedombox setup consist of a set of bootstrapping
scripts
(freedombox-setup),
and a administrative web interface
(plinth + exmachina +
withsqlite), as well as a privacy enhancing proxy based on
privoxy
(freedombox-privoxy). There is also a web/javascript based XMPP
client (jwchat)
trying (unsuccessfully so far) to talk to the XMPP server
(ejabberd). The
web interface is pluggable, and the goal is to use it to enable OpenID
services, mesh network connectivity, use of TOR, etc, etc. Not much of
this is really working yet, see
the
project TODO for links to GIT repositories. Most of the code is
on github at the moment. The HTTP proxy is operational out of the
box, and the admin web interface can be used to add/remove plinth
users. I've not been able to do anything else with it so far, but
know there are several branches spread around github and other places
with lots of half baked features.
Anyway, if you want to have a look at the current state, the
following recipes should work to give you a test machine to poke
at.
Debian Wheezy amd64
- Fetch normal Debian Wheezy installation ISO.
- Boot from it, either as CD or USB stick.
Press [tab] on the boot prompt and add this as a boot argument
to the Debian installer:
url=http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat
- Answer the few language/region/password questions and pick disk to
install on.
- When the installation is finished and the machine have rebooted a
few times, your Freedombox is ready for testing.
Raspberry Pi Raspbian
- Fetch a Raspbian SD card image, create SD card.
- Boot from SD card, extend file system to fill the card completely.
Log in and add this to /etc/sources.list:
deb http://www.reinholdtsen.name/freedombox wheezy main
Run this as root:
wget -O - http://www.reinholdtsen.name/freedombox/BE1A583D.asc | \
apt-key add -
apt-get update
apt-get install freedombox-setup
/usr/lib/freedombox/setup
- Reboot into your freshly created Freedombox.
You can test it on other architectures too, but because the
freedombox-privoxy package is binary, it will only work as intended on
the architectures where I have had time to build the binary and put it
in my APT repository. But do not let this stop you. It is only a
short "apt-get source -b freedombox-privoxy" away. :)
Note that by default Freedombox is a DHCP server on the
192.168.1.0/24 subnet, so if this is your subnet be careful and turn
off the DHCP server by running "update-rc.d isc-dhcp-server
disable" as root.
Please let me know if this works for you, or if you have any
problems. We gather on the IRC channel
#freedombox on
irc.debian.org and the
project
mailing list.
Once you get your freedombox operational, you can visit
http://your-host-name:8001/ to see the state of the plint
welcome screen (dead end - do not be surprised if you are unable to
get past it), and next visit http://your-host-name:8001/help/
to look at the rest of plinth. The default user is 'admin' and the
default password is 'secret'.