Privoxy è un progetto Open Source, rilasciato con licenza GPLv2, che deriva da "Internet Junkbuster"; il nome, nelle intenzioni degli sviluppatori, è un diminutivo che sta per "Privacy Enhancing Proxy" ovvero proxy in grado di aumentare la privacy. È quindi un servizio che, interponendosi nella connessione ad internet e agendo da filtro, ha la capacità di bloccare pubblicità, cookie e tracker al caricamento di una pagina web. Le sue capacità di filtraggio però non si limitano solo a questo; è infatti possibile creare filtri personalizzati e applicarli selettivamente ad un particolare sito web piuttosto che indistintamente a tutti.

Contrariamente alla maggior parte delle soluzioni che permettono di ottenere un risultato simile, questo non è un componente aggiuntivo per un particolare browser ma è un programma a se stante ed è possibile quindi usufruire di questo potente filtro su tutti i principali sistemi operativi (esistono versioni per Linux, BSD, Mac OS e naturalmente Windows) e con ogni browser che consente di modificare le impostazioni di connessione a internet! Può anche essere utilizzato con i client di posta per filtrare le pubblicità che arrivano come pagine HTML (ATTENZIONE: NON È UN FILTRO ANTISPAM!! In questo caso Privoxy filtra solo il contenuto delle mail, eliminando, secondo i filtri impostati, banner pubblicitari, script, pixeltag, … ). Privoxy può anche essere utilizzato in una LAN: è sufficiente cambiare il listen-address nel file di configurazione in modo che punti all'indirizzo IP del computer sul quale è installato anziché all'indirizzo di loopback 127.0.0.1.

Installazione

Abbiamo detto che Privoxy può essere installato su tutti i principali sistemi operativi; per Linux vi consiglio di consultare la guida della vostra distruzione (ne troverete almeno una per ogni gestore di pacchetti), qui vedremo come installarlo su Windows e Mac OS.

Windows

Scarichiamo l'ultimo file di installazione stabile (stable) che possiamo trovare all'indirizzo http://sourceforge.net/projects/ijbswa/files/Win32 e poi eseguiamolo con diritti di amministratore.

Il processo di installazione è piuttosto semplice e le possibili modifiche sono veramente poche.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Possiamo comunque lasciare immutate tutte le impostazioni così come sono.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Alla fine dell'installazione ci verrà chiesto se vogliamo lanciare subito Privoxy; clicchiamo pure su sì.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Dopodiché si aprirà una (bruttissima!!) finestra completamente vuota. Assicuriamoci che Privoxy sia effettivamente attivo e poi possiamo ridurre ad icona questa finestra.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Su Windows è possibile configurare un proxy di sistema. Questa scelta sarà onorata da quasi tutti i browser (Internet Explorer, Edge ma anche Google Chrome e Opera); solo Firefox necessita di un passaggio in più per utilizzare il proxy di sistema (vedremo poi come fare).

Per far ciò andiamo nel buon vecchio menu “Start” e selezioniamo “Impostazioni”.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Poi andiamo su “Reti e Internet”.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Selezioniamo “Proxy” sulla colonna di sinistra, attiviamo “Usa server proxy” e configuriamolo con i seguenti dati: indirizzo 127.0.0.1 e porta 8118. Mettiamo anche la spunta su “Non usare server proxy per indirizzi locali (Intranet)”.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Ricordiamoci inoltre di eliminare la cache dei browser una volta impostato l'utilizzo del proxy!

La configurazione di default di Privoxy è tale da non arrecare grossi problemi durante la navigazione ma garantisce comunque un buon filtraggio dei contenuti. Vediamo qualche immagine di confronto prima (sinistra) e dopo (destra) l'utilizzo di Privoxy con configurazione di default, su Internet Explorer:

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Direi che il risultato non è male ;)

Disinstallazione: per disinstallare Privoxy si può utilizzare il gestore dei programmi di Windows. Ricordarsi di resettare anche le impostazioni del proxy di sistema!

Mac OS

