Installare un Parental Control in Ubuntu

DansGuardianMolti vorrebbero limitare l’accesso a determinati siti ai propri figli. Questo post vuole mostrare come è relativamente facile da fare sotto ubuntu (questa guida vale anche per kubuntu, xubuntu, ecc. e debian) senza tenere aggiornate manualmente white list e black list. Per fare questo utilizzeremo dansguardian + privoxy e alcune regole di iptables.

DansGuardian è il programma si occupa di filtrare l’accesso ai siti attraverso varie tecniche come l’analisi dell’URL, del contenuto testuale, delle immagini. Per funzionare ha bisogno di un proxy, molte guide si basano su SQUID che è più completo ma più difficile da configurare, privoxy è molto più semplice da configurare e ha anche qualche opzione aggiuntiva.

1. Installare Dansguardian + Privoxy

Il tutto si riduce a:

$ sudo apt-get -y install privoxy dansguardian

2. Configurare Privoxy

Usando un qualsiasi editor di testo, modificate il file /etc/privoxy/config:

$ sudo nano /etc/privoxy/config

e cambiate la linea che contiene:

listen-address localhost:8118

in

listen-address 127.0.0.1:8118

Anche se è la stessa cosa, privoxy come parent proxy senza questa modifica rifiuterà le connessioni. A questo punto riavviate privoxy:

$ sudo service privoxy force-reload

3. Configurare dansguardian

Usando un qualsiasi editor di testo, modificate il file /etc/dansguardian/dansguardian.conf  rimuovendo la seguente linea nella parte superiore del file:

UNCONFIGURED - Please remove this line after configuration

Adesso bisogna modificare la porta predefinita visto che dansguardian generalmente lavora con squid. Modificate l’opzione proxyport come segue:

proxyport = 8118

e l’opzione language per avere la pagina di blocco in italiano:

language = 'italian'

e avviate dansguardian:

$ service dansguardian start

4. Configurare il firewall con UFW

Usando un qualsiasi editor di testo, modificate il file /etc/ufw/before.rules  commentando la seguente linea nella parte superiore del file:

#-A ufw-before-output -o lo -j ACCEPT

Adesso non resta che aggiungere alla fine del file, sopra la riga COMMIT le seguenti righe:

# Rules for Dansguardian
-A ufw-before-output -m owner --uid-owner root -j ACCEPT
-A ufw-before-output -p tcp -m multiport --dports 80,443 -m owner --uid-owner privoxy -j ACCEPT
-A ufw-before-output -p tcp -m multiport --dports 80,443 -j DROP
-A ufw-before-output -o lo -p tcp -m tcp --dport 8118 -m owner --uid-owner dansguardian -j ACCEPT
-A ufw-before-output -o lo -p tcp -m tcp --dport 8118 -m owner --uid-owner bodhi -j ACCEPT
-A ufw-before-output -o lo -p tcp -m tcp --dport 8118 -j DROP
-A ufw-before-output -o lo -j ACCEPT

# don’t delete the ‘COMMIT’ line or these rules won’t be processed
COMMIT

Ecco una breve spiegazione delle varie righe:

  1. La prima riga permette all’utente root di uscire senza limitazioni (altrimenti sarebbe più difficile lanciare applicazioni come apt-get).
  2. La seconda permette a privoxy di connettersi alle porte 80 e 443;
  3. La terza impedisce a tutti gli altri di connettersi alle porte 80 e 443;
  4. La quarta linea permette DansGuardian di connettersi a Privoxy;
  5. Nella quinta riga invece bodhi deve essere sostituito con il nome di un utente “genitore” che non deve essere filtrato da dansguardian. Questa riga va ripetuta per ogni utente “genitore”;
  6. La sesta blocca tutte le altre connessioni a privoxy;
  7. La settima riga permette tutte le connessioni sul localhost;
  8. L’ultima è il commit che non deve essere rimosso.

A questo punto basta avviare ufw con i seguenti comandi:

$ sudo ufw enable
$ sudo service ufw restart

5. Configurazione per gli utenti

A questo punto per poter accedere ad internet è necessario che gli utenti impostino il corretto proxy nel loro browser.

Se utilizzate Firefox andate in: Modifica -> Preferenze -> Avanzate -> Rete -> Connessione e impostate i parametri come nell’immagine sotto:

Indicando la porta 8118 per gli utenti “genitori” (quelli che avete aggiunto nel file di configurazione di ufw) e la porta 8080 per gli utenti “figli” .

Invece per la riga di comando (wget , curl, etc.) aggiungete nel file ~/.bashrc di ogni utente la seguente riga per i “genitori”:

export http_proxy='localhost:8080'

e la seguente per i “figli”:

export http_proxy='localhost:8118'     # Utenti non Filtrati

Enrico Strocchi 27/10/2011

(tratto da http://blog.bodhizazen.net/linux/web-content-filtering-made-easy/ )