Come proteggere la propria privacy, aggirare la censura e navigare velocemente usando software liberi (Tor + Polipo + Privoxy + pdnsd)

Con questa guida cercherò di spiegare come configurare il proprio pc, in modo da avere i vantaggi della navigazione anonima tramite i proxy distribuiti di Tor, il filtraggio di banner e script fastidiosi o maliziosi dalle pagine dei siti, e contemporaneamente, mantenere un consumo di risorse ed una velocità accettabili, se non migliori di quelle abituali. Per fare questo, userò una combinazione di programmi configurandoli per lavorare assieme, e farò delle modifiche alla configurazione predefinita del browser.

I programmi che utilizzerò sono:

  • Tor: un sistema di proxy distribuiti, che ci permetterà di ridurre parecchio la nostra tracciabilità da parte di provider e siti visitati. Oltre a questo, ci darà la possibilità di accedere a quei siti bloccati dalla censura dei filtri statali, come The Pirate Bay, oppure a quei siti che impediscono l’accesso in base al paese d’origine di chi vi accede, come la webradio Pandora. Tor è inoltre supportato ed utilizzato da molti programmi di chat e peer to peer.
  • Privoxy: un proxy senza cache che filtra i contenuti delle pagine. Elimina con una buona efficacia banner pubblicitari, popup, script e cookie traccianti. Lo scopo è simile a quello dell’accoppiata Ghostery + Karmablocker, di cui avevo già scritto. Il vantaggio di utilizzare un servizio locale di proxy, è l’indipendenza dal browser. Ovvero, posso avere il vantaggio dei filtri su qualsiasi browser che decida di usare, senza la necessità di cercare ed installare diverse aggiunte specifiche per ogni browser. In questo modo, posso mantenere il browser leggero, oppure utilizzare dei browser che non hanno a disposizione quei particolari addon. L’occupazione di risorse di privoxy, è molto inferiore a quella del solo Adblock plus, e permette di fare un filtraggio molto più efficace. Nelle prove fatte, comunque, ho riscontrato che una soluzione con privoxy è più lenta di una in cui vi sono solo tor, polipo, pdnsd ed il filtraggio di script e pubblicità è affidato ad addon di firefox come NoScript e Karmablocker. In alternativa, è possibile convertire e caricare le liste di AdBlock in Polipo a scapito, però, di un occupazione in memoria maggiore.
  • Polipo: un proxy con cache estremamente veloce ed efficiente. Servirà per velocizzare la navigazione, riducendo i tempi di attesa che Tor, per via del suo funzionamento, inevitabilmente introduce. Questo software è talmente leggero e veloce che, utilizzandolo al posto della cache di Firefox, che verrà disabilitata per evitare di fare un inutile doppio lavoro di caching, si può notare un visibile incremento di prestazioni. Anche in questo caso, utilizzando più browser diversi, si ha il vantaggio di avere una cache comune che velocizza gli accessi e riduce lo spreco di spazio su disco causato dall’avere più programmi diversi, ognuno con la propria cache separata.
  • pdnsd: un server dns che crea una cache locale su disco fisso. I vantaggi che porta questo software sono due. Protegge la privacy facendo passare le richieste di risoluzione dei nomi degli indirizzi attraverso Tor, rendendole quindi anonime e difficilmente loggabili dal provider. Migliora la velocità di risoluzione degli indirizzi grazie alla cache locale. Dopo un breve utilizzo, la maggior parte delle risoluzioni verranno fatte direttamente sul proprio pc, senza dover attendere i tempi di risposta, spesso lunghi, di server esterni. Anche questo, compensa la latenza che normalmente verrebbe introdotta da Tor. È possibile anche configurare dei server DNS secondari, nel caso la risoluzione dei nomi attraverso tor non funzionasse. In quel caso, le richieste non sarebbero più distribuite e difficili da tracciare, ma si tratterebbe di un compromesso che viene usato solo nei casi peggiori, mentre nel caso migliore, la richiesta verrebbe soddisfatta rapidissimamente dal proprio pc, senza neppure contattare un server esterno.

Le operazioni da fare non sono per nulla complicate. Personalmente ci sono riuscito andando per passi successivi e testando il funzionamento dei vari programmi mano a mano che li configuravo, in modo da rendermi conto subito di eventuali errori. Cercherò di mantenere la guida chiara e modulare, in modo da permettere a chi legge di testare mano a mano il funzionamento delle varie parti e, se preferisce, implementarne soltanto alcuni passaggi invece di tutti, o di potersi fermare a metà, mantenendo il sistema funzionante. Per poi, magari aggiungere gli altri passaggi quando vorrà. Nella maggior parte dei casi, bastano modifiche minime alle impostazioni predefinite. I motivi per cui sto scrivendo questa guida sono che in rete non ho trovato ancora una guida veloce e completa sull’integrazione di tutti questi programmi assieme, ma solo di alcuni (Tor + Polipo, oppure Tor + Privoxy, Privoxy + Polipo, pdnsd + Tor…), e che voglio mostrare quanto sia semplice migliorare di parecchio la protezione della propria privacy, ed al tempo stesso aggirare la censura, accedere ad un web di miglior qualità (per via del filtraggio di banner e script che rallentano e distraggono) e velocizzare la propria connessione.

Potete seguire la guida per intero, oppure prendere solo le parti che vi interessano, adattandole alle vostre esigenze (ad esempio, se non vi interessa la parte che riguarda Tor, ma volete velocizzare la navigazione con Polipo, pdnsd e le modifiche a Firefox). La filosofia di unix di avere programmi che fanno un solo lavoro, ma molto bene, e di poterli combinare, offre un grosso vantaggio quando si vogliono fare queste cose.

Avendo provato varie combinazioni di questi programmi, posso dirvi quali diano la miglior velocità e la miglior protezione. In linea generale, tenete presente che i componenti che rallentano sono quelli che si occupano della sicurezza, cioè tor e privoxy, mentre quelli che migliorano le prestazioni sono pdnsd e polipo. Quindi, la configurazione che offre meno sicurezza, ma migliori prestazioni, è polipo+pdnsd, mentre quella che garantisce maggiore sicurezza è quella completa, che descriverò in questa guida. Ho trovato un buon compromesso nella soluzione pdnsd+tor+polipo, caricando la blacklist di AdBlock in polipo, ed utilizzando gli addon di Firefox NoScript e RefControl. Fra i vari browser provati, Firefox, se configurato come indicato in questa guida, è stato il più veloce.

