Proxy Server con filtraggio dei contenuti della navigazione: differenze tra le versioni

m
rimossa dalle guide da controllare
m (rimossa dalle guide da controllare)
 
(15 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Squeeze}}
== Introduzione ==
== Introduzione ==
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
Riga 57: Riga 58:
Iptables si configura generalmente costruendo degli script di regole da attivare all'avvio della macchina gateway. Le regole logiche definite al paragrafo precedente conducono alla stesura di uno script simile al seguente.
Iptables si configura generalmente costruendo degli script di regole da attivare all'avvio della macchina gateway. Le regole logiche definite al paragrafo precedente conducono alla stesura di uno script simile al seguente.
<br/>
<br/>
Lo script, chiamato <tt>firebox.sh</tt>, servirà quindi per gestire il firewall tramite iptables, con funzionalità di nat (masquerade) e di forwarding. Può ovviamente essere modificato e espanso per specifiche esigenze. Creeremo e salveremo il file nella directory <tt>/etc/init.d/</tt>.
Lo script, chiamato <code>firebox.sh</code>, servirà quindi per gestire il firewall tramite iptables, con funzionalità di nat (masquerade) e di forwarding. Può ovviamente essere modificato e espanso per specifiche esigenze. Creeremo e salveremo il file nella directory <code>/etc/init.d/</code>.
<pre>
<pre>
# nano /etc/init.d/firebox.sh
# nano /etc/init.d/firebox.sh
Riga 111: Riga 112:
La nostra macchina Debian è ora un gateway per tutta la rete LAN.
La nostra macchina Debian è ora un gateway per tutta la rete LAN.
<br/>
<br/>
Come ultima cosa modifichiamo il file <tt>/etc/hosts</tt>, aggiungendo:
Come ultima cosa modifichiamo il file <code>/etc/hosts</code>, aggiungendo:
<pre>
<pre>
127.0.0.1      localhost
127.0.0.1      localhost
Riga 127: Riga 128:
# apt-get install clamav-daemon clamav-freshclam
# apt-get install clamav-daemon clamav-freshclam
</pre>
</pre>
La configurazione di ClamAV è contenuta nella directory <tt>/etc/clamav</tt>, ma per i nostri scopi sono più che sufficienti le impostazioni di default. FreshClam aggiornerà le definizioni dei virus su base oraria; se vogliamo modificare questo comportamento dobbiamo agire sul file:
La configurazione di ClamAV è contenuta nella directory <code>/etc/clamav</code>, ma per i nostri scopi sono più che sufficienti le impostazioni di default. FreshClam aggiornerà le definizioni dei virus su base oraria; se vogliamo modificare questo comportamento dobbiamo agire sul file:
<pre>
<pre>
# nano /etc/clamav/freshclam.conf
# nano /etc/clamav/freshclam.conf
Riga 151: Riga 152:
# apt-get install squid3 squidclient
# apt-get install squid3 squidclient
</pre>
</pre>
Il proxy Squid si configura attraverso il suo file di configurazione <tt>/etc/squid3/squid.conf</tt>, che ora creeremo in base alle nostre esigenze:
Il proxy Squid si configura attraverso il suo file di configurazione <code>/etc/squid3/squid.conf</code>, che ora creeremo in base alle nostre esigenze:
<pre>
<pre>
mv /etc/squid3/squid.conf /etc/squid3/squid.conf.original
mv /etc/squid3/squid.conf /etc/squid3/squid.conf.original
Riga 229: Riga 230:
# apt-get install squidguard
# apt-get install squidguard
</pre>
</pre>
Quindi recuperiamo i files delle blackist, le scompattiamo in <tt>/var/lib/squidguard/db/…</tt> e generiamo il database delle liste:
Quindi recuperiamo i files delle blackist, le scompattiamo in <code>/var/lib/squidguard/db/…</code> e generiamo il database delle liste:
<pre>
<pre>
# cd /var/lib/squidguard/db/
# cd /var/lib/squidguard/db/
# wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
# wget http://www.shallalist.de/Downloads/shallalist.tar.gz
# tar xzf blacklists.tar.gz
# tar xzf shallalist.tar.gz
# chown -R proxy:proxy blacklists
# chown -R proxy:proxy blacklists
# ln -s /etc/squidguard/squidGuard.conf /etc/squid3/squidGuard.conf
# ln -s /etc/squidguard/squidGuard.conf /etc/squid3/squidGuard.conf
# su proxy
# squidGuard -d -c /etc/squid3/squidGuard.conf -C all
# squidGuard -d -c /etc/squid3/squidGuard.conf -C all
</pre>
</pre>
Riga 382: Riga 382:
# chmod +x /usr/lib/cgi-bin/squidGuard.cgi
# chmod +x /usr/lib/cgi-bin/squidGuard.cgi
</pre>
</pre>
e infine decommentiamo la riga per attivare il proxy trasparente nel nostro script <tt>firebox.sh</tt>:
e infine decommentiamo la riga per attivare il proxy trasparente nel nostro script <code>firebox.sh</code>:
<pre>
<pre>
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Riga 413: Riga 413:
# apt-get install dansguardian
# apt-get install dansguardian
</pre>
</pre>
Il file principale di configurazione è <tt>/etc/dansguardian/dansguardian.conf</tt>. Apportiamovi alcune modifiche:
Il file principale di configurazione è <code>/etc/dansguardian/dansguardian.conf</code>. Apportiamovi alcune modifiche:
<pre>
<pre>
# mv /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.original
# mv /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.original
Riga 477: Riga 477:
maxagechildren = 500
maxagechildren = 500
</pre>
</pre>
Scarichiamo delle blacklists aggiornate, ad esempio dal sito: [[http://urlblacklist.com/?sec=download URL Blacklist]]
Da notare la riga: <code>contentscanner = '/etc/dansguardian/contentscanners/clamav.conf'</code>, che dice a DansGuardian di effettuare una scansione dei files attraverso l'antivirus ClamAV, installato in precedenza.
<br/>
Infine modifichiamo la riga in <code>firebox.sh</code> da
<pre>
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
</pre>
a
<pre>
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
</pre>
Lo scopo di questa modifica è fare in modo che la regola di iptables impostata all'inizio dell'articolo indirizzi ora i pacchetti verso il nostro url rewriter DansGuardian (che abbiamo infatti posto in ascolto sulla porta 8080), lasciando poi a quest'ultimo il compito di reindirizzare i pacchetti filtrati verso il proxy server.
=== Le blacklist ===
Per far funzionare al meglio il nostro DansGuardian abbiamo bisogno ancora di una cosa: un insieme di blacklist preconfezionato e diviso in categorie. Il migliore (e anche quello consigliato dagli autori di DansGuardian) è l'elenco scaricabile da URL Blacklist. Si noti che il download non è gratuito e che, prima di sottoscrivere un abbonamento, abbiamo diritto ad un solo download di prova. Purtroppo non sono a conoscenza di altre backlist compatibili con DansGuardian e altrettanto valide.
Scarichiamo delle blacklists aggiornate dal sito: [http://urlblacklist.com/?sec=download URL Blacklist]:
<pre>
<pre>
# tar -xzf bigblacklist.tar.gz
# tar -xzf bigblacklist.tar.gz
# mv blacklists /etc/dansguardian/blacklists
# mv blacklists /etc/dansguardian/lists
# chown -R root:root /etc/dansguardian/blacklists
# chown -R root:root /etc/dansguardian/lists
</pre>
</pre>
Così facendo abbiamo scompattato il file scaricato dentro la directory <code>/etc/dansguardian/lists</code>; verrà creata una sottodirectory chiamata blacklists contenente tutte le liste, immediatamente utilizzabili.
<br/>
Per rendere attive le blacklist scaricate dobbiamo aprire i files bannedsitelist e bannedurllist e decommentare le categorie di siti che intendiamo filtrare.
<br/>
Già che ci siamo, apportiamo anche alcune altre modifiche ad un paio di altri files, dato che le impostazioni di default potrebbero essere trovate troppo restrittive:
* bannedextensionlist: decidiamo per quali estensioni di files vogliamo consentire il download;
* bannedmimetypelist;
* weightedphraselist: la directory /etc/dansguardian/phraselists/badwords/ contiene le liste di frasi da censurare, divise per idioma.
Adattate ognuno di questi file alle vostre esigenze e, a configurazione ultimata, riavviate DansGuardian per fargli digerire le modifiche.
=== I filtri di DansGuardian ===
I files che permettono di agire sui filtri di DansGuardian, che in questo articolo descriveremo solo brevemente, si trovano tutti nella directory <code>/etc/dansguardian</code> e seguono questa convenzione:
* i file che cominciano per banned si riferiscono all'azione di "negare l'accesso";
* i file che iniziano per exception si riferiscono all'azione di "consentire l'accesso".
L'ordine in cui i file sono esaminati dal programma è il seguente:
* ''exceptioniplist'' - contiene l'elenco degli indirizzi IP che devono saltare il controllo dei contenuti (ad.es. gli indirizzi dei PC degli amministratori);
* ''exceptionuserlist'' - contiene l'elenco degli utenti che saltano il controllo di dansgardian (ad. es. gli amministratori);
* ''exceptionsitelist'' - contiene la parte terminale dei domini le cui pagine non saranno filtrate (ad. es. linux.org);
* ''exceptionurllist'' - contiene l'indirizzo di pagine di siti che non sono filtrate;
* ''blanket block'' - permette lo sblocco totale o parziale dei siti che sono indicati nei file greysitelist e greyurllist, a differenza dei file exception* il filtro è applicato;
* ''bannediplist'' - indirizzi IP dei PC che non devono avere accesso al web;
* ''banneduserlist'' - nomi degli utenti che non devono avere accesso al web;
* ''bannedregexpurllist'' - elenco delle espressioni regolari negli URL a cui negare l'accesso;
* bannedurllist - indirizzi di pagine web a cui non deve essere consentito l'accesso (serve per non bloccare un sito intero, ma solo parti di esso);
* ''blanket ip block'' - consente il blocco degli URL basati su IP;
* ''bannedsitelist'' - contiene la lista dei siti (domini) a cui non è consentito l'accesso (ad. es. sex.com);
* ''postupload'' - blocco o limite delle operazioni di upload (da impostare nel file /etc/dansguardian/dansguardian.conf);
* bannedmimetypelist - contiene la lista dei tipi MIME che saranno bloccati (è un modo eccellente per bloccare certi tipi di filmati);
* bannedextensionlist - contiene la lista delle estensioni di file da bloccare, può essere utilizzato per impedire lo scaricamento di certi "screen saver" e "hacking tools";
* exceptionphraselist - se in una pagina compare una frase indicata in questo file l'accesso è consentito (prudenza nell'utilizzare questa opzione);
* bannedphraselist - contiene la lista delle frasi negate, se in una pagina è presente una di queste frasi l'accesso è negato;
* weightedphraselist - a ogni frase è assegnato un valore positivo o negativo, nell'analisi di una pagina i valori sono sommati. Frasi che hanno a che vedere con "buoni argomenti" avranno valori negativi, con "cattivi argomenti" valori positivi. Se la somma raggiunge il naughtynesslimit (da impostare nel file di configurazione /etc/dansguardian/dansguardian.conf) l'accesso alla pagina è negato. In generale 50 è per i bambini, 100 i primi anni dell'adolescenza, 160 per i giovani adulti; i valori indicati possono servire da punto di riferimento, la sperimentazione fornirà quelli più indicati allo specifico caso.
Per mezzo del file bannedextensionlist è possibile bloccare lo scaricamento di file eseguibili (ad es. exe, mentre con il file bannedmimetypelist è possibile bloccare filmati indesiderati ad esempio video/mpeg).
<br/>
Per rendere attive eventuali modifiche è necessario riavviare il servizio:
<pre>
/etc/init.d/dansguardian restart
</pre>
=== Amministrazione per via grafica delle blacklist ===
Una via alternativa alla modifica manuale dei file di definizione delle blacklist può essere quella di utilizzare un modulo apposito di Webmin.
<br/>
Installiamo innanzitutto Webmin, ad esempio seguendo questa guida: [[Webmin: amministrare Debian via web]]
Quindi installiamo il modulo DG Webmin dal [http://dgwebminmodule.sourceforge.net/ sito ufficiale].
<br/>
Una volta scaricato, andiamo in ''Webmin - Webmin configuration'' e installiamo il modulo; quindi configuriamo il modulo installato, cambiando il path dell'eseguibile DansGuardian da <code>/sbin/dansguardian</code> a <code>/usr/sbin/dansguardian</code>.
== Calamaris, il generatore di report per Squid ==
Analizzare i file di log di un proxy risulta essere un'operazione piuttosto tediosa; è molto più conveniente utilizzare dei software in grado di generare i report degli accessi in modo automatico, come Calamaris. L'installazione e la configurazione di tale applicativo è piuttosto semplice:
<pre>
# apt-get install calamaris
</pre>
Ad installazione completata possiamo passare alla configurazione. Per prima cosa creiamo la directory calamaris in <code>/var/www</code> e le sottodirectory daily, weekly e monthly, in cui andranno salvati rispettivamente i report giornalieri, settimanali e mensili:
<pre>
# mkdir -p /var/www/calamaris
# mkdir -p /var/www/calamaris/daily
# mkdir -p /var/www/calamaris/weekly
# mkdir -p /var/www/calamaris/monthly
</pre>
Assegniamo i giusti permessi alle directory appena create:
<pre>
# cd /var/www
# chown www-data:www-data -R calamaris
</pre>
A questo punto possiamo creare il primo report, digitando:
<pre>
# calamaris -a -F html /var/log/squid3/access.log > /var/www/calamaris/index.html
</pre>
Il report sarà visualizzabile mediante browser alla seguente URL:
<pre>
http://192.168.10.254/calamaris
</pre>
Per ricevere i report direttamente via email (oltre ad ottenere il loro salvataggio nelle dir precedentemente create), possiamo modificare come segue il file cron.conf posizionato in <code>/etc/calamaris</code>:
<pre>
daily:vostro.indirizzo@email.it:/var/www/calamaris/daily/index.html:both:'Squid giornaliero'
weekly:vostro.indirizzo@email.it:/var/www/calamaris/weekly/index.html:both:'Squid settimanale'
monthly:vostro.indirizzo@email.it:/var/www/calamaris/monthly/index.html:both:'Squid mensile'
</pre>
== Conclusioni ==
Abbiamo visto in questo articolo un sistema abbastanza completo per implementare un proxy server che funzioni anche come filtro dei contenuti web da veicolare agli utenti di una LAN.
<br/>
Senza addentrarci in dettagli legali, vi ricordo che è necessario che una struttura che intenda installare un sistema di controllo della navigazione si doti anche di un regolamento per la navigazione internet, affisso nella bacheca degli annunci aziendali, allegato ad ogni contratto di assunzione e preventivamente discusso con gli organi sindacali della struttura stessa.
<br/>
A tale scopo può essere utile considerare le linee guida del Garante per lutilizzo di posta elettronica e internet, che possiamo così riasssumere:
* I datori di lavoro pubblici e privati non possono controllare la posta elettronica e la navigazione in Internet dei dipendenti, se non in casi eccezionali. Spetta al datore di lavoro definire le modalità d'uso di tali strumenti, tenendo conto dei diritti dei lavoratori e della disciplina in tema di relazioni sindacali.
* Il Garante privacy, con un provvedimento generale che sarà pubblicato sulla "Gazzetta Ufficiale", fornisce concrete indicazioni in ordine all'uso dei computer sul luogo di lavoro. "La questione è particolarmente delicata - afferma il relatore Mauro Paissan - perché dall'analisi dei siti web visitati si possono trarre informazioni anche sensibili sui dipendenti e i messaggi di posta elettronica possono avere contenuti a carattere privato. Occorre prevenire usi arbitrari degli strumenti informatici aziendali e la lesione della riservatezza dei lavoratori".
* L'Autorità prescrive innanzitutto ai datori di lavoro di informare con chiarezza e in modo dettagliato i lavoratori sulle modalità di utilizzo di Internet e della posta elettronica e sulla possibilità che vengano effettuati controlli. Il Garante vieta poi la lettura e la registrazione sistematica delle e-mail così come il monitoraggio sistematico delle pagine web visualizzate dal lavoratore, perché ciò realizzerebbe un controllo a distanza dell'attività lavorativa vietato dallo Statuto dei lavoratori. Viene inoltre indicata tutta una serie di misure tecnologiche e organizzative per prevenire la possibilità, prevista solo in casi limitatissimi, dell'analisi del contenuto della navigazione in Internet e dell'apertura di alcuni messaggi di posta elettronica contenenti dati necessari all'azienda.
* Il provvedimento raccomanda l'adozione da parte delle aziende di un disciplinare interno, definito coinvolgendo anche le rappresentanze sindacali, nel quale siano chiaramente indicate le regole per l'uso di Internet e della posta elettronica.
* Il datore di lavoro è inoltre chiamato ad adottare ogni misura in grado di prevenire il rischio di utilizzi impropri, così da ridurre controlli successivi sui lavoratori. Per quanto riguarda Internet è opportuno ad esempio:
** individuare preventivamente i siti considerati correlati o meno con la prestazione lavorativa;
** utilizzare filtri che prevengano determinate operazioni, quali l'accesso a siti inseriti in una sorta di black list o il download di file musicali o multimediali.
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 11:22, 2 set 2012 (CEST)
}}
[[Categoria:Monitoraggio]]
[[Categoria:Altri servizi di rete]]
[[Categoria:Network tools]]
[[Categoria: Proxy]]
3 581

contributi