Code:
ssh -d 8080 user@server.com
Hmm... notwithstanding the comment I made above, that line of code doesn't seem to work as expected. For some reason, my linode can't seem to find the correct application protocol to use once the connection has been tunneled over there. Might be a firewall or configuration issue. But even then, -d is an incorrect option (it's -D).
The following is from a working setup that I use on a different box. It uses both SSH tunneling and a lightweight proxy server to achieve the effect of a secure proxy. This is obviously more complicated than it needs to be, but it has the added benefit of having at my disposal tinyproxy's configuration options with detailed logging and access controls. For example, I can let a few other people use my secure proxy, but restrict what they use it for.
On the Linode,
1) Install tinyproxy (apt-get install tinyproxy) -- tinyproxy is very lightweight, so it won't burden your linode.
2) Make tinyproxy only listen to localhost (edit /etc/tinyproxy.conf) -- otherwise you have an open proxy that can be abused.
3) Restart tinyproxy (/etc/init.d/tinyproxy restart)
On the home computer,
4A)
Code:
ssh -L 8080:localhost:12345 user@server.com
8080 is the local port, and 12345 is the tinyproxy port on the linode. What this does is forward my home computer's local port 8080 to the linode's local port 12345, where tinyproxy is listening.
4B) If you're on Windoze, use Putty and go to Connection - SSH - Tunnels. Enter: Source port = 8080, Destination = localhost:12345. Click "Add" and connect to your server.
5) Make your web browser use 127.0.0.1:8080 as a proxy.
6) Enjoy your encrypted, uncensored internet!