Per la guida mi baserò su un’installazione di GNU ArchLinux, perché è la distribuzione che sto utilizzando ora. Quindi, chi utilizza altre distribuzioni potrebbe dover adattare la guida alla propria situazione. Probabilmente, per le distribuzioni derivate ed i fork, come Archbang e Chakra, si potrà seguire la guida senza dover adattare nulla. Fortunatamente, i pacchetti presenti in Arch sono quasi sempre “vanilla”, cioè esattamente come gli sviluppatori originali li hanno preparati, senza le personalizzazioni che molte altre distribuzioni fanno. Grazie a questo, qualsiasi distribuzione stiate usando, potere comunque dare un’occhiata all’esauriente wiki di Arch, trovandovi informazioni e guide utili. Se usate Debian e derivate, vi consiglio di leggere le note scritte nel commento di liv a questo post.

Gli stessi software sono disponibili anche per altri sistemi operativi. In quel caso, è probabile che dobbiate adattare maggiormente le istruzioni. Tuttavia, in sistemi chiusi e proprietari, come Windows o Mac OS, dei quali non si ha accesso al codice, non si può mai essere sicuri di ciò che facciano… Questo può essere un problema, se il vostro obiettivo è di proteggere la privacy, in quanto non potrete mai essere certi che non ci siano delle backdoor oppure che vengano inviate delle informazioni su di voi a terzi, a vostra insaputa. In quel caso, l’unica cosa che potete fare è di fiidarvi della “bontà” di chi ha prodotto il sistema che usate.

Attenzione però a non fidarvi troppo nemmeno delle soluzioni qui proposte, perché non potranno mai garantirvi una protezione perfetti. Riguardo a questo, vi segnalo una pagina di avviso della distribuzione live Tails, basata su Debian: Tails – Warning.

Cosa accadrà, in teoria…

Browser->Privoxy->Polipo->Tor->(Rete)
       _\pdnsd__________/^

Escludendo la risoluzione dei nomi, il viaggio d’andata è il seguente: il browser richiede la pagina al primo proxy, cioè Privoxy, il quale passa la richiesta a Polipo che, se non ha i dati desiderati nella propria cache (nel cui caso, li fornirà subito), la gira a Tor, che infine la sparpaglia fra vari nodi, i quali faranno arrivare al fornitore della pagina richieste diverse provenienti da indirizzi d’origine diversi (normalmente, le richieste arriverebbero tutte dallo stesso indirizzo di partenza, cioè quello fornitovi dal vostro provider). Il server contattato inizierà a rispondere alle varie richieste, inviando i dati desiderati (pagina, immagini, oggetti vari…), i quali transiteranno sui diversi nodi fino ad arrivare alla vostra macchina. Tor riceve i dati e li passa a Polipo, il quale li memorizzerà nella propria cache per un possibile successivo utilizzo e li girerà a Privoxy. Questo esaminerà il contenuto delle pagine ricevute, ripulendole da banner pubblicitari, spam, script e cookie indesiderati, e lo passerà infine al vostro browser, che visualizzerà il risultato sullo schermo.

Risoluzione dei nomi. Il browser o qualsiasi altro software che voglia accedere ad un server in rete, richiederà a pdnsd di trasformare l’indirizzo nominale in indirizzo numerico. Nel caso quell’indirizzo sia già stato cercato in precedenza, il dns restituirà immediatamente il risultato, in caso contrario passerà la richiesta a Tor, il quale contatterà i nodi esterni chiedendo la risoluzione. Se questo andrà a buon fine, restituirà il risultato a pdnsd, il quale lo salverà nella propria cache e lo passerà al programma che inizialmente aveva fatto la richiesta.

Riguardo all’ordine dei vari demoni nella catena, ho fatto dei tentativi anche invertendo Privoxy e Polipo (Browser->Polipo->Privoxy->Tor->Rete), ma mi è sembrato tutto più lento, rispetto all’ordine indicato sopra. Nel caso vogliate fare anche voi questa prova, in coda alla guida spiegherò cosa cambiare per invertire i due proxy.

In pratica….

Privoxy

NB: Nel caso foste interessati solo al blocco dei banner pubblicitari, potreste evitare l’installazione di privoxy, ed importare in polipo la “easylist” di AdBlock Plus. In quel caso vi consiglio di seguire il resto della guida, ed una volta configurato polipo, modificarlo come indicato in questo post: Tor/polipo/privoxy/pdnsd: alcune note

Installiamo privoxy, prelevandolo dal repository tramite pacman (o il gestore di pacchetti usato dalla vostra distribuzione)

# pacman -S privoxy

NB: Come convezione, quando una riga inizia con ‘#’, si intende che il comando va lanciato come utente root (o facendo sudo), mentre il carattere ‘$’ indica che è sufficiente l’utente normale. Il carattere # viene usato spesso anche come inizio commento nei file di configurazione, quindi quando leggete, fate attenzione al contesto.

Possiamo testarlo subito, lanciandolo con

# systemctl start privoxy

Dovrebbe partire senza alcun errore. Andiamo nelle impostazioni di connessione del nostro browser, indicandogli di utilizzare come proxy http e ssl quello che risponde all’indirizzo localhost e porta 8118.

In Firefox, l’impostazione è in Preferenze->Avanzate->Rete->Impostazioni…

Disabilitate eventuali plugin come adblock e simili, ed iniziate a navigare. Se tutto funziona correttamente, dovreste visualizzare le pagine ripulite da banner e schifezze assortite.

Notare che, fino ad ora, non è ancora stato toccato il file di configurazione di Privoxy.

Se volete avere una conferma più certa del funzionamento del proxy, ed essere sicuri che il traffico passi effettivamente attraverso di lui, editate, da utente root, il file di configurazione, cercando una riga commentata simile a questa:

#debug 1 # Log the destination for each request Privoxy let through.

Togliete il # del commento, oppure inserite la riga, non commentata a mano.

Riavviate privoxy

# systemctl restart privoxy.

Aprite una finestra di terminale e, da utente root, digitate: tail -f /var/log/privoxy/logfile (a seconda della distribuzione, potrebbe cambiare il nome e la posizione del file di log. fate riferimento alle voci “logdir” e “logfile” contenute nel file di configurazione).

Dopodiché, iniziate a navigare. Dovreste veder scorrere sul terminale tutte le richieste a pagine ed oggetti vari, che transitano per il proxy.

Se tutto funziona a dovere, commentate nuovamente la voce “debug”. Potete quindi inserire l’avvio del demone di privoxy al boot del sistema. Per fare questo, date il comando
# systemctl enable privoxy

