
Originally Posted by
ninja9578
Most websites/downloads don't go through the hassle of SSL encryption. If you're using Limewire, the ISP can see and log whatever you're downloading.
Exactly,
which is why you setup your own encrypted proxy
instructions assume Debian based linux distro (inc. Ubuntu)
1) Personal Proxy Server
Rent a shell account on a server somewhere (can be in another country if you're really paranoid)
Most good server renting companies will offer fixed bandwidth tiers, with unlimited usage
Eg. http://www.positive-internet.com/zhosting.html
that's £10 / month
(you can team up with a few people to cut the cost further)
just as an example, lets say your rented server is located at
server123.rent-a-shell.com
and you can log onto it, using username tony
will ssh into your server
2) Port Forwarding
Lets forward outgoing traffic, from your machine, on port 3333 to your new server
put this in with the other startup scripts in /etc/init.d/
so it'll execute automatically when you log in
Just for clarity,
all connections made on your machine to port 3333 will be piped (fully encrypted) via SSH to the server
The server will then "execute" the communication, and pipe back (fully encrypted) via SSH the responses to your machine
3a) Using the proxy
Most network-centric apps have native support for proxies
web browsers do, as do most good email clients and torrent clients
edit your global network settings, and specify a socks5 proxy
proxy address: localhost:3333
(remember, all traffic that hits your machine on port 3333 will be piped through to the server)
Don't alter per-app settings
edit your global system wide network settings
now all apps that support proxying will proxy
3b) Using the proxy (part 2)
however, some apps have no native support for proxying
this is where a wrapper library is needed
Install tsocks
Code:
sudo apt-get install tsocks
tsocks is a transparent network forwarder
(similar in operation to wine, or pulseaudio in how it overloads core OS functions)
configure tsocks to forward all connections to localhost:3333
Code:
sudo gedit /etc/tsocks.conf
alter tsocks config to match
Code:
server = localhost
server_port = 3333
To proxy through the server with an app that doesn't natively support proxying, call the app with the tsocks library
as I said, similar to wine or pulseaudio in the way it intercepts raw system calls
Visual Example:
You have setup everything as above
What the end-user experiences
- In firefox, you navigate to www.dodgy-website.com
- Dodgy website loads in your browser
from the end-users perspective, it's no different than having a direct connection to the website
What actually happens
You

- Firefox proxy's the request to localhost:3333
- localhost:3333 is tunneled via SSH to your rented shell account - Red line
- Server "reads" network request and acts on it (server sends request to retrieve html page from www.dodgy-website.com) - Green line
- Dodgy website sends html page to server - Green line
- Server sends back retrieved communication, via SSH to your machine - Red line
- Dodgy website loads in your browser
Bookmarks