Running a Tor node

I’ve been running a Tor relay for one month now, serving about 5 Gb (up/down) of my (unfortunately hard-) limited bandwidth to help out Tor users all over the world. Given the recent developments in the middle-east (#Egypt, #Libya, #Yemen) the need for unfiltered internet access has become a vital issue. Protests are organized using Facebook, Twitter and other social media tools. Traditional media are turning to Youtube for unfiltered imagery of what is really happening.

I’m going to keep this post as short as possible, trying to convince you how easy it is to run a Tor relay and how necessary it is.

Tor? What is this man rambling about? Read on …

Tor? What is this? What’s a ‘node’ ?How can I help by running a ‘node’?

  • First thing: TOR stands for The Onion Router, and has nothing to do with Bittorrent. TOR is a network to offer people unsurveillanced internet, Bittorrent is a protocol to download big files in a distributed way.
  • TOR protects people by bouncing their communications around a distributed network of relays run by volunteers all around the world: it prevents somebody watching Internet connections from learning what sites people visit, and it prevents visited sites from learning any physical location.
  • So in Layman’s terms: it’s a piece of software that provides anonymity online.
  • A node is one element in this distributed system: traffic that goes through the network gets routed through these nodes. The more nodes, the more bandwidth, the more people can use TOR. These nodes have to be spread around the world, to ensure there is no single point of failure, and to make the network available at decent speeds everywhere.

I want to use TOR first before I decide to contribute my bandwidth to it.

  • You can download handy bundles for any operating system on the Tor Download Page
  • There are TOR extensions for all the major browsers.

Okay, I want to help out and run a node myself

  • You’re awesome.
  • You can run three kinds of nodes:
    • Exit node: This is where TOR traffic resurfaces on the internet again after being bounced around internally. You’ll need a fairly decent amount of resources for this, and you’ve got to be prepared to deal with complaints and abuse e-mails. Everyone can use the TOR network, and some people use it for malicious stuff (defacing wikipedia, hacking, …). I ran an Exit node for a week on my connection, and it resulted in getting my IP address blocked on practicly all IRC servers, on Wikipedia, on Google, … So the bottom line is: run this on a dedicated machine you own, but most certainly not your home connection. More info here.
    • Relay node: This is an internal TOR node where traffic gets routed through. This is what I’m running right now. It’s incredibly easy to set up on windows, using the Vidalia GUI: see this page. On Linux, you can run it as a handy service.
    • Bridge: If you don’t want your machine listed as a relay node, you can also provide a Bridge to the tor network. Some ISP’s block entry points to the TOR network (they can do this because the Relays get publicly listed). By providing a Bridge node, you can help out people making the initial connect to the network.
  • Keep in mind that the bandwidth TOR uses is symmetrical in the up/down sense: you’re routing traffic through your system, so you’re downloading and uploading the traffic as it comes through.
  • Tor comes with very configurable data limits. You can set your max/up download at all times, and use a hibernation schedule when a certain amount of bandwidth was used.
  • You do not know what data you’re routing at any moment. Yes, it can be child porn. But it might as well be critical information about people getting shot in the head for disagreeing with their government. Your choice.

Just do it, okay? :)