Se vi interessa solamente utilizzare un sistema veloce, leggero ed indipendente dal browser, per filtrare i contenuti delle pagine (in sostituzione ai già discussi Karma Blocker e Ghostery), potete fermarvi qua. Vi consiglio comunque di leggere il capitolo successivo, riguardo alle ottimizzazioni della configurazione di Firefox.

Se preferite continuare a far loggare il proxy, in modo da verificare eventuali comportamenti anomali (filtraggi eccessivi o insufficienti) ed eventualmente correggerli o migliorare le capacità di fitraggio, potete lasciare attiva l’opzione “debug”, che accetta diversi livelli di verbosità.

#debug    1 # Log the destination for each request Privoxy let through.
#debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
#debug 4096 # Startup banner and warnings
#debug 8192 # Non-fatal errors

In questo caso, potrebbe interessarvi far sì che il log venga ruotato periodicamente. Se la vostra distribuzione non lo include già, create uno script simile a questo in /etc/logrotate.d e dategli i permessi di esecuzione con chmod.

/var/log/privoxy/logfile {
   create 660 root privoxy
   notifempty
   compress
   postrotate
     /bin/kill -HUP `cat /var/run/privoxy.pid 2>/dev/null` 2> /dev/null || true
   endscript
}

Per approfondire, potete cominciare dalla pagina della wiki di Arch: https://wiki.archlinux.org/index.php/Privoxy

Successivamente riprenderò in mano la configurazione di privoxy, per ottimizzarla ed adattarla all’integrazione con gli altri programmi.

Tor…

Anche in questo capitolo, procederò per piccoli passi, facendo verificare il corretto funzionamento mano a mano.. Installeremo Tor ed useremo la configurazione già fatta di Privoxy come base a cui collegarlo. Polipo verrà installato in seguito, una volta che saremo sicuri che Tor funziona a dovere e che il browser sia impostato con le ottimizzazioni migliori.

Installiamo Tor, prelevandolo dai repository ufficiali:

# pacman -S tor

Per testarne subito il funzionamento, non è necessario fare alcuna modifica alla configurazione predefinita.

Lo avviamo come di consueto

# systemctl start tor

Apriamo il browser, andiamo nelle impostazioni di rete, dove precedentemente avevamo inserito l’indirizzo e la porta di privoxy. Togliamo privoxy da HTTP ed inseriamo come proxy SOCKS 5, localhost su porta 9050.

Proviamo ad aprire qualche sito. Al momento, ci saranno delle latenze maggiori di quelle a cui siamo abituati, ma questo è solo un test per controllare il funzionamento. Della velocità, ci occuperemo dopo. Se riuscite a navigare, provate anche ad andare su qualche sito che sapete essere censurato, come thepiratebay. Se Tor funziona a dovreste, riuscirete a visualizzarlo. (Se il sito è lento a rispondere, potrebbe essere necessario un refresh della pagina.) In alternativa, potete usare il sito http://torcheck.xenobite.eu/

Come ulteriore prova, potere monitorare i log, in modo simile a come era stato fatto per privoxy.

# tail -f /var/log/messages.log |grep "localhost Tor"

NB: Sul vostro sistema, il log potrebbe essere in un file diverso, tipicamente /var/log/syslog. Oppure, il pacchetto Tor potrebbe essere preconfigurato per salvare il log su un file a parte.

Ora possiamo modificare il file di configurazione di Tor, /etc/tor/torrc modificando o aggiungendo queste righe, che serviranno a ridurre un po’ i tempi di attesa nei caricamenti

# Try for at most NUM seconds when building circuits. If the circuit isn't
# open in that time, give up on it. (Default: 1 minute.)
CircuitBuildTimeout 5
# Send a padding cell every N seconds to keep firewalls from closing our
# connections while Tor is not in use.
KeepalivePeriod 60
# Force Tor to consider whether to build a new circuit every NUM seconds.
NewCircuitPeriod 15
# How many entry guards should we keep at a time?
NumEntryGuards 8

Se tutto funziona come dovrebbe, andiamo a spiegare a privoxy come passare le richieste a Tor… Per fare questo è sufficiente inserire nel file di configurazione /etc/privoxy/config la seguente riga (compreso il punto finale):

forward-socks5 / localhost:9050 .

Per mantenere il file ordinato, inseritela successivamente alla sezione commentata dove vengono spiegati i forward.

Riavviamo privoxy con al solito

# systemctl restart privoxy

Torniamo sulla configurazione di rete di Firefox, nella parte dei proxy. Togliamo il SOCKS 5 inserito precedentemente e rimettiamo localhost su porta 8118 in HTTP e SSL (come avevamo fatto inizialmente, appena installato privoxy).

Testiamo la navigazione. Dovremmo poter accedere ai siti censurati e al tempo stesso, filtrare le pagine da banner e schifezze. Se ci piace veder scorrere tante scrittine, riabilitate il debug di privoxy, riavviatelo e con due terminali monitorate sia il logo di privoxy, come precedentemente spiegato, sia quello di Tor. :D

Potrete notare che alcuni siti sono visibilmente più veloci di altri. Questo avviene quando il server che ospita il sito è contemporaneamente un exit node della rete di Tor. Questo è, ad esempio, il caso del motore di ricerca Duck Duck Go.

Ora possiamo configurare anche altri software per utilizzare Tor. Tipicamente, client di chat e peer to peer, come bittorrent. Per questi ultimi, si raccomanda di non far mai passare tutto il traffico attraverso Tor, ma solamente le richieste verso i tracker servers. Se il programma permette di passare attraverso un proxy con protocollo SOCKS, possiamo specificargli l’indirizzo e la porta di Tor, cioè localhost (o 127.0.0.1) e 9050.

Come per privoxy, se vogliamo che il demone venga avviato automaticamente al boot del sistema, diamo il comando
# systemctl enable tor

…e ottimizzazioni di Privoxy e Firefox

Ora è il momento di recuperare un po’ di prestazioni.

In Firefox apriamo la pagina di configurazione avanzata, digitando about:config nella barra dell’indirizzo. Promettiamo al premuroso browser che non faremo danni e cerchiamo le impostazioni idicate sotto (iniziano tutte per network.http), modificandole come descritto.

network.http.keep-alive                            true
network.http.keep-alive.timeout                    600
network.http.max-connections                       30
network.http.max-connections-per-server            15
network.http.max-persistent-connections-per-proxy  16
network.http.max-persistent-connections-per-server 6
network.http.pipelining                            true
network.http.pipelining.maxrequests                8
network.http.pipelining.ssl                        true
network.http.proxy.keep-alive                      true
network.http.proxy.pipelining                      true

