Frox is a transparent ftp proxy for linux written under the GPL.
It will transparently proxy your ftp clients (duh). This means that any clients you have that are behind the proxy will believe that they are connecting to an ftp server as normal, but will actually be connecting to frox. Frox will do the onward connection to the remote server.
It can also be set up to do non-transparent proxying. In this case the ftp client can connect directly to frox, but instead of logging in with ``username'' should log in with ``firstname.lastname@example.org''.
On either of these sorts of connections it can do caching of files you download, or converting of data connections from active-->passive which can make firewalling rules a lot easier/safer. There is also basic support for running a virus scanner on downloaded files. Frox can also encrypt connections that it makes to ftp servers which support it.
These extra options can all be enabled/disabled at compile time so if you don't want them you can still have a small binary - the default one is around 30K.
It does not implement ftp proxy over HTTP. This means if you configure a web browser (eg. Netscape/Mozilla/IE) to use frox as their ftp proxy it won't work. If you leave them with ftp-proxy unconfigured then they should be transparently proxied like anything else.
It cannot do transparent proxying on 2.4.x linux kernels which are using ipchains compatability. I have not been able to find out how to do this.
IPv6 is completely unimplemented
Transparent proxy system calls vary a lot from system to system. I only have success reports for linux and FreeBSD, but you may well have success on any UNIX like OS which uses ipfilter. See the section on systems other than linux for details and let me know if you have success or failure
Latest versions should be downloadable from the homepage at: http://frox.sourceforge.net/ or at; http://www.hollo.org/frox/.