What's libconnect?
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 209.73.164.90:80 HTTP/1.0 [return][return]
you are done, the proxy will work like a charm :)
News
2002-07-24 - libconnect 0.5.2
This is the complete ChangeLog
Usage
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.
Please read the README and the FAQ for more informations
about the things to do to make an usable config file.
export LD_PRELOAD=/usr/lib/libconnect.so
setenv LD_PRELOAD /usr/lib/libconnect.so
Download
You can download the latest version of libconnect from the main SourceForge site 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.
Links
The libconnect sourceforge project page is here.
We're also on freshmeat,
linuxlinks.and
linux.com.
Thanks to SecurityFocus and tucows.
Contacts
For questions, bug reports and so on...
You can also report bugs using the sourceforge bug tracker
and get support in the sourceforge help forum.
Feel free to submit a
sourceforge
support request.