Con queste impostazioni, noi diciamo a Firefox di abilitare il pipelining, di accettare più connessioni contemporanee e di mantenere le connessioni aperte più a lungo del normale.

Potete usare queste impostazioni per velocizzare Firefox, anche se non utilizzate Privoxy e Tor.

Nella configurazione di privoxy, verifichiamo che queste impostazioni siano commentate:

#keep-alive-timeout 300
#default-server-timeout 60
#socket-timeout 300

Impostare timeout lunghi in privoxy, al contrario, lo rallenta. Quando abbinato ad un parent proxy, come faremo poi, la situazione peggiora notevolmente, causando tempi di attesa indesiderati.

Se vi interessava solamente una semplice e veloce installazione di Tor e Privoxy, con una configurazione ottimizzata di Firefox, potete fermarvi qua. Proseguite, se volete migliorare ulteriormente la velocità di navigazione, aggiungendo un velocissimo proxy con cache ed un server DNS locale che possa passare attraverso Tor. (Questa guida inizia a somigliare sempre di più ad un LibroGame… :D)

Fonti ed approfondimenti:

Polipo

Passiamo ora ad installare il proxy Polipo, che ci permetterà di mantenere una cache locale delle pagine visitate, velocizzando la navigazione.

# pacman -S polipo

Creiamo la configurazione, partendo da un file di esempio

# cd /etc/polipo; cp config.sample config

Aggiungiamo o decommentiamo queste righe

allowedPorts = 1-65535
tunnelAllowedPorts = 1-65535

Verifichiamo ed eventualmente inseriamo o modifichiamo le seguenti impostazioni, utili per ottimizzare le connessioni

maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2

Polipo utilizza molto efficientemente il pipelining http, sia in uscita verso i server web, sia in arrivo dal browser.

Quest’altra configurazione, servirà a fargli preferire i collegamenti tramite IPv4 a quelli IPv6, velocizzando le ricerche sui DNS.

dnsQueryIPv6 = reluctantly

Avviamo Polipo e testiamolo con il browser, inserendo il suo indirizzo e la sua porta nelle impostazioni del proxy HTTP, come già fatto in precedenza con privoxy. L’indirizzo è sempre localhost e la porta la 8123.

Se tutto funziona a dovere, possiamo disabilitare la cache del browser, che non ci servirà più. Andiamo nelle impostazioni della cache: Preferenze->Avanzate->Rete, cancelliamo il contenuto della cache, spuntiamo la casella per non utilizzare la gestione automatica e limitiamo la dimensione della cache a 0 MB di spazio.

Personalmente, ho trovato la cache di Polipo molto più veloce di quella nativa del browser.

Arrivati a questo punto, abbiamo il browser che accede alla rete utilizzando la cache di polipo al posto della propria.

Ma noi abbiamo già un proxy filtrante e la rete Tor configurati, quindi ora li metteremo in comunicazione.

Prima, configurerò privoxy in modo che passi le richieste a polipo, poi configurerò polipo in modo che le giri, a sua volta, a Tor. Se volete avere solamente un sistema con filtraggio pagine e cache centrale, seguite solo il primo passaggio, se volete avere cache e Tor senza filtraggio, seguite solo il secondo. Per la soluzione completa, seguitele entrambe.

Apriamo la configurazione di privoxy /etc/privoxy/config e, se precedentemente avevamo configurato il forward-socks5 verso tor, commentiamolo e sostituiamolo con questo

forward / localhost:8123

Torniamo alla configurazione del nostro browser e modifichiamo il proxy, rimettendo l’indirizzo localhost e la porta di privoxy 8118. Testiamo la navigazione. In questo modo, abbiamo la cache di polipo ed il filtraggio delle pagine di privoxy.

Se ora vogliamo far passare tutto attraverso Tor, apriamo la configurazione di polipo ed inseriamo o decommentiamo le seguenti righe

socksParentProxy = "localhost:9050"
socksProxyType = socks4a

Riavviamo polipo e testiamo la navigazione. Se vogliamo utilizzare privoxy + polipo + tor, nelle impostazioni del proxy del browser dovranno essere impostati l’indirizzo e la porta di privoxy (localhost 8118), se non ci interessa privoxy, impostiamo l’indirizzo e la porta di polipo (localhost 8123).

Ricordiamo di inserire l’avvio del demone al boot del sistema
# systemctl enable polipo

Polipo è un server molto leggero ed efficiente. La sua leggerezza è data anche dal fatto che non controlla dinamicamente la dimensione della cache salvata, la quale potrebbe potenzialmente crescere senza controllo, anche se è difficile che questo accada. Possiamo comunque far sì che, il proxy ripulisca, una tantum, la cache dai vecchi dati, chiamandolo con l’opzione -x.

# polipo -x

Possiamo anche automatizzare questo processo, utilizzando uno script che verrà eseguito a scadenza regolare da cron.

Creiamo da utente root in /etc/cron.daily il file polipo, contenente

#!/bin/bash
/usr/bin/polipo -x >/dev/null 2>&1

e diamogli i permesse di esecuzione
# chmod u+x /etc/cron.daily/polipo

Per la rotazione dei log, è necessario creare uno script come /etc/logrotate.d/polipo

/var/log/polipo.log {
        missingok
        rotate 7
        compress
        daily
        postrotate
                PIDFILE=/var/run/polipo/polipo.pid
                if [ -f "$PIDFILE" ] ; then kill -USR1 $(cat "$PIDFILE") ; fi
        endscript
}

A questo punto, abbiamo il nostro sistema di proxy concatenati, configurato e funzionante. Buona protezione della privacy, buone capacità di aggiramento della censura e buona velocità di navigazione.

Fonti e approfondimenti

Possiamo migliorare ancora un po’, installando un DNS locale, che faccia la cache degli indirizzi e rediriga le richieste di risoluzione verso la rete di Tor.

Pdnsd

Installiamo pdnsd nel soluto modo

# pacman -S pdnsd

Creiamo il setup iniziale partendo dal file di esempio, che successivamente modificheremo.

# cp /etc/pdnsd.conf.sample /etc/pdnsd.conf

Per ragioni di sicurezza, faremo in modo che pdnsd giri con un utente creado ad hoc, in modo simile a come abbiamo fatto precedentemente per polipo.

Creiamo utente e gruppo

# groupadd pdnsd

# useradd -r -d /var/cache/pdnsd -g pdnsd -s /bin/false pdnsd

Modifichiamo il proprietario ed i permessi delle directory dati

# chown -R pdnsd:pdnsd /var/cache/pdnsd

# chmod 700 /var/cache/pdnsd

