i use ccproxy, and it does the trick.
I also use ccproxy works well but its quite basic, ipcop/smoothwall seem to hav better features, last night I tested the ipcop I had a old version that I downloaded a few years ago, setup the ipcop proxy to connect through ccproxy and it worked but I would rather setup as a gateway so it doesnt hav to rely on ccproxy.