Scarichiamo l'ultimo pacchetto di installazione stabile (stable) con estensione .pkg che troviamo all'indirizzo http://sourceforge.net/projects/ijbswa/files/Macintosh%20%28OS%20X%29/. Una volta scaricato, doppio click per far partire l'installazione.

NOTA: L'istallazione potrebbe non partire per via delle impostazioni di sicurezza; se così fosse clicchiamo sulla “mela” in alto a sinistra, “Preferenze di Sistema” e poi su “Sicurezza e Privacy”: se abbiamo già provato ad eseguire l'installazione dovrebbe esserci il nome del pacchetto di installazione e accanto un pulsante “Avvia comunque”, altrimenti, sotto a “Consenti app scaricate da:”, selezioniamo momentaneamente “Dovunque” e proviamo di nuovo a lanciare l'installazione.

Una volta avviata l'installazione, seguiamo la semplice procedura guidata.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Accettiamo la licenza solo dopo averla letta attentamente.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Scegliamo di installarlo per tutti gli utenti e avviamo l'installazione.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Alla fine dell'installazione si aprirà un file .rtf con la procedura da seguire per la configurazione del proxy di sistema.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Seguiamo questa procedura, avviamo Safari e godiamoci anche qui una navigazione senza pubblicità e al riparo dagli spioni.

Disinstallazione: per disinstallare Privoxy è sufficiente aprire il Terminale ed eseguire questo comando:

sudo /Applications/Privoxy/uninstall.command

Inseriamo la password e rispondiamo sempre si (Y) alle domande che ci verranno mostrate. Ovviamente dobbiamo ricordarci anche di cancellare le impostazioni del proxy di sistema.

Configurazione di Firefox

Andiamo su “Menu” e poi su “Opzioni”.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Poi nella colonna di sinistra su “Avanzate”, tab “Rete” e clicchiamo su “Impostazioni”.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Se abbiamo già impostato il proxy di sistema possiamo selezionare “Utilizza le impostazioni proxy del sistema” altrimenti selezioniamo “Configurazione manuale del proxy”, inseriamo il solito indirizzo e la solita porta in “Proxy HTTP” e confermiamo con OK.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Configurazione alternativa per Google Chrome

Se non vogliamo utilizzare un proxy di sistema ma vogliamo comunque utilizzare Privoxy con Google Chrome, possiamo installare questa estensione: Falcon Proxy che ci consente di configurare quanti e quali proxy vogliamo utilizzare e attivarli o meno al bisogno.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux) - estensione_googlechrome

COME FUNZIONA PRIVOXY: azioni e filtri

Privoxy funziona in un modo che all'inizio può sembrare complesso in realtà, una volta capito il meccanismo, è piuttosto semplice. Si basa principalmente sulla configurazione di due tipi di file: file azioni e file filtri. Vediamoli più in dettaglio.

Azioni (Actions)

I file “azioni” sono utilizzati per definire il comportamento di Privoxy al caricamento di un particolare sito o pagina web (oppure di qualunque sito o pagina web) e/o al caricamento di determinati oggetti HTML (banner, javascript, testo, … ).

Ci sono tre file di azioni:

  1. match-all.action: che contiene le regole principali da applicare a tutti i siti;
  2. default.action: che contiene delle eccezioni (che possono essere più restrittive o più permissive) alle regole principali;
  3. user.action: che contiene le regole specificate dall'utente. Questo file è molto importante perché è l'unico che non viene sovrascritto quando si aggiorna Privoxy (non che gli aggiornamenti siano frequenti comunque… ).

I file “azioni” sono letti da Privoxy nell'ordine presentato sopra e “vince” l'ultima regola incontrata specifica per il sito che stiamo caricando in quel momento. Questo ci fa capire che anche l'ordine delle regole nel file user.action è molto importante (una eventuale lista di esclusione, o whitelist, di siti dovrà andare in fondo a questo file se vogliamo essere sicuri che funzioni!).