# chmod 600 /var/cache/pdnsd/pdnsd.cache

Il file di configurazione /etc/pdnsd.conf consiste in una sezione globale e varie sezioni “server” commentate, cioè racchiuse fra “/*” e “*/”. Apriamolo e, nella sezione “global”, cambiamo run_as="nobody"; in run_as="pdnsd";

Se vogliamo utilizzarlo in congiunzione a tor, aggiungiamo questa sezione server, subito dopo la sezione “global”.

# Tor DNS resolver
    server {
    label = "tor";
    ip = 127.0.0.1;
    port = 8853;
    uptest = none;
    exclude=".invalid";
    policy=included;
    proxy_only = on;
    lean_query = on;
}

Possiamo anche decommentare il server opendns, togliendo i “/*” e “*/” che racchiudono la sua sezione. La configurazione di OpenDNS è un po’ particolare e voglio spiegarla. Normalmente, OpenDNS si comporta in modo non standard, rispondendo con una pagina di ricerca su Google, nei casi in cui la risoluzione di un indirizzo non sia andata a buon fine. Questo comportamento può essere indesiderato per due motivi: 1) non voglio che venga fatta una ricerca su Google, perché voglio proteggere la mia privacy; 2) voglio che se il dns non riesce a risolvere il nome, mi ritorni la risposta standard di errore, in modo che il mio sistema passi ad interrogare il server dns successivo nella mia lista.

Per questo motivo, nella sezione OpenDNS, vi è un comando che istruisce pdnsd a rifiutare le risposte che arrivano dagli indirizzi che OpenDNS usa per dirottare il browser sulla pagina di ricerca.

# The servers provided by OpenDNS are fast, but they do not reply with
# NXDOMAIN for non-existant domains, instead they supply you with an
# address of one of their search engines. They also lie about the addresses of
# of the search engines of google, microsoft and yahoo.
# If you do not like this behaviour the "reject" option may be useful.
server {
        label = "opendns";
        ip = 208.67.222.222, 208.67.220.220;
        reject = 208.69.32.0/24,  # You may need to add additional address ranges
                 208.69.33.0/24,  # here if the addresses of their search engines
                 208.69.34.0/24,  # change.
                 208.67.219.0/24,
                 173.194.35.0/24,
                 208.67.216.136,
                 208.67.217.136;
        reject_policy = fail;     # If you do not provide any alternative server
                                  # sections, like the following root-server
                                  # example, "negate" may be more appropriate here.
        timeout = 4;
        uptest = ping;            # Test availability using ICMP echo requests.
        ping_timeout = 100;       # ping test will time out after 10 seconds.
        interval = 15m;           # Test every 15 minutes.
        preset = off;
}

Utilizziamo questa configurazione, inserita dopo quella del Tor DNS resolver, se vogliamo utilizzare OpenDNS come server di backup nei casi in cui la risoluzione tramite Tor non vada a buon fine. Utilizziamo solo questa configurazione, oppure adattiamola alle nostre esigenze cambiando gli indirizzi dei server DNS con quelli desiderati, se non ci interessa usare Tor.

Se utilizziamo Tor, modifichiamo la sua configurazione in /etc/tor/torrc, decommentando questa voce

ControlPort 9051

Ed aggiungendo le seguenti

DNSPort 8853
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion

TransPort 9040
TransListenAddress 127.0.0.1

Ora riavviamo tor, facciamo partire pdnsd, e testiamo il funzionamento.

# systemctl restart tor

# systemctl start pdnsd

$ nslookup duckduckgo.com 127.0.0.1

$ nslookup http://www.archlinux.org 127.0.0.1

Se abbiamo ottenuto delle risposte positive, passiamo a configurare il sistema in modo che tutti gli indirizzi vengano risolti dal DNS locale, invece che da quelli esterni impostati precedentemente.

Sulla mia macchina non utilizzo né NetworkManager, né wicd, ed ho l’indirizzo della scheda di rete impostato staticamente, quindi sarà sufficiente editare il file /etc/resolv.conf, commentando o rimuovendo i nameserver precedentemente inseriti, ed aggiungendo l’indirizzo del dns locale.

nameserver 127.0.0.1

Chi utilizza NetworkManager, wicd o simili, dovrà fare la stessa cosa tramite gli strumenti forniti dal proprio programma gestore di rete, togliendo quindi i dns precedentemente inseriti, impostandolo di non ottenerli automaticamente tramite dhcp, e specificando come unico dns l’indirizzo locale 127.0.0.1

Se volete fare in modo che polipo utilizzi pdnsd per la risoluzione dei nomi, invece dei resolver interno, aggiungete questa riga a /etc/polipo/config

dnsUseGethostbyname = yes

Verifichiamo che tutto funzioni correttamente, aggiungiamo pdnsd fra i demoni all’avvio… Ed il gioco è fatto! :)

# systemctl enable pdnsd

Fonti ed approfondimenti

Ulteriori informazioni sull’uso di Tor

Riepilogo dei miei file di configurazione, ripuliti dai commenti e dalle parti non utilizzate.

/etc/privoxy/config:

# Privoxy config file
confdir /etc/privoxy

logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations

filterfile default.filter
filterfile user.filter # User customizations

logfile logfile

#debug 1 # Log the destination for each request Privoxy let through.
#debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
#debug 4096 # Startup banner and warnings
#debug 8192 # Non-fatal errors

listen-address 127.0.0.1:8118

toggle 1

enable-remote-toggle 0

enable-remote-http-toggle 0

enable-edit-actions 0

enforce-blocks 0

buffer-limit 4096

# forward-socks5 privoxy->tor
# forward privoxy->polipo
#forward-socks5 / localhost:9050 .
forward / localhost:8123

forwarded-connect-retries 0

accept-intercepted-requests 0

allow-cgi-request-crunching 0

split-large-forms 0

# disable long timeouts
#keep-alive-timeout 300
#default-server-timeout 60
#socket-timeout 300

/etc/tor/torrc:

## CONFIGURED FOR ARCHLINUX

## Replace this with "SocksPort 0" if you plan to run Tor only as a
## server, and not make any local application connections yourself.
SocksPort 9050 # what port to open for local application connections
SocksBindAddress 127.0.0.1 # accept connections only from localhost

## Allow no-name routers (ones that the dirserver operators don't
## know anything about) in only these positions in your circuits.
## Other choices (not advised) are entry,exit,introduction.
AllowUnverifiedNodes middle,rendezvous

