In heel wat programma's kun je instellen dat de netwerkverbinding via een SOCKS-proxy gaat, bijvoorbeeld om firewallbeperkingen te omzeilen. Dat is niet alleen handig in een webbrowser, maar ook voor e-mailclients en instant messaging. Maar niet alle programma's laten u toe om een SOCKS-server in te stellen. Met ProxyChains kun je die programma's wel temmen: het forceert elke TCP-verbinding van het programma dat als parameter opgegeven wordt door een proxy.

In ~/.proxychains/proxychains.conf configureer je de proxy die door ProxyChains gebruikt wordt. Dat kan helemaal op het einde van het configuratiebestand na [ProxyList]:

[ProxyList]

socks4 IPADDRESS 1080

Daarna start je het programma waarvan je het netwerkverkeer via die proxy wil laten verlopen als volgt op:

$ proxychains telnet example.com 80

Een keten van proxy's

Maar ProxyChains kan nog meer, en hier heeft het programma ook zijn naam aan ontleend: je kunt de verbinding via een hele keten van proxyservers laten verlopen. Je voegt dan eenvoudigweg voor elke server in de keten een regel toe onder [ProxyList] in het configuratiebestand. ProxyChains ondersteunt SOCKS4-, SOCKS5- en HTTP-servers.

Je hebt drie manieren om zo'n keten te gebruiken. Als je in het configuratiebestand de optie strict_chain zet, moeten alle proxy's online zijn. Enkel dan worden de proxy's in de volgorde waarin ze in het bestand staan aan elkaar geschakeld voor de verbinding. Indien er minstens één proxy offline is, wordt de netwerkverbinding verbroken. Gebruik je daarentegen de optie dynamic_chain, moet er slechts één proxy online zijn: alle proxy's worden wel in de volgorde waarin ze in het bestand staan aan elkaar geschakeld, maar offline servers worden eenvoudigweg genegeerd.

Een derde manier is vooral handig als je de beveiliging van je netwerk wil testen. Met de optie random_chain en de bijbehorende optie chain_len gebruikt ProxyChains bij elke aanroep een willekeurige keten van lengte chain_len met servers uit de lijst in het configuratiebestand. Zet je chain_len op 1, dan krijg je een ander interessant gevolg: je toepassing gebruikt dan telkens een willekeurige proxy voor zijn netwerkverbinding. Lees het goed becommentarieerde configuratiebestand in /etc/proxychains.conf eens voor meer uitleg over alle opties.