ReAIM is a compact transparent proxy designed to be run on or behind a Linux IPTables based firewall. When run behind a simple address-translating firewall, the current AIM client software does not allow direct-connections between users to work. AIM requires direct-connections for file and image transfers.
This proxy is designed to transparently intercept AIM client messages and pass them through a configurable filter/rewrite chain. This allows selective modification of the source address provided in direct-connection setup packets, and so remote users can be told to use the global internet routable address, rather than the actual IP address of the client on the local network.
I have written a basic introduction to how the AIM software sends messages, and the problems it encounters with address translation and firewalls. It's worth looking over for a top level overview if the previous paragraph didn't make a lot of sense.
Because the code seemed to be coming together nicely in a modular structure, I've added in support for MS Messenger's file transfer in a very similar way!
The current code is alpha quality. This means that it works for me, but has many rough edges and plenty of things still to finish and properly design.
I regularly use the proxy for AIM messaging and file sharing. It also has preliminary support for MS Messenger file transfers.
The File List page at sourceforge holds links to all the released code. In general you should use the most recent release, and if you are having trouble with an earlier release, please try the latest before filling out a bug report.
I have written a basic overview for setting up the appropriate firewall rules. Included in the distribution is a sample firewall setup script.
The current code can be downloaded from the CVS server at sourceforge in the usual way. Instructions are available here.
My thanks to everyone that has worked on decoding the OSCAR protocol used by AIM. Without your work, this program would have taken much longer to produce.
To the Linux Hackers for providing transparent port interception and redirection - way to go! iptables is an incredibly powerful framework.
To Tyler Smith <email@example.com> for contributing a BSD licenced patch and readme to support OpenBSD's PF framework.
To my friends who introduced me to instant messaging, and the problems which exist in the current clients and their handling of firewalls and address translation.
Bugs, comments, feedback can be sent to me at firstname.lastname@example.org