Privoxy ha già tre configurazioni previste in match-all.action (Caution, Medium, Advanced) e quella abilitata di default è quella che ha capacità filtranti minori (Caution), questo, come già detto, per garantire una navigazione quanto più priva di problemi. Nell'immagine sotto possiamo farci un'idea di quanto è possibile aumentare le capacità filtranti rispetto alla configurazione di default.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux) - defaultconfiguration

Ogni azione è composta principalmente da quattro elementi:

  1. +” o “-”: sta ad indicare se quella azione deve essere eseguita (+) o esclusa (-);
  2. tipo” di azione: una fra le 35 previste (è anche possibile combinare più azioni insieme);
  3. un “parametro”: da passare al tipo di azione, se questa la richiede;
  4. uno o più “pattern”: indicano quando l'azione è interessata (se il sito visitato contiene il “pattern” l'azione è interessata, altrimenti quell'azione non viene eseguita per quel sito). Questo è a sua volta formato da tre elementi nella seguente forma: host:porta/path. Tutti gli elementi del “pattern” possono essere espressi anche attraverso le “Espressioni Regolari”. È possibile indicare l'host sia come nome che come indirizzo IP (anche IPv6 racchiudendolo tra i tag < >) mentre si omette sempre il prefisso “http://” perché questo è sottinteso.

Questi quattro elementi combinati insieme formano un'azione che si presenta nella forma:

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Filtri (filters)

I file “filtri” sono solo due: default.filter e user.filter.

In default.filter sono specificati tutti i filtri che si applicano per la sostituzione del codice delle pagine HTML e per la sostituzione delle intestazioni di pacchetto (o Header) del client (per esempio, il nostro browser) e del server che stiamo contattando. Tali filtri sono generalmente composti da una “stringa da sostituire” e una “stringa sostituta” legate fra loro secondo la sintassi prevista dall'operatore “s///” del linguaggio di programmazione Perl. Come per user.action, anche il file user.filter viene mantenuto e non sovrascritto all'aggiornamento di Privoxy. Assegnando un nome ad una regola-filtro è possibile invocare tale filtro come “azione”, specificando (per esempio nel file user.action) l'invocazione con la forma:

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Nel file default.filter sono già previsti alcuni filtri invocabili come azione. Per dare un'idea di come si compone un filtro, l'aspetto finale è più o meno questo:

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Potendo usare i caratteri speciali previsti da Perl, i filtri possono diventare anche molto complessi e apparire, a chi è completamente digiuno di espressioni regolari, come dei veri e proprio geroglifici!!

Se tutto questo non bastasse, Privoxy supporta anche filtri esterni che possono essere programmi (per esempio, imagemagick) o shell script.

Configurazione

Se vogliamo modificare le azioni di default abbiamo due possibilità: la prima è quella di andare, con un semplice editor di testo, a modificare “a mano” i file descritti sopra; la seconda e più semplice via è quella di abilitare la modifica di questi file tramite browser, attraverso l'interfaccia fornita da Privoxy, raggiungibile (una volta impostato correttamente il browser) a questo indirizzo: http://p.p/ .

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Questa pagina ci da molte più informazioni di quante possiamo immaginare a prima vista. Per prima cosa, il solo fatto che questa pagina sia raggiungibile, significa che abbiamo configurato correttamente il browser per l'utilizzo di Privoxy. Nella parte in alto, comune a tutte le altre pagine che vedremo più avanti, troviamo altre importanti informazioni come, la versione di Privoxy, il computer sul quale è in esecuzione, qual'è il listen-address (in questo caso, 127.0.0.1), qual'è la porta abilitata e se attivo. In fondo,anche questo comune a tutte le pagine, troviamo una serie di utili collegamenti tra cui il manuale e la raccolta di donazioni. Nella parte centrale invece troviamo un menù con le seguenti voci:

  • View & change the current configuration: come dice il nome, consente di vedere e, dopo una piccola modifica, cambiare la configurazione corrente.
  • View the source code version numbers: presenta una semplice lista con i vari file che compongono il codice sorgente, seguito dal numero di versione, dalla data dell'ultima modifica e dal nome dello sviluppatore; questa sezione non ci interessa se abbiamo scaricato i file di installazione già compilati.
  • View the request headers: qui possiamo vedere l'intestazione che il nostro browser presenta quando chiediamo di visualizzare una pagina e più sotto quella presentata dopo il filtraggio di Privoxy; ovviamente saranno diverse solo se abbiamo attivato qualche azione che modifica il client-header.
  • Look up which actions apply to a URL and why: questa è una pagina molto importante se decidiamo di applicare configurazioni di regole più restrittive e qualche sito visitato non viene visualizzato correttamente o se decidiamo di creare azioni personalizzate (per esempio inseriamo un sito in whitelist). Qui è infatti possibile inserire l'indirizzo di una pagina web per vedere quali azioni vengono eseguite per quel particolare sito, consentendoci di individuare quelle che potrebbero essere causa di una visualizzazione non corretta oppure anche di verificare se la nostra eventuale whitelist funziona.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

