Increasing anonymity with Tor

August
20th,
2010

Terrified I had to notice, that some of you don’t know Tor!? Here is a little intro, so you don’t have to die stupid.

When you for example request a website, the server that provides this site knows your IP address, with this address it’s able to detect your real location. It also get to know your UserAgent and a lot of other things like that. So the other site of your connection knows quite a lot of you, which system you’re working on, which browser you use, where (which website) do you come from and so on..
But is it essential to let the world know so much about you!? Of course not! By the way, think about the security issue ;)

So what to do!? One option is not to use the internet, only connect to servers you trust. But the better solution is to use Tor! Tor is a software to get anonymous network connection. It works like a big proxy. All around the world are Tor-server. When you try to connect to a webserver you won’t do it directly, but you will connect to a Tor access-node, this node is connecting further nodes, until an exit-node is reached. This exit-node will now send your initial request to the webserver, wait for a response and send this response on a way through the Tor-network back to your machine. The connections between the Tor nodes are encrypted and randomly chosen, so nobody is able to find the way your requests took through the Tor nodes. This process is called onion routing and is much more complicated than I described here, but it’s to much to talk about in detail.

Setting up Tor

The setup is very easy. Just add the Tor repositories to your sources.list:

deb http://deb.torproject.org/torproject.org DISTRIBUTION main
# for more actual updates (always be careful with experimental) use:
deb http://deb.torproject.org/torproject.org experimental-DISTRIBUTION main

I for example added the following to my /etc/apt/sources.list.d/3rdparty.list :

If you now start Tor with /etc/init.d/tor start it is listening on 127.0.0.1:9050 .
You also need a small proxy like privoxy:

aptitude install privoxy

It’s configuration is very easy, just tell privoxy to send the packages to Tor with the following in /etc/privoxy/config :

forward-socks4a / localhost:9050 .

The rest of this file should be configured correctly.

That’s it! Everything that now reaches your proxy is finding its anonymous way through the Tor-network.

Configuring client software

Now you have to force your software to use the proxy. The most important client software is probably your browser. For example in firefox (or iceweasel) you find the settings in Edit->Preferences->Advanced->Network->Settings and check Manual proxy configuration. Your proxy is 127.0.0.1 (or rather localhost) on port 8118 .
Now your more anonymous, just ask a website where you come from. (at the moment I’m using an exit node from Russian Federation and the webserver recognizes me as Windows 7 user with Firefox 3.6 while using a sidux and iceweasel 3.5.11). Here you can verify that you Tor configuration is working.
There are also some AddOns for firefox, that makes live easier. For example Torbutton or FoxyProxy. With it you can enable or disable the usage of Tor with a single mouse click.

But Tor is not only designed for browsers. You can configure a lot of software to go through Tor, for example gajim in Edit->Accounts->Your Account->Connection, or in opera with Settings->Preferences->Advanced->Network->Proxy Servers…. Nearly every thing that is able to connect the internet may be able to use your proxy.
You can also activate the usage of your proxy by default by including the following line in your .bashrc or .zshrc or what ever:

export HTTP_PROXY=127.0.0.1:8118

Problems and imperfections

You have to know that the encryption between the Tor nodes doesn’t mean your request is fully encrypted. The connection between exit-node and webserver isn’t encrypted by default. This part of your connection is just encrypted if your request is encrypted, for example if you use SSL (https) in your browser. Otherwise the exit-node can read your data.
So it is possible that bad people or evil governments may provide untold thousands of exit-nodes, so they can read a lot of traffic of people that want to be anonymous!
Another thing you may dislike is the speed. Your traffic is passing a lot of additional nodes, so of course your speed decreases. So you have to balance between anonymity and speed. I think the slow down isn’t that hard, it’s acceptable for me. Choose by your own…

Conclusion

Tor is a very nice project, for further reading you may take a look on the projects website.
If you hold a server that is contactable for the public you should think about providing an onion node on it! It’s very easy, but you should know about legal stuff.