Privoxy, il server proxy locale | OTHER chapters | ||||||
Privoxy è programma che agsisce come un server proxy HTTP e HTTPS, Free Software, attraverso il quale è possibile filtrare tutto il traffico web in partenza e in arrivo dal proprio computer. Cosa significa filtrare il traffico TCP/IP? Significa controllare tutte le informazioni che il nostro browser ( Internet Explorer, Firefox, Chrome ) associa ad ogni richiesta HTTP o HTTPS inviata. Privoxy, inoltre, è in grado di effettuare il controllo degli accessi, la rimozione dei banner pubblicitari e, per dirla con i loro autori, " di tutta l'odiosa spazzatura che circola in Internet ". Ancora, Privoxy è in grado di modificare i dati e gli header HTTP, anche in ingresso. Privoxy è un server proxy "non-caching", che non mantiene alcuna memoria di cache. Privoxy è disponibile per i sistemi operativi Linux ( Debian ed Ubuntu ), FreeBSD, Windows, OS/2, Mac OS X. Nei sistemi operativi Debian e derivati ( Ubuntu ), per installare Privoxy, è sufficiente eseguire:
Proviamo, ora, ad aprire, dal nostro browser, la pagina Home di Amazon:
Il nostro browser, per chiedere al server di Amazon di inviarci la home page del sito, prepara una richiesta HTTP che poi si incarica di spedire ad Amazon:
Come è chiaro da questo esempio, il browser accompagna la richiesta HTTP della pagina Home con una serie di informazioni che al server di destinazione ( Amazon ) potrebbero interessare per decidere quale contenuto inviare in risposta. Queste informazioni vengono inviate al server di destinazione servendosi dei cosiddetti Header HTTP, coppie di campo / valore previste dal protocollo HTTP, proprio per permettere ad un browser di far sapere al server di destinazione cosa, il computer client sul quale è installato il browser e che ha generato la richiesta HTTP, è in grado di ricevere. Gli header HTTP a disposizione sono moltissimi. Ciascun browser, di default, ne include solo alcuni. Trattandosi della versione 1.1 del protocollo HTTP, come specificato dalla prima riga della richiesta HTTP:
è possibile riferirsi alla Request for Comments ( RFC ) 2616, Hypertext Transfer Protocol -- HTTP/1.1, per conoscere tutti gli header disponibili ed il loro significato. Nel nostro esempio, gli header inviati sono:
A parte il primo ( Host ) che trasporta il nome del server di destinazione, tutti gli altri header trasportano informazioni relative al computer di origine della richiesta HTTP:
Come è possibile identificare un utente utilizzando gli header HTTP? "Per tracciare un utente, possono essere utilizzate anche le informazioni trasmesse ad altri livelli OSI, quali l'indirizzo IP. Mentre l'indirizzo IP di un utente, però, potrebbe cambiare da una sessione all'altra, alcuni header HTTP non vengono mai modificati, al fine di garantire una corretta comunicazione tra computer client ( utente ) e server web ... Inoltre, più termini possono essere contenuti in un header HTTP, più quell'header HTTP sarà particolare ed espressivo ... Campi come User-Agent o Accept permettono la combinazione di più termini e restano, normalmente, immodificati per un lungo periodo di tempo, almeno fino a quando l'utente non cambi il suo sistema operativo o il suo browser ( A Passive Attack on the Privacy of Web Users Using Standard Log Information ). Quindi, il contenuto di ciascuno degli header HTTP inviati dal nostro browser e, soprattutto, l'analisi comparata dell'insieme degli header HTTP inviati dal nostro browser ci espongono alla possibilità di un tracciamento piuttosto preciso della nostra attività in Internet. Questa tecnica, affiancata a tecniche ancora più pervasive, permette di creare profili molto dettagliati della nostra personalità: "Il termine Access Data Set ( ADS ) descrive una localizzazione temporale ( data e ora ) di un accesso ad un determinato indirizzo internet e un gruppo di termini associati a quell'accesso, termini che sono il contenuto di un numero selezionato di header HTTP. Un Extended Access Data Set ( eADS ) comprende, oltre alle informazioni contenute nell'ADS, anche informazioni molto personali, quali i dati immessi in una form internet ( modulo ). In questo modo, collegando un eADS a differenti ADS, è possibile identificare un utente con molta precisione, permettendo al collettore di tali informazioni non solo di tracciare l'utente, ma, addiritura, di crearne un profilo molto preciso" ( A Passive Attack on the Privacy of Web Users Using Standard Log Information ). Privoxy è un server proxy. Per far si che tutte le comunicazioni TCP/IP passino da Privoxy, quindi, sarà necessario dire al proprio browser di utilizzare un server proxy e quale server proxy utilizzare ( dando il suo indirizzo IP ), almeno per i protocolli HTTP e HTTPS ( SSL ).
Solitamente, le impostazioni proxy si trovano tra le opzioni di rete o di connessione del proprio browser. Per esempio, con Firefox, il percorso da seguire nel Menù dovrebbe essere:
Nella scheda che si apre, bisogna selezionare la voce " Usa Proxy " ( Configurazione Manuale dei Proxy ) ed inserire, sia per il protocollo HTTP, sia per il protocollo HTTPS ( oppure SSL ), i seguenti valori:
Le versioni precedenti alla versione 3.0.21 utilizzavano la porta 8000. Indirizzo IP e porta del server proxy impostato nel browser devono coincidere con indirizzo IP e porta monitorati da Privoxy, i cui valori sono pubblicati nel file di configurazione principale:
alla riga:
Prima di eseguire Privoxy, svuotate la cache del browser ed eliminate qualsiasi cookie. Poi, finalmente, eseguite Privoxy da riga di comando:
I file di configurazione di Privoxy I file di configurazione vengono salvati nella directory:
Il file di configurazione principale è:
ma, per la configurazione di Privoxy, è possibile utilizzare altri file di configurazione, quali:
Questi file di configurazione comprendono molti commenti, grazie ai quali è possibile capire tutte le funzionalità incluse nel server proxy. Tutti i file di configurazione sono file di testo e possono essere modificati con un editor di testo. Ogni cambiamento apportato ad un file di configurazione verrà intercettato automaticamente da Privoxy, che si occuperà di ricaricare in memoria il file, senza che debba farlo l'utente, a meno che quest'ultimo voglia indicare un file di configurazione differente da quello di default. In caso di modifiche ad un file, il caricamento in memoria delle modifiche avviene con la prima richiesta HTTP successiva alle modifiche: la prima richiesta HTTP, quindi, utilizzerà ancora la vecchia configurazione. In altre parole: per vedere gli effetti delle modifiche apportate, occorrerà attendere la seconda richiesta HTTP. Se si desidera rendere operative le modifiche immediatamente, è sufficiente eseguire lo stop del demone e il suo riavvio:
Molti parametri di configurazione possono essere controllati anche all'interno del browser, aprendo una delle due pagine locali seguenti:
Nella pagina web che si aprirà, troverete il seguente Menu:
Il Menu dovrebbe essere sufficientemente esplicativo. Il primo link, "View & change the current configuration", permette di manipolare i cosiddetti "actions files", utilizzati per definire le azioni che Privoxy deve eseguire, per ciascuno degli indirizzi web ( URL ) riportati, determinando, così, per ciascuna URL, il comportamento di Privoxy rispetto alle immagini, ai cookie e ad altri aspetti dei contenuti HTTP. Attenzione: affinchè sia possibile modificare le impostazioni via browser, occorre che, nel file di configurazione principale, sia impostata a 1 la voce:
Questa opzione dovrebbe essere impostata a zero, non permettendo le modifiche via browser, per tutti i sistemi operativi aperti ad utenti sconosciuti o inaffidabili. Visto e considerato che pochi utenti si preoccupano di leggere la documentazione dei programmi che usano, questa opzione, di default, è disabilitata ( impostata a zero ). Alcuni linguaggi "client side", quali Java, sono in grado di utilizzare i file "actions": prima di abilitare questa funzione quindi, dovete assicurarvi di aver ben compreso i suoi effetti e di aver configurato correttamente il vostro browser. Il file di configurazione Il file di configurazione principale è composto da più righe di testo, ciascuna delle quali contiene il nome di un parametro e la lista dei valori che assume, ciascuno separato dall'altro da uno o più spazi bianchi. Per esempio:
Questo file di configurazione controlla tutti gli aspetti generali ( non dipendenti dalla URL ) delle operazioni di Privoxy. I parametri configurabili sono:
La spiegazione di ciascuno di questi parametri è reperibile nel file di configurazione stesso. Per scorrere il file, eseguire:
I file di configurazione delle azioni ( Actions Files ) I file di configurazione delle azioni ( Actions Files ) contengono le configurazioni delle azioni di filtraggio ( blocco degli inserti pubblicitari, gestione dei cookie, gestione della privacy ) per gruppi di siti e per i singoli siti o per le singole URL. La sezione:
del file di configurazione principale (
Sono disponibili molte azioni, ciascuna delle quali fa qualcosa di diverso dalle altre. L'insieme delle azioni costituisce un vero e proprio arsenale di potenti strumenti per l'esercizio del nostro controllo, delle nostre preferenze e della nostra indipendenza. Le azioni possono anche essere combinate insieme, così da sommarne gli effetti, quando applicate ad un gruppo di URL. Privoxy, di default, include 3 "action file":
Nel primo file, il primo "action file" caricato in memoria, vengono definite le azioni da intraprendere, di default, rispetto al caricamento delle immagini, al blocco dei banner, oppure delle finestre pop-up, alle modifiche ai contenuti, alla gestione dei cookie. Il secondo file, caricato in memoria subito dopo il primo, contiene le deviazioni ( eccezioni ) dal comportamento di default, definito nel primo file. Il terzo file, caricato in memoria per ultimo, contiene le deviazioni ( eccezioni ) dal comportamento di default, riservate a singoli siti locali, quali i siti della propria banca o del proprio internet provider. È il solo file che si suppone possa essere modificato direttamente da un utente ( diverso da root ).
Per modificare i file di configurazione, è possibile utilizzare un editor di testo qualsiasi, oppure utilizzare l'interfaccia web, presente all'indirizzo locale:
In una configurazione di default, l'interfaccia web presenta i bottoni "VIEW", per ciascun file di configurazione, ma non i bottoni "EDIT", i soli che permetterebbero, all'utente, di apportare modifiche ai file. Per far apparire il bottone "EDIT", nell'interfaccia web dell'editor grafico per i file di configurazione di privoxy, occorre che, nel file di configurazione principale (
Se il valore di questa variabile fosse a zero, come di solito avviene, sarà sufficiente modificare, direttamente, la riga, utilizzando un editor di testo. Una volta premuto il bottone EDIT, sarà possibile modificare i singoli valori delle variabili impostate nei file di configurazione, oppure scegliere uno tra tre differenti livelli di protezione, ciascuno dei quali comporterà la configurazione automatica di un gruppo di variabili. I tre livelli di protezione sono:
impostabili premendo il relativo bottone EDIT:
I tre livelli di protezione corrispondono a tre differenti livelli di aggressività. Il livello impostato di default è "Cautious". I nuovi utenti dovrebbero provare questo livello, per un certo tempo, prima di addentrarsi in livelli più aggressivi, che potrebbero comportare grosse limitazioni alla navigazione, almeno in determinati siti web.
Se il bottone EDIT permette di impostare ogni singola azione su ON/OFF, il bottone Cautious modifica la lista delle azioni ad un livello basso/sicuro, che attiva il blocco degli ads ( inserti pubblicitari, quali: immagini, animazioni, contenuti audio e video nascosti, contenuti testuali, finestre pop-up ) ed un gruppo minimale di funzioni Privoxy, limitando, di conseguenza, i rischi di una navigazione non ottimale. Il bottone Medium imposta la lista delle azioni ad un gruppo di funzionalità Privoxy più esteso, accompagnato da un gruppo di basso livello di funzionalità inerenti la privacy. Il bottone Advanced imposta la lista delle azioni ad un alto livello di blocco degli ads e ad un medio livello di funzionalità inerenti la privacy.
Gli Action file vengono eseguiti nello stesso ordine in cui sono scritti nel file di configurazione principale (
Sotto la riga di intestazione, troviamo una lista di indirizzi web ( URL ), composti anche da pattern, uno per riga, sui quali Privoxy dovrà eseguire le azioni riportate nell'intestazione. Per esempio:
È possibile verificare le azioni da applicare ad una URL, usando il motore di ricerca che si trova alla pagina locale:
Generalmente, una URL è composta da:
dove sia "domain", sia "port", sia "path" sono opzionali. Il pattern:
quindi, riscontra qualsiasi indirizzo web. Per il dominio e per il percorso si utilizzano due sintassi per i pattern differenti: per il primo, si utilizzano le tecniche Unix di globbing, mentre per il secondo si possono utilizzare le espressioni regolari (POSIX 1003.2, compatibili con le espressioni regolari di Perl ). Nel globbing, si possono utilizzare le wildcard:
dove l'asterisco indica: zero o più caratteri, il punto interrogativo indica un solo carattere, le parentesi quadre indicano una classe di caratteri, cioè un carattere compreso nella classe (abc), oppure un carattere non compreso nella classe (
Questo pattern riscontra URL quali:
ma non riscontra URL quali:
Il pattern:
riscontra tutte le URL che iniziano con le 3 w, con o senza il punto finale. Il pattern:
riscontra qualsiasi FQDN ( Fully Qualified Domain Name ), o indirizzo, che contenga
Le azioni disponibili sono ben descritte nel file di configurazione:
Le azioni sono disabilitate, di default, e devono essere abilitate esplicitamente, all'interno di uno degli Actions File. Per attivare un'azione, è sufficiente anteporre al suo nome il segno
Per disattivare un'azione, invece, è sufficiente anteporre al suo nome il segno
Le azioni possono ricadere in tre distinte categorie:
Le azioni booleane sono quelle azioni che possono solo essere attivate o disattivate, quali:
Le azioni, con un parametro, valide: Le azioni con parametro sono quelle azioni che, per funzionare, necessitano di un qualche parametro, quanto meno in fase di attivazione:
L'azione
Quando l'utente invia una richiesta ad un indirizzo web bloccato ( "BLOCKED" ), Privoxy presenta una pagina HTML di destinazione speciale. Questa pagina presenterà il messaggio contenente il motivo del rifiuto, passato alla funzione
appare solo se, nel file di configurazione principale,
Per non far apparire il link al contenuto bloccato, impedendo, così, all'utente di aprirlo, è sufficiente impostare la variabile
L'azione booleana
Anche l'azione booleana
che richiede, come unico parametro, il tipo di immagine da utilizzare:
indica un'immagine 4x4 grigio/bianca;
indica un'immagine 1x1 trasparente, che rende, però, difficile riscontrare l'azione di Privoxy;
rappresenta un indirizzo, locale o remoto, in cui trovare l'immagine da pubblicare. Le azioni, con un parametro, valide: Dovremmo, ormai, sapere che l'header HTTP:
contiene, nel caso di utilizzo di server proxy, l'indirizzo IP reale dell'utente client. L'azione
Il parametro:
blocca l'invio dell'header HTTP
aggiunge, ad ogni richiesta HTTP del client, l'header HTTP Le azioni, con un parametro, valide: Riscrive o rimuove singoli header HTTP del client. Questa azione accetta, come unico parametro, il nome di un filtro, così come definito in uno dei file dei filtri ( filter file ):
In quest'ultimo esempio, stiamo invocando il filtro chiamato
Le azioni, a valori multipli, valide: Le azioni con molteplici valori sono quelle azioni che vengono eseguite più volte su una stessa URL, ma, ogni volta, con parametri differenti. Per esempio, è possibile, inviare ad un server web uno o più header HTTP personalizzati, così da confondere il server di destinazione e creare un po' di confusione nei file di LOG:
Questa azione può essere specificata su più righe, in modo da creare più header HTTP personalizzati. Si consiglia di utilizzare il prefisso "X-" per gli header personalizzati. Ovviamente, Privoxy non effettuerà alcuna verifica sugli header personalizzati.
|
|||||||
Privoxy, il server proxy locale | The .bit guides: original contents |