In merito alla prima voce del menu (View & change the current configuration), con le impostazioni d default, non è consentita la modifica ma solo la visualizzazione delle azioni attraverso l'interfaccia web. A mio avviso, almeno all'inizio, è consigliabile attivare anche la modifica, non solo per la rapidità nell'eseguire eventuali cambiamenti o aggiunte alle azioni, ma anche perché la visualizzazione dei file azione tramite il tasto “Edit” è priva dei prolissi commenti (che sono comunque da leggersi con calma!) ed è presentata in modo da rendere più comprensibile “a colpo d'occhio” come sono strutturate e organizzate le diverse azioni. Per fare ciò, con qualsiasi editor di testo, andiamo a cambiare un valore nel file di configurazione principale: questo file si trova in /etc/privoxy/config, C:\Programmi(x86)\Privoxy\config.txt o /Application/Privoxy/config a secondo del sistema operativo che stiamo utilizzando (rispettivamente Linux, Windows e Mac). Come potete vedere è molto ben commentato e lascio a voi scoprire tutte le possibilità offerte (per esempio, l'attivazione del tasto per abilitare/disabilitare Privoxy). Adesso cerchiamo la stringa enable-edit-actions 0 , sostituiamo lo 0 con 1 e salviamo. ATTENZIONE: per la modifica di questo file sono necessari i diritti di amministratore!

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

A questo punto possiamo raggiungere questo indirizzo e cominciare ad ispezionare e editare le azioni. In questa pagina ci verrà inoltre mostrato con quali privilegi e opzioni Privoxy è eseguito, qual'è la configurazione attuale, una statistica delle richieste bloccate e i parametri attivati durante la compilazione del programma. Se clicchiamo su “Edit” accanto a match-all.action, vedremo per prima cosa un avviso che ci raccomanderà caldamente di leggere il manuale e avremo la possibilità di cambiare la capacità di filtraggio tra quelle previste con i tre comodi tasti. Provando a cliccare su Medium o Advanced vedrete come si allunga la lista delle azioni che Privoxy eseguirà su ogni sito che visitiamo (salvo regole diverse)! Prima di cambiare definitivamente set di azioni, vi consiglio di utilizzare per un po' Privoxy in modalità Caution e poi procedere per gradi. Questo perché le modalità Medium e Advanced richiedono la creazione di liste di esclusione (whitelist) per determinati siti e procedere per gradi facilità il compito di individuare quali sono le azioni da escludere per ogni sito web.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Noterete, inoltre, che anche qui è presente un tasto “Edit”: serve per abilitare o disabilitare ogni singola azione prevista (corredata qui da una breve descrizione) in modo da creare una configurazione personale. Le tre colonne sulla sinistra permettono di attivare (Enable), disattivare (Disable) o lasciare immutata rispetto a quello che è previsto dalla configurazione di base scelta (No Change). Notate che nella colonna Description, sono presenti anche dei campi testo editabili per l'inserimento dei parametri richiesti dall'azione posta immediatamente sopra.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Torniamo a View & change the current configuration e clicchiamo questa volta su tasto “Edit” accanto a default.action: oltre alla solita raccomandazione a leggere il manuale qui avremo la possibilità di vedere in una volta tutte le azioni che sono attivate con ognuna delle configurazioni preimpostate.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Più sotto troverete invece le eccezioni, che possono essere più restrittive (quando hanno segno +) o più permissive (quando hanno segno -). Qui avremo modo di eliminare (Remove) o modificare (ancora: Edit) ogni singolo pattern che attiva quella determinata azione.

Andiamo a vedere adesso il file che più ci interessa: user.action. Questo file ha impostato dei gruppi di azioni di esempio, molti dei quali rappresentano diversi tipi di whitelist (riconoscibili dal segno – davanti ad ogni azione). Come vedremo tra poco, una di queste, che risulterà molto utile, dopo aver impostato la match-all.action, per esempio su Medium, quando avremo problemi nella visualizzazione di un sito, è quella composta dalle azioni -block, -filter{banner-by-link} e -filter{banner-by-size} ...

Gestione dei Blocchi

Se impostate azioni più restrittive del livello Caution, durante la navigazione potreste incontrare dei siti che potrebbero non andare d'accordo con i filtri di Privoxy e la loro visualizzazione totale o parziale potrebbe risultare compromessa. Vediamo adesso le situazioni che si potrebbero presentare più di frequente.

Immagini non visualizzate.

Privoxy può bloccare le immagini in base alla loro dimensione e le sostituisce con una contenente delle sfumature bianche-grigie (questo rende subito riconoscibile il responsabile della mancata visualizzazione dell'immagine). Se passiamo sopra il cursore del mouse potremo avere la conferma (a volte questa potrebbe non essere visibile) che l'immagine è stata “uccisa” (killed) a causa della sua dimensione (by-size).

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

In questo caso la soluzione è semplice: basta creare un'azione (in user.action) che contenga -filter{banner-by-size} e che abbia come pattern la URL del sito con l'immagine bloccata (in questo esempio, potremo scegliere di non bloccare nessuna immagine per le dimensioni nell'intero dominio .istitutomajorana.it).

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Indirizzo bloccato

Potrebbe capitare che un particolare indirizzo attivi un'azione che blocca il raggiungimento di un intero sito.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

Oppure di un frame contenuto in un pagina web.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

In questo caso, prima di andare a creare un'azione di esclusione apposita per quel sito, Privoxy ci offre la possibilità di caricare quel sito ugualmente (go there anyway o go to "indirizzo-del-frame"); questa opzione è molto utile nel caso in cui stiamo visitando un sito che pensiamo di non visitare più inseguito. Viceversa se questo accade per un sito che visitiamo abitualmente, possiamo vedere quale azione applicata è responsabile del blocco del sito (See why this block applies) ma è bene tenere presente che questo tipo di blocco si aggira con l'azione -block e come pattern, ovviamente, la URL del sito bloccato (o del sito origine del frame).

A questo punto, se ricordiamo che le azioni possono essere combinate insieme, è possibile sfruttare il set di azioni già presente in user.action (e sopra descritta) per creare una whitelist di siti che non intendiamo filtrare.

Mancata redirezione

Se attivate la modalità Advanced, potrebbe presentarsi, generalmente dopo una ricerca, un errore di redirezione.

Meno pubblicità più privacy: Guida completa Privoxy (Windows/Mac/Linux)

La pagina di errore ci segnala che il problema potrebbe essere il rifiuto dei cookie ma spesso questo errore si risolve attivando solo l'azione -fast-redirects per la URL di origine.

Queste sopra sono solo alcune indicazioni e non è detto che siano valide per ogni sito che presenta i problemi indicati: alcuni siti potrebbero aver bisogno di escludere più azioni per funzionare correttamente ed è per questo impossibile fare una guida esaustiva per la creazione delle whitelist in base agli errori che si presentano.