## Logs go to stdout at level "notice" unless redirected by something
## else, like one of the below lines. You can have as many log lines as
## you want.
##
## Send all messages of level 'notice' or higher to /var/log/tor/notices.log
#Log notice file /var/log/tor/notices.log
## Send only debug and info messages to /var/log/tor/debug.log
#Log debug-info file /var/log/tor/debug.log
## Send ONLY debug messages to /var/log/tor/debug.log
#Log debug-debug file /var/log/tor/debug.log
## To use the system log instead of Tor's logfiles, uncomment these lines:
Log notice syslog
## To send all messages to stderr:
#Log debug stderr

## Uncomment this to start the process in the background... or use
## --runasdaemon 1 on the command line.
RunAsDaemon 1
User tor
Group tor

## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
DataDirectory /var/lib/tor

## The port on which Tor will listen for local connections from Tor controller
## applications, as documented in control-spec.txt. NB: this feature is
## currently experimental.
ControlPort 9051

# For DNS
DNSPort 8853
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion

TransPort 9040
TransListenAddress 127.0.0.1

# Try for at most NUM seconds when building circuits. If the circuit isn't
# open in that time, give up on it. (Default: 1 minute.)
CircuitBuildTimeout 5
# Send a padding cell every N seconds to keep firewalls from closing our
# connections while Tor is not in use.
KeepalivePeriod 60
# Force Tor to consider whether to build a new circuit every NUM seconds.
NewCircuitPeriod 15
# How many entry guards should we keep at a time?
NumEntryGuards 8

/etc/polipo/config:

# configuration file for Polipo. -*-sh-*-
# to tor
socksParentProxy = "localhost:9050"
socksProxyType = socks4a
# use local DNS
dnsUseGethostbyname = yes
# allowed ports
allowedPorts = 1-65535
tunnelAllowedPorts = 1-65535
# keep connections alive and allow more slots to improve speed
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
# prefer IPv4 to IPv6 for double-stack hosts: 
dnsQueryIPv6 = reluctantly

/etc/pdnsd.conf:

global {
        perm_cache=2048;
        cache_dir="/var/cache/pdnsd";
#       pid_file = /var/run/pdnsd.pid;
        run_as="pdnsd";
        server_ip = 127.0.0.1;  # Use eth0 here if you want to allow other
                                # machines on your network to query pdnsd.
        status_ctl = on;
#       paranoid=on;       # This option reduces the chance of cache poisoning
                           # but may make pdnsd less efficient, unfortunately.
        query_method=udp_tcp;
        min_ttl=15m;       # Retain cached entries at least 15 minutes.
        max_ttl=1w;        # One week.
        timeout=120;        # Global timeout option (10 seconds).
        neg_domain_pol=on;
        udpbufsize=1024;   # Upper limit on the size of UDP messages.
}

# Tor DNS resolver
server {
    label = "tor";
    ip = 127.0.0.1;
    port = 8853;
    uptest = none;
    exclude=".invalid";
    policy=included;
    proxy_only = on;
    lean_query = on;
}

# The servers provided by OpenDNS are fast, but they do not reply with
# NXDOMAIN for non-existant domains, instead they supply you with an
# address of one of their search engines. They also lie about the addresses of
# of the search engines of google, microsoft and yahoo.
# If you do not like this behaviour the "reject" option may be useful.
server {
        label = "opendns";
        ip = 208.67.222.222, 208.67.220.220;
        reject = 208.69.32.0/24,  # You may need to add additional address ranges
                 208.69.33.0/24,  # here if the addresses of their search engines
                 208.69.34.0/24,  # change.
                 208.67.219.0/24,
                 173.194.35.0/24,
                 208.67.216.136,
                 208.67.217.136;
        reject_policy = fail;     # If you do not provide any alternative server
                                  # sections, like the following root-server
                                  # example, "negate" may be more appropriate here.
        timeout = 4;
        uptest = ping;            # Test availability using ICMP echo requests.
        ping_timeout = 100;       # ping test will time out after 10 seconds.
        interval = 15m;           # Test every 15 minutes.
        preset = off;
}

source {
        owner=localhost;
#       serve_aliases=on;
        file="/etc/hosts";
}

/*
include {file="/etc/pdnsd.include";}    # Read additional definitions from /etc/pdnsd.include.
*/

rr {
        name=localhost;
        reverse=on;
        a=127.0.0.1;
        owner=localhost;
        soa=localhost,root.localhost,42,86400,900,86400,86400;
}

/etc/resolv.conf

#Local DNS
nameserver 127.0.0.1

configurazione di Firefox (about:config)

network.http.keep-alive true
network.http.keep-alive.timeout 600
network.http.max-connections 30
network.http.max-connections-per-server 15
network.http.max-persistent-connections-per-proxy 16
network.http.max-persistent-connections-per-server 6
network.http.pipelining true
network.http.pipelining.maxrequests 8
network.http.pipelining.ssl true
network.http.proxy.keep-alive true
network.http.proxy.pipelining true

Come invertire polipo e privoxy

Cambiate in questo modo i due file di configurazione

/etc/privoxy/config da

# forward-socks5 privoxy->tor
# forward privoxy->polipo
#forward-socks5 / localhost:9050 .
forward / localhost:8123

a

# forward-socks5 privoxy->tor
# forward privoxy->polipo
forward-socks5 / localhost:9050 .
#forward / localhost:8123

/etc/polipo/config da

# to tor
socksParentProxy = “localhost:9050″
socksProxyType = socks4a

a

# to tor
#socksParentProxy = “localhost:9050″
#socksProxyType = socks4a

# to privoxy
parentProxy = “localhost:8118″

Dopodiché, nelle impostazioni del vostro browser, mettere il proxy HTTP sulla porta di polipo, anziché di privoxy, cioè da 8118 a 8123.

Altri post su privacy e censura:

