April 13, 2009

Many governments now employ 'internet filters' in order to censor the content which their citizens receive whilst browsing. As expected, China does this, and more suprisingly so does Thailand. Much more unexpectedly, so do the UK and Australia, as well as Denmark, and a host of other countries that should know better.

Whilst I can see the need for secrecy and censorship in certain very marginal cases, censorship is in general a bad idea, and this particular form of censorship is ridiculous and arbitrary. Much better is an educated citizenry who are free to decide their own morality and life choices. The Australian government for example has, at the request of some fringe nut, banned access to an anti-abortion site, and a site that has published a list of the sites censored by the Danish government, and also images of the band Hanson, and the website of a Queensland dentist (say what?). The UK government restricted access to a Wikipedia page recently because of a picture that some unaccountable, hypersensitive, parent run NGO found contained an objectionable image. The image was a low resolution scan of an album cover from the 1970s by the rock band The Scorpions. The premise for these bans (child pornography) makes no sense at all since the filters will have no effect at all against the perpetrators and those types of crimes are much better combatted at the source than by censoring the public who are largely uninterested in looking at such sites anyway. In other words, the filters are 100% political props and 0% useful in preventing crimes against children.

The good thing about all of this is that if you don't want the government deciding what you can and can not see on the web, it's extremely easy to route around, which is another reason why they shouldn't even bother: people will just find ways to route around their stupid filters anyway. In order to use one simple method of routing around government web filters you will need to do three things:

  • Get a unix-based server of some sort, hosted in a country where they don't do this type of content-based filtering, such as the United States which has freedom-of-speech laws.
  • Run this simple command on your local machine: ssh -D 8080 -f -C -q -N SERVERIP where SERVERIP is the IP address of your server.
  • Set your browser's proxy to point to a socks 5 proxy at localhost:8080

Getting a unix-based server is extremely easy these days thanks to the abundance of VPSes or Virtual Private Servers. The company I use to host my email and websites is called vpsland and they offer a machine running GNU/Linux for about $15 US per month. I suggest creating a user on your new machine and setting up an ssh-key so that you won't have to enter your password every time you start up your proxy. You can learn the ip address of your new server by typing 'ifconfig' after ssh'ing in to it.

Note that this means that all of your web traffic will now appear to come from the server, not from your local machine. Some geographically sensitive sites will now assume that you are browsing from where your server is located. For example, my server is located in Atlanta, USA, so if I ran a proxy like this it would appear to websites that I was browsing from there, not from here in the UK.

"Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin

Need software development advice? Book a call with me.