mail, firewall and proxy are not that difficult to setup either...
anyone joining the Linux world for the first time should start off with Sendmail [www.sendmail.org].. it comes pre-packaged and is quite easy to setup... it provides more security enhancements as opposed to Exchange, MDaemon and all those Windows mail servers... once u feel comfortable with it, then u can make the next move to Postfix, a faster, more robust, more secure and more flexible mail server.. Postfix [www.postfix.org] also ships with the Linux distribution and emulates some sendmail characteristics.. it's faster, leaner and more secure.. other more sophisticated mailers include Exim, which should be tackled after running Postfix.... if necessary...
for a firewall, Linux, by default, will come with IPChains and IPTables... IPChains will run on both the 2.2 and 2.4 kernels, while IPTables will run on only 2.4.. IPChains, which is a good place to start, provides advanced packet filtering based on protocol, port, source or destination IP, and lots more.... IPTables, which is more advanced, carries some similarities with IPChains, but provides more enhacements such as connection tracking and stateful firewall inspection.. both are free and can make for a very secure server and network.. if done properly, they can rival a Cisco PIX firewall and other hardware-based firewalls.... they ship with the Linux distribution...
now, a proxy, which in Linux is not necessary to share an internet connection, is also free and ships along... the first one of choice is Squid.. Squid is basically a proxy and cache server... when configured properly on the right hardware and network, Squid can reduce latency by as much as 40% and save up to 45% of WAN bandwidth.... however, if this is not your liking, the IPChains and IPTables firewalls will provide internet connection sharing.. it does this by using NAT or masquerading.. the number of connections are limitless and it does it transparently... by that i mean, u don't have to setup proxy IPs and port numbers in user's browsers.. all u do is specify the Linux server as the gateway, and u are good to go...
i hope this gives u some inspiration.. Linux isn't all that hard..
good luck..