Proxy Chaining

Proxy chaining is the act of linking several network proxies together to access a network address.  I’ll be explaining what a proxy is, how chaining works and a bit about what they are used for.

A proxy server is actually a service that can relay http/ftp/scp [etc] traffic.  There are actually many different kinds of proxies which are usually just referring to features or settings for that proxy.  Some proxy servers, usually in large organizations, might provide filtered, cached, or monitored traffic.  Proxies speed up access to common services by looking at common traffic and caching the results of the queries.  Imagine a client demands a query like http://1mb.ca and that thousands of people in the 1MB corporation load that page every day.  A proxy could step in and only request the homepage one time instead of 1000 hits on the same page.  The proxy is thus freeing up the organizations’ internet connection to do other useful things like google-ing and watching youtube videos.

Fig 1 – Internet 1997

So proxies are great right?  Actually they can be used for [many] other things as well.  There is a concept of a closed proxy, open proxy, secure proxy and a transparent proxy.  A closed proxy would be a server that you authenticate to; one that requires credentials to access.  Closed proxies tend to be faster and more secure that open proxies due to typically being ‘membership only.’  An open proxy, therefore, is one that you can use for free without authenticating.  Do to their nature; one could also distribute incorrect results across a proxy… more about that later…  It is often hard to tell if a proxy is behaving, I usually just ask for a page with a number on it and check to see if it returns the number.  A secure proxy is a term that describes a proxy that actually tries to hide your identity.  The proxy can do this because it has an IP address on the other side of it and goes off and delivers your content on your behalf.  This means to a web server like google, it might look like you are in San Francisco when you are in fact in Nunavut or Japan.  You can probably understand how this would be useful for many reasons; the most common being just like in the movies when the FBI is ‘tracing’ the bad guy on the internet and basically figuring out their location.  A transparent proxy is term used when a proxy shows information about you on the other side; the side you are hiding from.  When testing for a proxy you should probably check to see if it returns an anonymous IP; but also the agent, and other header information.  If a proxy is fully transparent, it reveals all information about your client to the server that you are requesting from and doesn’t provide the anonymous features.

So who cares right?  Well some people care a lot; Computer savvy folks but also people who are living in countries with various levels of filtered internet.  You see, each country is connected and proxies are used to block, filter, speed up or even change it so that it says something else.  Some people honestly think governments don’t filter internet connections. Its amazing to me that entire countries have their Internet so filtered that they can’t research their information and make their own opinion.  It seems you are getting to this site right now; so good for you… your country lets you read me.

Fig 2 – The Internet Under the Sea [I forget where I saw this]

Proxy chaining can also be used to watch movies and TV.  Just grab a proxy and make it look like you are in New York and you can watch streaming channels and view your ebay account as if you are an Australian customer.  A quick google search will provide you with hundreds of proxy servers offering anonymous, secure access.  VPNs  are also useful when combined with a proxy as it allows a person to establish a secure connection with the remote IP and then the people in the middle can’t see what you are up to.

So how do you do it?  You can use a program, or your can write your own.  If you have Internet Exploder, you can type it in to the proxy servers and ports separating the proxies with semi-colons (;).  If you are really crafty, you might even write an app that can swap the proxies around while you are using them and check them to see if they are still working properly.  Are you using a proxy now?  I don’t know, you tell me? http://www.lagado.com/proxy-test

~JCF