Image of the glider from the Game of Life by John Conway
Skip to content

Anonymity and Freenode

In my last post, I mentioned how to stay anonymous on the web generally by using Tor. Here, I want to discuss how to use Tor specially with Freenode.

IRC channel ops are notorious for kicks and bans. Many reasons are called for, others are just plain silly. #okopipi on Undernet is notorious for klining you if you so much as sneeze (one of the reasons they were banned from Freenode- heavy kline abuse). Frankly, it gets old. Luckily, however, IRC klines at the channel level are based solely on nick and IP address/host. This has it's advantages and disadvantages. Both of which will be discussed here.

To connect to the hidden service that Freenode has, you will need a few things. First, obviously, Tor. Second, privoxy, as Tor depends on it, and thirdly, Irssi. Although you can most certainly connect to the Freenode hidden service using xChat, Gaim, or other IRC clients, Irssi is the client I use, and will be discussed here. The general principles will apply to most.

I am going to assume that you have access to an OpenSSH server, to which you have access remotely. If running Ubuntu, as you should be, installing Tor is easy. If you don't have them installed, make sure to also get screen and irssi:

sudo aptitude install tor irssi screen

All necessary dependencies will be resolved, and the daemons started. Now pull up a terminal and type:

screen torify irssi

You will have the default irssi screen staring you in the face waiting for a command. Normally at this point, you would type /connect or something similar. However, is not a hidden url, and thus will not take you to the hidden service. Because Tor is looking a localhost as a proxy, Freenode will tell you that you are banned from the server. The IP that Freenode will show, as it should, will be So, there must be another way to connect. There is, and you have to use the hidden service.

Currently, the url to the hidden service on Freenode is mejokbp2brhw4omd.onion. So, you could type that in your irssi prompt, and connect. However, that url, if you ask me, is somewhat a pain to type let alone recall. There is an easier way. First, detach the screen by typing ctrl+a d. Back in the terminal:

sudo vim /etc/tor/torrc

...and add mapaddress mejokbp2brhw4omd.onion anywhere in the file (I added it to the very top). Restart tor.

sudo /etc/init.d/tor restart

That IP address is a little easier to recall and type, so from here, reattach your screen with screen -r and now you can type /connect at the irssi prompt. However, this is still more of a pain than I would like. Luckily, irssi is the single most configurable IRC client out there. We can add a shortcut to point to that address. In the irssi client:

/server add -auto -network freenode 6667

Now, when pulling up irssi, you will automatically connect. If for any reason you get disconnected, /server freenode will connect you to the hidden service. If your nick is registered with NickServ and you need to identify, then something like this might be a bit more appropriate:

/server add -auto -network freenode 6667 (password) (nick)

Now just connect:

/server freenode

Now that you are connected, you can join channels as normal, and move about with ease. In a channel, run a /whois nick (substituting for your nick), and you will see something similar to i=aaron@gateway/tor/x-ef387c8e0932dd32. That last string being a random encrypted string of characters showing your exit Tor node. This is a hell of a lot better than or something else more revealing. Also, klines (kicks and bans) are much more difficult as they can now only be based on nick. As we all know, changing a nick is easy, and there is an infinite amount combinations. However, this doesn't mean that network staff can't handle the situation.

The only thing you may notice is lag. Because we are now connected to 3 Tor nodes plus a random Freenode server, we are going to have some latency problems. This is normal with Tor. Generally, I have an average of 5 seconds lag. This can be a little annoying, especially when in a meeting on a channel.

One problem. Now that you are connected via Tor to the Freenode hidden service, channels like to block Tor users because of abuse. I don't like this, because the honest people that just want to stay anonymous (the large majority of users), are punished because of the few who enjoy abuse and trolling. It was a shock to me to find #ubuntu and #ubuntuforums block tor users. Here, I wanted to join two channels to help where I could, and I was blocked.

Luckily, lilo came to my rescue, and I was issued a tor/regular cloak. Now, not only is Tor hiding my IP/host, but the cloak is changing my Tor host. I was able to join #ubuntu and #ubuntuforums just fine. However, you can get a cloak issued without using Tor, that will hide your IP/host. The best way to be issued a cloak is to donate to PDPC (after lilo issued me the cloak, I felt guilty, and donated :)).

There you go. You can now enjoy IRC anonymously. I should stress, as lilo did to me, if using Tor and definitely if issued a cloak, realize that you are now representing the best of Freenode. You should convey it as such. This means don't abuse the privilege, but more importantly, help others understand, especially channel ops, that anonymity can be very positive and enjoyable, and many wish to participate in such a fashion.

{ 2 } Comments