My company of around 650 employees has been using Squid for a long time (www.squid-cache.org). It is a great software that will do pretty much anything you want it to do including:
Transparent-proxy
Domain Authentication or many others
HTTP Proxy caching
FTP caching
HTTP server acceleration
Redirects
bandwidth throttling per user

This software out of the box will configure itself to run on port 3128 and allow only your subnet to access the internet, but through it's heavily commented config file, you can configure just about thing having to do with proxy services. You can also get a plethera of log analyzers for Squid. You can access a list of them at http://www.squid-cache.org/Scripts/. They are all free and many of them are very detailed. Webanalyzer is a good one to start with.

All of the above using microsoft ISA 2004
1) it's software
2) it's free (if you work hard and earn a free Microsoft MSDN subscript)
3) Windows 2003 (also free w/MSDN)
4) It does cache and filters URL's
5) I would never use Microsoft as a firewall, but the proxy cache and dns cache work on a single-nic PC
6) You can get stats and reports from any time period with a few mouse clicks. Anything and everything you want to know
7)You can set bandwidth limitations
8) Wizards make it embarrasingly simple

Else, Squid is pretty much the defacto "free" standard. Since it runs on linux, you may have to master that, and probably perl, and probably 50 other things to get meaningful reports, etc....http://www.squid-cache.org/

MICROSOFT MSDN does not mean free. It does not even allow you to use it in production. If you like to have subscription with production licenses you need a Select Agreement.
If you like to run something on Solaris and have support you can try SUN one Proxy and sorry but it is not free.
If you need it for large networks 1500+ users go look for something like http://www.bluecoat.com/ those are proxy appliances. BUt as you only wonna have something free you should go for squid :)
I cannot find one single proxy that is good and free on windows.

Preparing for a firewall audit today is almost impossible.
AlgoSec, together with some of the largest global organizations and auditors, has created a checklist to follow when preparing for your firewall audit. Simplify risk mitigation while staying compliant all of the time!

Nothing is GOOD and FREE on WIndows ! (",) .... sorry ... could not help it ;-)

Guys, my network is less than 50 computers ... its ok to thing small. That is why I dont want to hear about hardware .... I can set up a proxy on a P4 2 G with 2 IDE 's and I think it would make a difrance. ( our internet line is like 64 kbits .... uugh )

Do not think twice!! Squid proxy is your answer.
As a matter of fact it comes by default with most Linux Distros and if you want to run it on windows, fear not, because a windows binary is available.
VERY easy to configure (especially if you use webmin)

I have used squid proxy for years and i absolutely LOVE it.
(currently using it as a Transparent Proxy which also rocks, coz no client config is neccesary)

another nice feature of squid is delay pools to allocate a certain amount of bandwidth to certain ports/users/etc - traffic shaping if you want - very handy if one user keeps saturating the link with Kazaa or whatever and the other actually want to do some work...

A couple of VERY nice logging/reporting tools for squid is also available - MRTG is great and i think webalizer can do the job as well...

For transparent proxy, all this (in effect) happens is that shorewall firewall (or iptables) redirects any incoming port 80 requests to port 3128 - without the end user knowing about it.
Port 3128 being the default squid proxy port.

Technically speaking, all that you need to do really (assuming squid and a firewall is running)
in /etc/squid/squid.conf:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Delay pools can get kinda tricky depends on what you need to do with the bandwidth, but once configured correctly, it works extremely well.

an excerpt from http://users.bigpond.net.au/adam88/squid.html :
EXPLANATION OF SQUID DELAY POOLS
A pool is a number of bucket groups appropriate to a delay class. A bucket is an individual delay bucket that represents traffic allocation, which is refilled at a specified rate. Traffic is delayed when the bucket becomes empty. The delay class is a set of special buckets to suite a different purpose. Class 1 has a single aggregate bucket, Class 2 has an aggregate bucket with individual buckets for each host on a Class C network address and finally, a Class 3 has an aggregate bucket, with a network bucket for each class B address and an individual bucket for each host.

For the purpose of this exercise, the delay class 2 is used. This is how to use a Class 2:

Delay Pool 3 (the last delay pool) gives the local network a 15K bucket. Meaning that the whole network will never receive more than 15K/sec. It also specifies that a single host will receive no more than 4K/sec.

The 15000/15000 is the 15K aggregate bucket. The first 15000 bytes will be given at full speed, after that the access is delayed. This is similar for the hosts as well.

The 4000/4000 is the rule for the hosts. The first 4000 bytes will be given at full speed while after than, it will be delayed to 4K/sec.

The numbers used here are symmetrical, but this isn't a requirement for the delay pools option. For example, you can allow the first 20K to be full speed and then after that, delay access to 4K/sec. This could be done like so:

If you are like regular user of computer nowadays, a good bet that your home computer is on right now, all exposed to world of Internet to be exploited by somebody you do not know and you never will. Internet security issues has been getting worse d…

To setup a SonicWALL for policy based routing to be used with the Websense Content Gateway there are several steps that need to be completed. Below is a rough guide for accomplishing this. One thing of note is this guide is intended to assist in the…

When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…

This video tutorial shows you the steps to go through to set up what I believe to be the best email app on the android platform to read Exchange mail.
Get the app on your phone: The first step is to make sure you have the Samsung Email app on your …