Several methods exist to protect and limit child activity on a computer.
While this may seem a no-brainer, please do notice that any such security features will be effective only on the level you enforce them. For example, if you install a parental control app in your OS, the kid may download any Linux distro image, preferably an easy out-of-the-box one like Linux Mint, burn a LiveCD or a make LiveUSB, put it into your computer and enjoy unrestricted access. You may configure BIOS to prevent this, but then again, what stops your kid from using their tablet or smartphone to browse the web?
- timekpr — A program controlling use of user accounts. It can limit by access duration with the daemon timed, and configure at what time users can log in. A client in the traybar warns the users about their time running out, while administration is done in a graphical GTK GUI.
- timeoutd — A lightweight alternative to timekpr, it scans
/var/run/utmpevery minute and checks
/etc/timeoutsfor an entry matching a restricted user. Restrictions are based on idle time, login time, maximum time, and time of day.
- || AUR
- logkeys — A daemon that logs keypresses into a logfile for later inspection. The log file resides by default in
/var/log, but it is recommended to move it to an encrypted partition; it will for example contain every password entered in the system. Use the --keymap option if using a localized, non-US keyboard. For supervision purposes, the
--no-func-keysoption is recommended.
- DansGuardian. If you wish, you might even set up an Arch based router running DansGuardian and enforce all other devices in your physical network to connect to the internet through this router.
Whitelist with Tinyproxy and Firehol
The following description will enable you to filter any user's access to the internet with a whitelist of url-s usingAUR and (or AUR).
/etc/tinyproxy/tinyproxy.conf consists of the following changes:
FilterURLs On FilterDefaultDeny Yes Filter "/etc/tinyproxy/whitelist"
/etc/tinyproxy/whitelist should hold the url's that will be only allowed accessed by selected users. A silly example:
/etc/firehol/firehol.conf should contain the following line:
transparent_proxy "80 443" 8888 "nobody root bin myaccount"
where myaccount is my account that should no be filtered by Tinyproxy.
OpenDNS Parental Control
OpenDNS provides free DNS services as an alternative to your ISP's default servers. Furthermore, they provide optional filtering capabilities. Different levels of filtering is possible; see the OpenDNS main page for details.
For dynamic IP addresses, it is a good idea to keep them updated on OpenDNS. Use
/etc/ddclient/ddclient.conf as follows:
# OpenDNS.com account-configuration use=web, web=myip.dnsomatic.com server=updates.opendns.com protocol=dyndns2 firstname.lastname@example.org password=myopendnspassword myhostname
You may sometimes even set up your router to use OpenDNS, therefore allowing protection spanning on all devices connected to that router.
You may configure your /etc/hosts file to block access to certain domains. A more draconian approach is to only allow domains explicitly stated in /etc/hosts, as described here. If you do this, please remember that this will affect your whole system, so for example pacman may be unable to connect to the update server unless you make a proper binding in your /etc/hosts.
Several add-ons exist for web browsers to filter web content. Some of them can even block out pages examining on their body, not only on their URL. Be warned, however, that this is not a very secure way. Starting Firefox in safe mode, messing with the Firefox profile directory or Firefox profile manager are obvious way to attempt to shut down Firefox-based add-ons. If all else fails, the kid may simply use a different browser.