AHAMesh
The purpose of this project is to create everything needed to deploy a wireless(802.11) mesh network with the Raspberry Pi and use a suite of software that lends itself to fighting censorship by redundantly caching requested content near locations where they are requested and employing routing that makes traffic analysis more difficult.
The basic components of this projects are: 1. Raspberry Pi with dual Wifi Adapters 2. The GNUnet Filesharing Protocol 3. The Freenet Filesharing Protocol 4. The CCNx protocol
Network Topology
It's worth it to take a moment to explain the intended topology of the network this system is intended to support. The idea is to provide a wireless mesh network that allows communication between trusted friends using GNUnet. The Friend-to-Friend network that GNUnet forms does not necessarily have the same topology of the wireless network. For example, your node may connect to your neighbor Bob, but you do not publish or share any information with Bob - the information is encrypted, sent over Bob's node and delivered to your real friend Tom, who is connected on the wireless mesh network.
GNUNet Configuration for a Friend to Friend Network
This tutorial assumes that you have downloaded the latest version of GNUnet and compiled it from source. There are several data storage options for GNUnet, however for these instructions I'm assuming that you are using MySQL.
First and foremost, GNUnet will be running as a service, so it's important to create the appropriate users and groups.
As root, run the following: {{{ groupadd gnunetdns groupadd gnunet useradd gnunet }}} You'll be using the gnunet account to run the gnunet service. This makes good security sense.