Repository 32bit  Forum
Repository 64bit  Wiki

Privoxy Mini Howto

Da Slacky.eu.


Indice

Introduzione

per la tutela della privacy su internet. JunkBuster non viene più sviluppato dal 1998, ma grazie alla licenza GPL, Stefan Waldherr ha potuto attingere a quei sorgenti e aggiungere nuove funzionalità. Da quel momento, altri programmatori si sono aggiunti, fino a rendere Privoxy quello che è attualmente: un fedele compagno salva-banda.

Un'altro proxy server?

Privoxy è un proxy server, orientato + alla gestione dei contenuti più che al cacheing puro come Squid; non è un caso che i due proxy vengano spesso integrati. Non si tratta, come espresso da molti, di una inutile e dispersiva duplicazione di software, ma una vera e propria specializzazione nella mansione ad essi affidate.

Installazione

Per installare Privoxy, non serve molto impegno; se abbiamo swaret e la lista dei file presenti sui repository (cito solo slacky.it e linuxpackages.net ) aggiornati, basta un

# swaret --update
# swaret --install privoxy

Per avere un'installazione di privoxy completa e funzionante. Notiamo che è stato aggiunto un utente privoxy

# cat /etc/passwd | grep privoxy

Il risultato sarà simile a questo:

privoxy:x:1003:100::/etc/privoxy:/bin/false

Da Sorgenti

Per installarlo da sorgenti, invece, dovremmo eseguire un po' più di passi. Incominciamo con il decomprimere il pacchetto dei sorgenti:

# tar xzvf privoxy-3.0.3-2-stable.src.tar.gz
# cd privoxy-3.0.3-stable
# autoheader 
# autoconf
# ./configure
# make 

I primi due comandi servono per creare il file configure, dopodichè si può passare al classico ` make ` per creare gli eseguibili ed in seguito, a scelta, di creare un pacchetto tgz con checkinstall ( o makepkg ) oppure di installare manualmente ( sconsigliatissimo ) con make install.

Prima Configurazione

Privoxy, di default, rimane attivo sulla porta 8118, e onora solamente le richieste provenenti da localhost ( 127.0.0.1 ). Per controllare, basta avviare il proxy server

# /sbin/privoxy

E controllare con il fido nestat la situazione:

# netstat -nap | grep privoxy

Ci mostrerà un output del tutto simile a questo:

tcp 0   0 127.0.0.1:8118     0.0.0.0:*         LISTEN      6705/privoxy

Tra i files di configurazione di maggior interesse in /etc/privoxy troviamo, senza ombra di dubbio, il file relativo alla configurazione del servizio ( config ) e quelli della gestione dei filtri da applicare ( *.action e *.filter ). Per sfruttare al massimo il servizio appena installato, è necessario impostare il browser affinchè non contatti direttamente la risorsa su internet ma ne faccia richiesta al proxy server. In seguito lo renderemo trasparente con iptables e alcune semplici regole. E' sufficiente inserire l' indirizzo IP e la porta alla quale Privoxy onora le richieste nell' apposita sezione del browser. Per firefox, ad esempio, bisogna andare in Edit --> Preferences --> Connection Settings e impostare ? Manual Proxy Configuration?. Come indirizzo dell'HTTP Proxy inseriamo 127.0.0.1 sulla porta 8118. Salviamo e chiudiamo; se proviamo con un sito pieno di banner ( come www.repubblica.it ) notiamo qualcosa di diverso ?? =] Privoxy, una volta avviato, è facilmente raggiungibile via web; offre una semplice e comoda interfaccia web all'indirizzo http://config.privoxy.org oppure, molto più velocemente, http://p.p . Se siete i proprietari della macchina in cui è installato Privoxy ( ricordo che di default rimane attivo solo per localhost, ma vedremo come modificare ) verrete indirizzati verso la GUI, altrimenti sarete avvertiti della mancanza di autorizzazioni per l'accesso.

Un proxy per la rete locale, metodo velocissimo

Cerchiamo in /etc/privoxy/config la direttiva listen address, simile a

listen-address 127.0.0.1:8118

e modifichiamola in

listen-address 192.168.0.1:8118 

( sostituitelo con il vostro indirizzo di rete ). Ricordo che, se tale direttiva manca, il server si metterà in ascolto su tutti gli indirizzi ( estremamente sconsigliato per motivi ` igienici `).

Come Funziona?

E' bastata una semplice prova per verificare come Privoxy realmente effettui il filtraggio dei contenuti, e a questo punto c'è da capire come esso realmente avvenga. Privoxy utilizza un insieme di regole che modificano, a tutti gli effetti, il risultato finale: l'HTML che viene inviato dal web server e viene ricevuto dal proxy che lo filtra e lo passa al browser. Queste regole sono dette `action`, cioè azioni da compiere; è una azione eliminare una gif animata, sostituendola con un pattern di riempimento oppure con una gif bianca; è un'azione eliminare un flash, è un'azione eliminare del codice html che va a sfruttare dei bug di Internet Explorer o Firefox. Apriamo il file standard.action: sono elencati tutti i controlli e i filtri che verranno eseguiti. Il ? davanti indica che quel controllo è disattivato, mentre il + indica che è attivo. Quelle mostrate in standard.action sono delle impostazioni di default, che è opportuno non modificare. E' possibile crearne delle nuove, utilizzando un' altro file, user.action, dove se volete potete sperimentare nuove configurazioni e definire le eccezioni alle regole generali ( utili per quei siti un po' troppo delicati, come quelli dell' home banking ).

