Congratulations on beginning a nice project with FreeBSD.
I can help you with the network and gateway, but I haven't specifically done any content filtering, although FreeBSD should have no trouble doing it with the right software.
To start with, I imagine you are planning to use FreeBSD as a NAT firewall, right? So this way you can use it to share your internet connection with the other computers. This is the configuration I am running at home, using two ethernet cards; one to the DSL modem, and the other to my internal hub, wiht private 192.168.x.x IPs. You can use
ipfw or
ipfilter to accomplish this, running the natd daemon. I am more familiar with
ipfw. I know that theoretically ipfilter has more functionality, but I think ipfw is easier, and less likely to cause trouble.
For either of these, you will need to recompile the kernel. Here are a couple of links that should help you with that part:
(start here)
For the content filtering, you might look at this thread (
It looks like your best bet is something involving the Squid Web Proxy Cache (
which is part of the FreeBSD ports collection.
I personally think you are going to have a difficult time with a home-grown content-filtering solution. Your best bet will probably be to subscribe to one of the "smut database" services, which can supply you with a list of hostnames and domains to block. Also, the only way to
really prevent obscene content is to set up a system that defaults to a "deny" status for any unknown hosts, and you just gradually build up a list of websites that your siblings are *allowed* to visit. (Yes, I know this could end up being a real pain).
A possibly simpler approach might be using 'fear' tactics:
ipfw can log every single website visited by any of the computers on your network. Just tell your family that the server will "tell all", and thus realy upon the fear of detection to keep them away from bad sites. (of course, the main problem with that is that it's not always easy to tell where a certain link might lead, and if it leads to a porn site, the user will get presented with 50 million pop-up windows to different sites before he or she can click the "close" button.)
Anyway, I hope this provides you some direction. Please feel free to ask any more questions as you go.