29 thoughts on “Come proteggere la propria privacy, aggirare la censura e navigare velocemente usando software liberi (Tor + Polipo + Privoxy + pdnsd)

  1. Pingback: Come proteggere la propria privacy (un’aggiunta) « Il neurone proteso

  2. Ciao. Innanzi tutto complimenti per il blog, molto interessante e ben fatto. Ti seguo spesso, ma la mia pigrizia mi impedisce di commentare sovente (ovvero mai, visto che questo è il mio primo commento).
    Da alcuni giorni mi sto informando su tor e programmi di anonimizzazione in genere e vorrei chiederti: per flash e java come fai? li disabiliti oppure usi software specifico per inibirne la tracciabilità?

  3. Non sento il bisogno di nessuno dei due. Per quanto riguarda flash, lo userei solo per i video sui siti, ma in buona parte dei casi (non tutti purtroppo), riesco a vederli senza problemi con il player html che di solito forniscono. In caso contrario, scarico il video in locale e lo guardo poi con un lettore qualunque.
    Di java non ho nemmeno installato il plugin per il browser. Ho solo le openjdk che praticamente uso solo per jdownloader. :)

  4. Appena avrò un attimo vedrò di studiarmi con calma ‘sta guidona e di farne buon uso. ;)

    Super-OT: Ricordo che avevi postato sul forum di Chakra un bel conky con la notifica delle nuove mail (e qualcos’altro che non ricordo), non è che me lo passeresti? :)

  5. Certo. Si trattava del conky verticale con l’orologione grande, o di quello orizzontale tipo striscia in alto? :)
    Adesso, ne ho fatto un’altro a striscia da usare con Awesome, con i simboli del font terminusmodx, al posto delle scritte (mail, cpu, ecc…). :)

    Se vuoi, te li mando anche tutti. Dimmi tu :)

  6. Quello verticale con l’orologio, esatto (ma se mi passi pure gli altri non mi lamento mica)…è che sto un pò openboxando su Debian, ed ho bisogno di ispirazioni conkyche… ;)

  7. mail in arrivo. alcuni script perl hanno bisogno di pacchetti aggiuntivi… non so come si chiamino su debian, ma penso che non sia difficile indovinarli :)

  8. Bellino. Minimale :)
    Mi sono dimenticato di passarti i font… Quello che usavo per l’orologio si chiama zekton, si può trovare da scaricare gratuitamete. :)

  9. Recuperato pure il font, grazie ancora!
    Openbox mi sta ispirando particolarmente: fa tutte le (poche) cose che mi aspetto da un DE (ok, in questo caso un WM), e le fa bene. E la batteria del portatile ringrazia…

  10. Openbox è davvero ottimo. Lo usavo prima di passare a Awsesome.
    Essendo minimale, ti permette di costruirti il tuo desktop scegliendo, per tutto il resto, le applicazioni che perferisci, senza intralciare.

  11. Pingback: Aggiornamento della guida su Tor, Privoxy, Polipo e Pdnsd « Il neurone proteso

  12. Pingback: Tor/polipo/privoxy/pdnsd: alcune note « Il neurone proteso

  13. Finalmente! Complice un fine settimana lungo, ho seguito passo passo la tua ottima guida installando su Debian prima Privoxy, poi Tor, infine Polipo, per ottenere una configurazione Browser->Privoxy->Polipo->Tor->(Rete). Non ho installato pdnsd perché la velocità era già soddisfacente.
    La procedura per Debian è praticamente identica a quella che hai descritto tu; cambiano solo ovviamente i file di configurazione, rispetto ad Archlinux, e i singoli comandi. Per quanto riguarda Tor c’è qualche piccola differenza in più ma la logica è la stessa.
    Riporto di seguito tutta la procedura, e soprattutto i riferimenti ulteriori che ho consultato: magari a qualcuno potranno essere utili…

    ************************
    Per configurare Privoxy su Debian ho seguito, oltre alla tua guida, anche il wiki di Debianizzati: http://guide.debianizzati.org/index.php/Privoxy:_navigazione_sicura_a_prova_di_spam

    Per quanto riguarda Tor, gli altri miei riferimenti sono stati:
    http://guide.debianizzati.org/index.php/Anonimato_in_rete_-_Tor
    http://www.nazioneindiana.com/2007/11/05/tor-lezioni-di-guida/
    https://www.torproject.org/docs/debian.html.en

    A proposito del Torbutton, di cui ora gli sviluppatori Tor sconsigliano l’uso a meno che non si utilizzi il Tor Browser Bundle, ho consultato:

    https://www.torproject.org/torbutton/
    https://blog.torproject.org/blog/toggle-or-not-toggle-end-torbutton

    ************************

    Ed ecco la mia procedura:

    Dopo l’installazione di privoxy, l’ho lanciato da riga di comando:

    #/etc/init.d/privoxy start

    Per fare in modo che il browser (nel mio caso Firefox/Iceweasel) lo utilizzasse per navigare ho impostato il proxy accedendo al menu “Modifica/Preferenze/Avanzate/Rete/Impostazioni”, cliccando sul pulsante “Impostazioni connessione”.
    Ho selezionato la voce “Configurazione manuale del proxy” e a questo punto ho indicato l’indirizzo 127.0.0.1 e la porta 8118 sia come proxy HTTP sia come proxy SSL.
    Poi ho svuotato completamente la cache del browser, sempre seguendo la guida di Masque.
    Per verificare il comportamento di Privoxy, ho controllato il relativo log; per farlo ho editato, da utente root, il file di configurazione /etc/privoxy/config, cercando una riga commentata simile a questa:

    debug 1 # Log the destination for each request Privoxy let through.

    Eliminando il # del commento e salvando il file così modificato, si fa in modo che nel file di log si vedano le varie richieste inoltrate. Prima di aprire il file di log, ho riavviato privoxy con il comando

    #/etc/init.d/privoxy restart

    Quindi da terminale, e sempre da utente root, ho digitato:

    #tail -f /var/log/privoxy/logfile

    Poi ho iniziato a navigare e ho visto che contemporaneamente sul terminale venivano visualizzate le richieste transitanti per il proxy. Quindi, tutto ok: pertanto ho ricommentato la voce “debug” nel file di configurazione.
    Infine, per inserire l’avvio del demone di privoxy al boot del sistema, sono semplicemente andata sul menu “Sistema/Preferenze/Applicazioni d’avvio” e ho aggiunto /etc/init.d/privoxy alle altre applicazioni da lanciare durante il boot. (sicuramente c’è un sistema più elegante per fare questo…).

    Dopo di che, ho affrontato Tor! Operando su una distro Debian, e volendo ottenere l’ultima versione stabile di Tor, per prima cosa ho aggiunto un repository di pacchetti dedicato; questo si fa aggiungendo, al file /etc/apt/sources.list, la seguente riga:

    deb http://deb.torproject.org/torproject.org main

    inserendo il nome della distribuzione Debian (Lenny, Squeeze, Wheezy, Sid) al posto di .
    Quindi, da terminale ho lanciato i seguenti comandi:

    $ gpg –keyserver keys.gnupg.net –recv 886DDD89
    $ gpg –export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
    # apt-get update
    # apt-get install deb.torproject.org-keyring
    # apt-get install tor tor-geoipdb

    Tor è ora installato. A questo punto, per consentire il “chain” di Privoxy e Tor ho agito sul file di configurazione /etc/privoxy/config cercando la seguente riga:

    forward-socks5 / 127.0.0.1:9050 .

    L’ho decommentata; poi, per verificare il corretto funzionamento di Tor ho aperto il sito http://torcheck.xenobite.eu (anche https://check.torproject.org va bene).

    Per quanto riguarda infine la configurazione avanzata di Firefox (per intenderci qualla cui si accede digitando about:config nella barra indirizzi) l’unica differenza è che oltre ai parametri per abilitare il pipelining e per mantenere le connessioni aperte, ho cambiato il parametro network.http.sendRefererHeader da 2 a 0. Questa impostazione, che ho trovato sulle “Lezioni di Guida” di Cassandra Crossing, evita che il browser fornisca al sito corrente l’indirizzo della pagina precedente visitata.

    Per quanto riguarda Polipo, infine, non ci sono differenze sostanziali rispetto ad Archlinux tranne che di default gira con utente “proxy”, il quale non dovrebbe avere privilegi di root. Se fosse così, non ci sarebbe bisogno di creare un utente ad hoc… Sto cercando in rete ragguagli in proposito; se trovo qualcosa farò sapere.

  14. Grazie delle dritte :)
    Se ti può interessare, mi sono accorto che è possibile caricare su polipo la easylist.txt di AdBlock.
    http://neuroneproteso.wordpress.com/2012/06/21/torpolipoprivoxypdnsd-alcune-note/
    In questo modo, se non si vuole tutto il filtraggio di privoxy, ma ci si accontenta del blocco dei banner, si può fare a meno di privoxy, guadagnando velocità. Io ho notato la differenza, specialmente con firefox con le modifiche (con l’altro browser che uso ogni tanto, luakit – basato su webkit – si nota meno). Comunque, usando firefox, si può compensare la mancanza installando NoScript o Ghostery.

    L’ultimo aggiornamento di polipo in Arch, lo fa girare come utente nobody. Ho aggiornato la guida modificando la parte del cambio utente.

  15. Attualmente uso iron browser (un derivato di chromium) con la cache in ram. Credo di non aver biogno di polipo.
    Una domanda: io ho gnome shell e la scheda di rete è configurata con dhcp. Il mio pc e un notebook sono connessi a un router e i dns sono settati direttamente nella configurazione del router.
    Dato che il notebook non è mio, non posso settare 127.0.0.1 come dns nel router (altrimenti sul notebook, che per altro ha windows, non funzionerebbe. Come posso fare in alternativa?

  16. La parte riguardante il dns si riferisce sempre a delle operazioni da fare sul pc, non sul router. Il router non viene mai toccato. Se installerai pdnsd, lo farai nella tua installazione di gnu-linux e sarà in quella che andrai a modificare il resolv.conf dicendo di usare il server locale come dns. Attento che se hai il dhcp impostato da networkmanager o wicd, o dovrai fare in altro modo per impostare il dns, usando gli strumenti di configurazione di nm o wicd, oppure se modificherai resolv.conf, dovrai far sì che una volta editato sia reso immodificabile con il comando “chattr +i /etc/resolv.conf” (vedi anche https://wiki.archlinux.org/index.php/Resolv.conf_(Italiano) ). In caso contrario, nm e wicd lo riscriverebbero ogni volta, facendoti perdere le modifiche fatte a mano.
    Polipo e iron: polipo potrebbe comunque esserti utile perché mantiene una cache su disco che rimane da una sessione all’altra. usare la cache solo in ram è utile per la privacy ed è molto veloce, ma ha lo svantaggio di non rimanere fra una sessione e l’altra. Inoltre, polipo per le sue richieste usa lo http pipelining, che velocizza parecchio il trasferimento di dati fra server http e client.

  17. Grazie per le delucidazioni. Anche in iron comunque è possibile abilitare il pipelining per le richieste http (l’iopzione è nascosta ma c’è). Per quanto riguarda la cache, è ovvio che se rimane sul disco la navigazione per i siti già visitati è molto più veloce ma ai fini della privacy non è meglio che si cancelli ad ogni riavvio?

    Altra cosa: visitando questo sito http://ip-check.info con un browser diverso da firefox leggo che il protocollo ftp non è anonimizzato. Firefox e torbutton invece sembrano risolvere. Nella documentazione ufficiale di tor viene consigliato di usare 3proxy che però non ha risolto il problema. Anche usando polipo non cambia niente. Ci sto sbattendo la testa da un mese ormai…

  18. sì, la cache solo in ram è più sicura. comunque, una cosa importante che viene fatta durante l’installazione di polipo, è di rendere la directory della cache accessibile solo all’utente “polipo” (o nobody) ed al gruppo “polipo” (o nobody). in questo modo, solo gli utenti che appartengono a quel gruppo e root, possono entrarci e leggere. finché il disco fisso resta nel tuo pc, hai un pochettino di sicurezza sulla cache.

    ftp: non avevo guardato. penso che una soluzione potrebbe essere di installare un proxy ftp che possa fare il forward sul socks di tor. dovrò provare.

  19. Si, in effetti è vero. Anzi, usando polipo, la cache è ancora più protetta (stando in ram è comunque accessibile finche non si riavvia). Come proxy ftp c’è 3proxy, che non sono riuscito a far funzionare (e oltretutto leggere fra i parametri di configurazione “C:\\Programmi\3proxy” mi ha dato da pensare), frox (che supporta il caching come polipo ma non viene aggiornato dal 2005…mmm…) e squid che non ho ancora provato. Non so se ce ne siano altri.

  20. Non mi ero mai accorto del problema FTP, in pratica vanifica tutte le barriere di tor….avete trovato una soluzione, a parte l’utilizzo di firefox+tor button? Io uso chromium

  21. Comunque, una soluzione temporanea può essere di impostare l’indirizzo del proxy ftp del browser a localhost. Quando dal browser si cercherà di accedere ad un server ftp, lui cercherà di passare per il proxy locale, che gli risponderà con un errore. Non andranno gli ftp dal browser, ma almeno si sarà protetti dalla falla evidenziata dal sito ip-check.info

  22. poi dicono a me che non la smetto di cambiare distribuzioni… :D
    a proposito di firefox, sono passato da pentadactyl a vimperator e finalmente sono riuscito ad aggiustare uno dei temi stile zenburn che si trovano (e che danno una marea di problemi con la mia versione di vimperator). vimperator, al contrario di pentadactyl, si comporta bene con il gestore di wordpress.

  23. Pingback: “Do Not Track” è pericoloso e inefficace – Nadim Kobeissi « Il neurone proteso

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Connessione a %s...