Warning: This post is technical and atypical of normal content. Please refrain from heart attacking. (I am a programmer by trade, writer by choice, after all.)
Using only Open Source tools, I’m going to walk you through defeating the demon of your company/school/wife’s firewall.
AT HOME
You’ll need to be running OS X. This has only been tested using an iMac G5 and a Macbook, both running Tiger. To do the whole shebang, you’ll need to download SquidMan, an easy to use graphical package for Squid on OS X, to your home computer. Squid is a web proxy cache. In plainspeak: you ask for a website, it goes and gets.
Open up SquidMan and you should be confronted with a Preferences dialog. On the first tab, General, set HTTP Port to 8080. Set Visible Hostname to your IP address. Check “Start Squid on launch after a 0 second delay.”
Next, open the Template tab. As this guide is focused on the fastest possible setup, you’ll be creating a public proxy server. If you don’t like that, ignore the Template tab and put the IP address of your computer at work/school/hell in the Clients tab.
Find the line that says “http_access allow localhost” and change ‘localhost’ to ‘all’. For the next two lines, put a pound character, ‘#’, at the beginning of each line to comment them out.
Click Save and you’ll be returned to the main SquidMan window. Click Start Squid and it should begin without any trouble. Status will say “Squid is running.” To hide this little window, press Apple-H or click Hide SquidMan under the main SquidMan menu.
Now, you’ll need to turn on SSH, the Secure Shell. This allows you to encrypt your traffic, avoiding the menaces of prying eyes and filtering software. To do this, open the System Preference panel and click on Sharing. In this window, make sure Enable Remote Login is checked. Save the change and close out.
That completes the setup at home. Again, this guide is focused on OS X; if you don’t use OS X at your work/school/lover’s house, you’re on your own.
IN HELL
On the computer you wish to slack off with, open the Terminal. You can simply type ‘terminal’ into Spotlight or find it under Applications->Utilities->Terminal.
Once you’re in the Terminal, you’re going to type in a cryptic command to encrypt and forward traffic to the proxy. The general format is:
ssh -L local_proxy_port:home_IP_address:8080 Username_at_home@home_IP_address
Now, a quick summary of what goes in all those odd places:
- local_proxy_port - I’d choose 8080 for the sake of simplicity. Since only your computer will see this, any port not in use will do just fine.
- home_ip_address - This is the same address that you put in SquidMan for Visible Hostname.
- Username_at_home - This is the username that you select when logging on to your computer at home, not your machine at wherever. Conceivably, they could be the same—but mine aren’t.
Upon pressing Enter, you’ll be asked if you’d like to accept the connection. A simple ‘yes’ will suffice. Next, you’ll be asked for your password. Type the password of your account at home and hit Enter. You should now be logged in. You can safely minimize and/or ignore this window, but do not close it.
Next, you’ll need to set up your browser to use your new anonymizing proxy. In this guide, I’ll use Firefox. Open the Firefox Preferences pane, accessed via Apple-comma or under the Firefox main menu. On the General tab, click Connection Settings.
In the dialog that pops up, select Manual proxy configuration. Set HTTP Proxy to 127.0.0.1 and Port to your local proxy port (local_proxy_port). In my case, I used 8080. Check “Use this proxy server for all protocols” and click OK. Exit the preferences page and try Google to make sure everything is working.
TROUBLESHOOTING
If you’ve made it this far, you should now have a working anonymizing proxy! If you’ve run into trouble, here’s a few troubleshooting tips:
- If your home computer is behind a router, you’ll need to forward the appropriate ports to your computer. These are 22 and 8080 for this guide. Check your router’s manual for specific instructions on how to do this. Another great resource is PortForward.com.
- The ISP in either location may not allow connections on some ports. If all else fails, try changing 8080 to another port. Oftentimes, 8080 may be blocked but 8082 won’t.
- Some builds of Firefox move the Connection Settings to the Advanced tab. If it’s not under General, look in the other tabs.
- This isn’t the only solution available. If you don’t mind sacrificing some speed, check out Tor for OS X.
FINAL THOUGHTS
This is a great way to quickly get around a pesky firewall or content filter, but it has some issues. If you’re interested, check out the Squid documentation. Squid has all sorts of fancy features which can improve your Internet experience, even making it faster. Also, it will allow you to pick who may and may not use your proxy. After all, you don’t necessarily want to share your connection with any random stranger.
I hope this guide aided you in setting up your own anonymizing proxy. If you need any help, feel free to leave a comment. Also, the tech support hotline for your router can be invaluable if you need to forward ports. Your ISP may also publish their terms, including which ports may be blocked. In your case, more information will only further your cause.
LINKAGE
Every link from the article, arranged for your convenience.
- SquidMan
- Squid
- Squid documentation
- WhatIsMyIP.com
- SSH (Secure Shell)
- PortForward.com
- Mozilla Firefox
- Tor for OS X
If you liked it, please Digg it. Thanks!
Posted in Accessibility, Apple, Free Speech, Freedom, Gaming, Lifehacking, Psychotic, Technology, Travels, Zombies