Proxy Server - continued
There is an additional benefit of a proxy server. The users' web history will be cached on the proxy server. So, the requests will be first processed by the proxy server and then passed on to the Internet. Consider a situation where User A accesses www.internet.com. The proxy server will retrieve items from the website, such as images, text, etc. and will store them. When User B wants to access the website, the cached elements will be checked and if they are the same, will be delivered to User B's web browser from the proxy server. This will save you from high bandwidth usage.
The best proxy server software you can find is Squid. The program has been developed for years, is open source, and has been running on hundreds of Internet Service Providers (ISPs) for a very long time. There's no need to say that the software is incredibly flexible. You can use it to have parental controls on your kids' Internet usage (time/viewable website limitation) or run an ISP.
I would very much like to give you an overview with the commands, but there are so many possibilities that this is not possible: you can go for authentication (LDAP, MySQL, Radius, NTLM, Active Directory etc.), interception (AtSource, IPTables Policy Route, Linux Redirect etc.), reverse proxy (multiple webservers, Outlook Web Access, Virtual Hosting etc.), Instant Messaging/Chat Program filtering (AOL, ICQ, MSN etc.), and many others. With this flexibility, you can, for example, allow MSN instant messaging but block all other protocols.