Parental Content Control
There are many options available for parents to filter the web content their children are viewing. There are several solutions that will work with Linux including browser-based filtering through Firefox extensions, DNS-based filtering using OpenDNS' free service, do it yourself allow listing or a set of free applications configured to work specifically for web content filtering.
DansGuardian/Privoxy/Squid
DansGuardian
DansGuardian is a powerful filtering tool with many features to block unwanted sites. Among some of it's features are blocking text and HTML pages based on obscene content, IP addresses, and URLs. It can also be configured to work off a 'allow-list' where all sites except those listed will be blocked. The stealth mode feature is particularly nice if you have teenagers. This feature allows sites that would otherwise be blocked, but reports them in a log.
However nice, DansGuardian is just a filter and will need to be paired with a proxy to do the web stuff. A proxy is a program that sits between your computer and the internet. It funnels all incoming connections through one opening called a port. Usually proxies have additional features such as web-caching and filtering. There are many choices of proxies that one can choose, but we will focus on one to get you started: Privoxy.
Please view this page if you are would like to know more about the flow of events in DansGuardian.
Privoxy
"Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. Privoxy has a flexible configuration and can be customized to suit individual needs and tastes. It has application for both stand-alone systems and multi-user networks."
Setting up Dans Guardian and Prixoxy
For a complete guide setting up DansGuardian and Privoxy see this guide.
Browser Based Content Controls
There are some Firefox add-ons that offer content filtering.
LeechBlock - LeechBlock lets you specify which sites to block and when to block them. Allows you to time limit website usage.
You can get LeechBlock Firefox add-on here.
FoxFilter - Recently called "THE Parental Control for Firefox" FoxFilter is a personal content filter that helps block pornographic and other inappropriate content. All filtering features are free! Premium features available with small support fee.
You can get FoxFilter Firefox add-on here.
Content Control With a GUI
There have been many attempts to produce GUI 'wrappers' to make the process of setting up Content Control easier. Many of these have, over time, have stopped being maintained. Nanny, being a Gnome project probably stands the best chance of being maintained long-term.
Web Content Control
Web Content Control is a program in Ubuntu that lets you block unwanted contents such as adult materials, violence and other disturbing websites. It can also be used as a Parental Control System to control what programs/games can be run and played.
An introduction to setting up Web Content Control on Ubuntu 10.10 here.
Nanny
Gnome Nanny is an easy way to control what your kids are doing on the computer. You can limit how much time a day each one of them is browsing the web, chatting or doing email. You can also decide at which times of the day they can do these things.
Gnome Nanny filters what web pages are seen by each user, so you can block all undesirable webs and have your kids enjoy the internet with ease of mind, no more worries!
Note that Nanny stopped being available with Ubuntu Oneiric as it relies on an old version of Gnome.
Open DNS
OpenDNS is perhaps best known for its ability to provide an alternative to your ISP's DNS servers. The other service provided by OpenDNS happens to also include the option to engage web-based parental controls. So any computer configured to utilize OpenDNS for its DNS settings also has the ability to filter out the junk content you might not want made available in your household.
Getting Started with Open DNS
1. To get started, go to System –> Preferences –> Network Connections 2. Then select the default interface and click ‘Edit’. 3. Next, ‘IPv4 Settings’ and choose ‘Automatic (DHCP) addresses only’ for Method. 4. And finally, type the DNS Server addresses below into the DNS Server field and click ‘Apply’ 208.67.222.123, 208.67.220.123 5. When you’re done, click this link to verify if your setting is OK. You will get a Green Checkmark if everything is OK. You will see a Red X if something went wrong.
Do It Yourself Allow-listing
Block access to absolutely everything on the Internet except for the IP addresses/websites listed in the hosts file.
Open a Terminal [Ctrl]+[Alt]+[T] and backup the hosts file (just in case):
sudo cp /etc/hosts /etc/hosts.old
Then edit the hosts file with your favorite text editor (gedit, leafpad, etc.)
sudo <text editor> /etc/hosts
The format of this list is the IP address, followed by the domain name, followed by the domain name with www in front of it. Example 12.34.567.89 domain.com www.domain.com To add websites to this list; go to an IP address lookup page such as this one or this one. Many websites pull-in content from other servers and/or domains, so you may need to examine the code (view the page source) of the web page(s) to find all the domains you'll need. A quick way to find all the domains referenced is to search the page source for "http" When done adding to the list, save [Ctrl]+[S] and "X" out of the hosts file.
Back in a Terminal, type (or copy and paste):
sudo <text editor> /etc/nsswitch.conf
Find the hosts line
- hosts: files dns
and remove DNS, so the line becomes
- hosts: files
Save [Ctrl]+[S] and "X" out of the nsswitch.conf file
That's all there is to it. Everything except approved domains/IP addresses are blocked. Edit the hosts file to allow (or disallow) access to additional websites.
Temporarily give the computer access to the entire Internet (like when running updates, or looking up more websites/IP addresses) by adding DNS back into the nsswitch.conf file and saving.
Get a head start for the allow-list of a child's computer by downloading a "base file" of educational websites from here.