Freenode with Tor

The goal of this manual is to allow you to connect to the freenode IRC server using Tor. This could be because a user wishes to remain anonymous or is in an area where freenode is blocked. This is an intermediate level manual and assumes you are comfortable with using the terminal (or at minimum copy and pasting commands) and understand the basics of Tor.

Warnings

Warning: Connecting to freenode using these directions eliminates the primary benefit of Tor. You will not be anonymous. What you will be able to do is bypass censorship. Tor users will only appear anonymous to other users and identification is still possible. If anonymity is required users should consider other IRC networks.

Benefits

  • End to end encryption: via Tor Hidden Service preventing traffic from being observed by third-parties (e.g. ISPs, IT Staff) while on the wire.
  • IP spoofing: Tor will prevent freenode and users on the freenode network from determining the current IP address users are currently connecting from.
  • Censorship circumvention: Tor may allow users that are being censored to circumvent the censorship being placed on them.

Risks

  • Concern: The SASL plug-in XChat uses saves your password in clear-text in your XChat configuration folder.
    • Countermeasure: Encrypt your hard drive or home directory to prevent someone from accessing your password.
    • Countermeasure: Do not re-use the password for other programs.
    • Countermeasure: Change your password often or if you feel your identity has been compromised, abandon that identity.
  • Concern: To register and verify your nick on freenode you must provide an email address. This email address could potentially link the user to their nick.
    • Countermeasure: Do not use any email address tied to your identity when registering. Use tor and your browser to create a dummy email address for email verification.
  • Concern: To register and verify your nick on freenode you must initially connect on a non-anonymous connection potentially revealing information about you (e.g. IP address, geolocation data, ect.)
    • Countermeasure: Register their nick in a location as far away as possible from their normal location. Register in a public location (e.g. coffee shop, library, university). If possible register in an area with lots of tor users (e.g. a large city) because if you are the only tor user in your area it may be easier to track you down.
    • Countermeasure: Connect to freenode using their SSL service to prevent snooping during the registration process.
    • Countermeasure: Change your password once you return to your normal location in case it was compromised in public.

Required Software

  • Tor
  • xchat: IRC chat client.
  • OpenSSL and related libraries.

Optional Software

Prerequisites

Sample Account

For the example used here we will use a sample account with the following information:
  • Username: TrisquelwithTor
  • Password: GNULinuxLibre

Full Instructions

  • Install required and optional software:
    $ sudo apt-get -y install libcrypt-blowfish-perl libcrypt-dh-perl libcrypt-openssl-bignum-perl tor xchat xchat-otr
    
  • Download SASL authentication plug-in (GPL):
    $ cd ~/.xchat2
    $ wget http://lwsitu.com/xchat/cap_sasl_xchat.pl
    
  • (Recommended): Change connection timeout on SASL plugin:
    $ sed 's/my $AUTHENTICATION_TIMEOUT = 5;/my $AUTHENTICATION_TIMEOUT = 45;/g' ~/.xchat2/cap_sasl_xchat.pl -i
    
  • Open XChat and the Network list screen should display. Fill in the Nick name, User name, and Real name fields. Then select the FreeNode network and click Edit to configure the network settings.

TorIRC_01.png

  • Edit the server address to the IRC hidden service p4fsi4ockecnea7l.onion. Input the password for your registered freenode nick in the Server password field. Lastly, select select Character set "UTF-8 (Unicode). You may also select additional options such as auto-joining channels and automatic connection.

TorIRC_02.png

  • At the Network list select FreeNode and click "Connect"

TorIRC_03.png

  • In the input field enter the SASL information required:
    /SASL set FreeNode TrisquelwithTor GNULinuxLibre DH-BLOWFISH
    

TorIRC_04.png

  • Save the SASL information. This retains your SASL information so you do not have to enter it every time. (Optional)
    /SASL save
    

TorIRC_05.png

  • In the XChat preferences set the Proxy Server information to use tor with the following information
    Hostname: localhost
    Port: 9050
    Type: Socks5
    Use Proxy For: All Connections
    

TorIRC_06.png

  • At this point XChat may attempt to connect and experience a OpenSSL error. Restart XChat and connect to freenode and XChat will connect using Tor. You can verify that you are using Tor by running the command "whois" on your nick.

TorIRC_07.png

Additional Information

Revisions

03/18/2012 - 12:35
SirGrant
08/02/2012 - 08:55
Chris
08/13/2012 - 02:40
SirGrant
08/10/2013 - 12:32
amalmurali