Free ZoneAlarm, is only a firewall. You will need to pay for virus protection, and for spyware Sybot Search and Destroy is good.
If you have a router, DONT USE A FIREWALL. Its a waste of resources and memory. Also Zone Alarm is good...if you know how to use it. If you mess up the settings in Zone Alarm, you can easily mess up your computer.