There's no such thing as free as in cost. Sure, Linux will allow you to get a setup running for restricting Internet but it will cost you time in learning about it. Don't expect it to be a one click solution that magically works with a push of a single button.
If you want to learn more about how Linux can limit and restrict internet you can research the following (google),
- quality of service iptables (iptables is a firewall)
- linux internet throttle
- dns poisoning bind9 block websites (bind9 is a DNS daemon/service)
- linux internet parental controls
Also, from rockhopper_penguin mention, there are custom router firmwares which may have this kind of stuff built in if you're looking for an easy solution at the risk of potentially bricking your router if you install the firmware incorrectly (ddwrt is an example). Depending on the router you have you may be able to block single domains (which is much safer than installing a firmware on it).
That should get you started.
SAM