Proposal to add tor-connect utility to tor-core distribution
I've been using tor on and off for years, but there has been one utility that I've been missing in tor tools. That utility is tor-connect that could be used as a proxy command for various utilities that otherwise lack proxy capability. It is also often that "torify" kind of patching of the shared libraries in run time doesn't really do the trick.
So silent wishing got me nowhere, so I wrote it myself by using tor-0.2.2.38/src/tools/tor-resolve.c as a template. It needed quite mych hacking, but at least it provided with a "style guide" so my stuff doesn't appear totally different when compared to other tor code.
The idea was plain and simple to have an utility that could be called from ssh client using following configuration in .ssh/config
Host *.onion ProxyCommand tor-connect %h %p
And maybe for some other hosts too that user logs in but doesn't want to tell his ip.
Host *.cn *.ru *.gov ProxyCommand tor-connect %h %p
The utility is also usable with all other software that provide tcp connection opening using proxy commands. I've used at least some email client in Linux that provide exactly that for IMAP and SMTP connections. With those I've of course mainly used ssh to relay connections, but there is no reason why tor-connect wouldn't work there too.
Full usage is extremely simple:
tor-resolve [-4 | -5] [-v] [-p port] hostname port [sockshost:socksport]
I propose to include tor-connect.c to tor-0.2.X/src/tools directory and making it installable to $prefix/bin along with tor-resolve. For automake stuff it probably needs check for existence of sys/select.h somewhere. Other than that, it seems to work fine. As I write, I have also ssh connection going over tor opened via tor-connect. So far it has worked flawlessly. At least I find this utility very useful.
Actually I'd like to see it also in browser bundle, because browser bundle is something that people (or at least I) run in laptops rather than separate tor instance. However the ssh ProxyCommand would be very usable in this case too. One just has to start TorBrowser / Vidalia first, but then it rocks like a dream.
Please find the source code attached and notify proper person about the stuff. I hereby contribute the code included in this mail to Tor Project.
Trac:
Username: tri