Friday, November 30, 2007

Circumventing restrictive firewalls using SSH for fun and profit

I occasionally need to find a way to route network traffic from my machine through another machine in order to circumvent a draconian firewall or a network resource on a private machine. I order to get started you'll need a shell account on the remote computer. This could be as simple as signing up for a free ssh account from a site like those listed here. You could also setup an SSH server like copSSH on your Windows machine if you don't have access to a Linux machine somewhere and don't want to be restricted by the restrictions placed on most free SSH accounts.

Once you have ssh access to the remote machine then you can fire up Putty. Enter in the hostname in the hostname field and then in the Connection->SSH->Tunnels configuration panel put 8080 in the "Source Port" box, select the Dynamic option, and click "Add". Click "Open" and then login to the remote host like normal.
If you happen to be on a machine that has openSSH installed, then you can just type "ssh -D <remote hostname>" to acheive the same effect.

After the connection has been established you should be able to set any of your internet based programs that can use a SOCKS proxy to use the address "localhost:8080" as a proxy server. All of your data will then be automagically rerouted through an encrypted connection between the two computers and appear to be originating from the remote host instead of your local machine. Some of the programs that work well with this method are Pidgin, Firefox, and bit torrent clients like Azureus.

No comments:

 

Blogger Template by Blogcrowds