Libconnect is a simple library wrapper written in assembly language (NASM syntax) that intercepts the calls applications make to establish TCP connections and transparently proxies them as necessary.
Existing applications can use this library without any recompilation or modification by setting the LD_PRELOAD environment variable. Libconnect will be loaded into the process space overriding the 'old' libc connect().
Do I need libconnect?
Web proxy servers are the most common way to allow access between networks, and often to the Internet in a firewalled LAN environment (when there's no NAT support). Unfortunately only few applications know how to 'use' a web proxy to access the big internet; libconnect should help you here.
You can also use this library if you aren't in a LAN but you want to make ssh, telnet, ftp, irc (etc...) sessions without using your real ip address and preserve your anonimity.
What kind of proxy works with this stuff?
Libconnect supports CONNECT and POST proxies; wingates and maybe socks will be supported on request. You can discover if the proxy you want to use is a CONNECT proxy in 2 simple steps:
Example: CONNECT 184.108.40.206:80 HTTP/1.0 [return][return]
you are done, the proxy will work like a charm :)
2002-07-24 - libconnect 0.5.2
Using libconnect is very simple. You just have to load libconnect.so in your LD_PRELOAD environment variable.
I've included a small script to simplify the use of the library, please read the "libconnect" and "libconnect.conf" man pages.
source libconnect -on or . libconnect -on (please note the leading dot)
puts libconnect into your current shell LD_PRELOAD environment and so every application you run will be automatically proxied by the library.
If you want to use libconnect in just a single application you can type: libconnect [application [application arguments]]
for example: libconnect telnet foo.bar 1234
. libconnect -off or source libconnect -off
will unload the library from the current shell LD_PRELOAD environment.
If you don't want to use the script follow the scheme below.
setenv LD_PRELOAD /usr/lib/libconnect.so
You can download the latest version of libconnect from the Savannah file list system or the Savannah download area or from one of our mirrors:
ftp://asus.dyndns.org or ftp://qwerty.ath.cx (thanks to morpaus).
This is the source .tar.gz file, you need NASM to build it. A precompiled binary is included as well as a standard config file.
Here is a debian package:
RPM package (alienized from the debian one) for people who don't know the power of debian:
Slackware tgz package:
The configuration file in the package may be old, this is my current libconnect.conf file.
For questions, bug reports and so on...
You can also report bugs using the savannah bug tracker and get support in the Tech Support Manager.
Feel free to submit a support request. You are welcome to submit patches in the Patch Manager.