But realistically, if you are doing this for a business you will want to purchase a third-party solution. You can do it "by hand", so to speak, but you'll be the one constantly stuck with updating the lists of denied/approved sites, and when someone gets through to something that they shouldn't have you'll be the one getting the call from the manager wondering why the "magic filtering box" didn't already know about every "bad" web site in the world. The problem is that there are far more "undesirable" web sites out there than you have time to identify. Companies who make Internet filtering tools have entire departments dedicated to compiling and categorizing web sites specifically so that you don't have to.
Additionally, most third-party filtering products allow you to filter by category (i.e., hacking, gambling, pornography, hate speech, etc). Depending on what line of work your business is in, some categories may be material that you will need to provide access to, while blocking others. Sure, you can get a list of "bad" sites for free, but without going through the whole thing how do you know that what someone else's idea of "undesirable" matches your company's?
If you were doing it at home I could see doing it the cheap and easy way, but even the $50 wireless cable/DSL routers available these days have this capability built in. Why reinvent the wheel?
________________________________________
CompTIA A+, Network+, Server+, Security+
MCTS:Windows 7
MCSE:Security 2003
MCITP:Server Administrator
MCITP:Enterprise Administrator
MCITP:Virtualization Administrator 2008 R2
Certified Quest vWorkspace Administrator