There is more than one way to do that.
You could do it with the help of iptables. Here’s a guide (it is for debian but as it uses kernel’s iptables I think it should work for any linux distribution).
<a href=”http://www.aboutdebian.com/proxy.htm”>How To Set Up A Linux Proxy Server</a>
Also, in SUSE you could use YaST which would make things easier. Take a look at this article:
<a href=”http://opensuse.swerdna.org/suseics.html”>Internet Connection Sharing (Linux IP Masquerading) with Suse or Windows Servers</a>
And, you could use squid or any other proxy server program with caching capabilities.