Amministrazione via WEB

Come si è visto, tramite un URL è possibile accedere ad una semplice console di management: tramite essa è possibile modificare le regole utilizzate nella selezione dei contenuti senza dover interagire con la shell di sistema. Con un click sulla prima voce ? View e Change the current configuration ? si arriva ad una pagina che permette di visualizzare e/o di editare alcuni file di Privoxy e che mostra sia l'istruzione di avvio del server stesso, sia un estratto dei valori della variabile nel file di configurazione. Selezionando ?Edit? si apre una nuova pagina web dove si possono modificare i filtri di default. Un click su tale bottone restituisce un errore di accesso non permesso, poiché tale funzione dovrà essere attivata manualmente. Tornando in shell ( è veramente bella, soprattutto quando usi aterm trasparente ) è necessario editare il file config modificando le seguenti direttive:

- Enable-edit-actions: permette di editare i file di configurazione tramite 
l'interfaccia via web. Va posto a 1
- Toggle: indica se all'avvio di privoxy debba effettuare o meno il filt
raggio dei contenuti.  Va posto a 1
- Enable-remote-toggle: Se posto ad 1 permette di disattivare e attivare
Privoxy dall'interfaccia web.

Dopo aver riavviato il server proxy, l'accesso al bottone Edit è adesso concesso: clicchiamo in corrispondenza di quello su default.action e si apre una nuova finestra in cui sono in evidenza quattro nuovi pulsanti: Edit, Set to Cautious, Set to Medium, Set to Adventuresome. Tramite gli ultimi tre è possibile scegliere un insieme di regole di default che poi potranno essere personalizzate con la pressione del primo bottone, Edit, in modo assai semplice e veloce. Se non ci sono particolari problemi, selezionate Set to Cautious, un approccio cauto ma funzionale.

Integrare Privoxy con Squid

Privoxy è orientato alla privacy, mentre Squid alla gestione della cache dei contenuti:sono in ascolto su due porte diverse, 8118 il primo e 3128 il secondo, ed è impossibile interrogarli contemporaneamente dal browser. Ecco, quindi, che i due server devono in quelche modo interfacciarsi tra loro, permettendo al client di vederli come un unico proxy. La configurazione che viene preferita, in questi casi, è quella che vede il browser interrogare squid che, a sua volta, interrogherà Privoxy per il reperimento delle risorse su internet:è quindi necessario modificare il file di configurazione di Squid per indicare allo stesso di effettuare un forward delle richieste. Nel file /etc/squid/squid.conf, subito dopo la sezione delle ACL e` possibile indicare le seguenti direttive:

cache_peer 127.0.0.11111 parent 8118 7 no-query
acl ftp proto ftp
always_direct allow ftp
never_direct allow all

con la prima riga si configura Squid per effettuare, per gli oggetti non presenti nella cache, una richiesta all`indirizzo 127.0.0.1 alla porta 8118, proprio quella di Privoxy. Squid, però, è anche un proxy ftp, econ la secodna e terza riga si indica di non passare le richieste FTP a Privoxy, in quanto non saprebbe come gestirle. Per tutto il resto del traffico (quarta riga) è necessario effettuare il forward e non accedere direttamente alla risorsa. A questo punto è necessario configurarer i browser per accedere all`indirizzo di Squid, con la porta standard 3128 ( Squid deve ovviamente essere in esecuzione ): al primo collegamento, però, avremo un errore di accesso non autorizzato, in quanto Privoxy era stato configurato per rimanere in ascolto solo sull` indirizzo 192.168.0.1, e non su localhost: è sufficiente inserire una modifica al file /etc/privoxy/config inserendo nuovamente

listen-address 127.0.0.1:8118

per risolvere il problema. Riavviando Privoxy con le nuove impostazioni tutto funziona a meraviglia, con la navigazione "veloce" grazie a Squid e "pulita" grazie a Privoxy.

Analisi dei log

L`uso dei proxy permette, oltre ad un utilizzo migliore della banda dispondibile, anche la possibilità di un maggiore controllo sulle risorse richieste dal web. Di tutta la navigazione viene tenuta traccia nei file di log di Squid, /var/log/squid/access.log che, se analizzati, possono offrire un dettaglio sui contenuti scaricati dal web per certi versi abbastanza inquietante. Monitorare l`attività del proxy server fa molto comodo all`amministaratore del sistema, che riesce a verigicare se l`attività di cache sta migliorando effettivamente le prestazioni del network, e l`importanza di tale compito viene dimostrata anche dalla presenza di un numero consistente di tool per compiere tali operazioni.


Citiamo, per onor di cronaca:

CALAMARIS          http://cord.de/tools/squid/calamaris/Welcome.html.en
SARG                     http://sarg.sourceforge.net/sarg.php


Ringraziamenti & Eventuali.

Intendo ringraziare innanzitutto Linux Pratico ( che mi ha permesso di scrivere questa sintesi del loro articolo ); rivista che consiglio a tutti, vista la correttezza dei contenuti e la cordialita' di chi li scrive. Volevo sottolineare poi che su slacky.it il pacchetto è stato rimosso per alcuni problemi che esso presentava. Se siete interessati, e magari volete provare a correggerli, fate un fischio "virtuale" sul forum.

HowTO By JJDaNiMoTh On Slackware Current, in 15 October 2005 .
Strumenti personali
Namespace

Varianti