how to set up a web proxy????

I'm a bit of a n00b when it comes to 3xtr3m3 networking.
What I want to do is set up a web proxy server that simply blocks certain http requests. I'm not worried about equipment, i've got plenty of that. I just need software for it (preferably free!). Do i use windows? Do i use linux?
I have no idea!

Eventually I want this to grow into a nice firewall to protect my six new homebuilt webservers!
But i figure i'd better start here first.
And i want to start here first...because it's a relatively useful function for me to have.
So, can anyone gimme some help here?
What software do i use?
my network structure is relatively complex. for a home network, at least. I have a large 10mbit connection that comes in, and goes right to a switch, where it's split into 5 different connections: one for a linksys wrt54g :), and the other four for my servers. Out of that router goes all the connections for the many, many (no joke ~25) computers in the house, plus the house fileserver. I'm assuming that the web proxy will sit in between that first switch and the router. (i know i am able to use the router to perform this function, but i want to set it up this way, too. learning and tinkering is fun!)

Is this correct?
What's some software i can use to perform this function?
thanks!