Virtual Richard Stallman per Arch

IMG: Freedom mattersNella versione originale, è un programma per la distribuzione Debian e derivate. Serve per fare un elenco dei pacchetti installati senza licenza libera, che, per qualche ragione, sono incompatibili con le licenze libere, oppure che hanno altri problemi simili.

Il nome, si rifà ironicamente al fondatore della Free Software Foundation, Richard Stallman, noto programmatore e attivista nella promozione del software libero.

L’ho trovato sul forum principale di Arch. È uno script in python che si appoggia alla blacklist di Parabola, una derivata di Arch, che include solo software con licenza libera.

Dovrebbe funzionare su Arch e tutte le derivate.
Continua a leggere

Il mio desktop (ArchLinux + Awesome WM)

Per un impeto di vanità, visto che è stato molto apprezzato, ho deciso di mostrarvi il mio desktop personalizzato, parlare un po’ della distribuzione GNU-Linux che uso, ed elencare le applicazioni che utilizzo abitualmente. Chiunque voglia i file di configurazione che ho preparato, li trova in coda all’articolo (aggiornati al 2/12/2012 alle 18:09).

Aggiornamento 5/12/2012: Ho reso la configurazione ancora più minimale. Aggiungo nuove schermate e la configurazione scaricabile.

Aggiornamento 8/12/2012: ci sono stati nuovi cambiamenti nella configurazione di awesome e di alcuni programmi. Sono stati aggiunti due script: controllo del brano in esecuzione da MPD e dei dispositivi removibili montati. Il file compresso con le nuove configurazioni è in coda al post.

Aggiornamento 30/12/2012: Ho adattato la configurazione del secondo tema, cioè quello che uso attualmente, alla versione 3.5 di awesome. I nuovi file di configurazione, che potete scaricare tramite il link in fondo all’articolo, non funzioneranno sulla versione precedente. La configurazione del primo tema è rimasta invariata.

IMG: Awesome vuoto

IMG: Awesome pieno

Continua a leggere

Tor/polipo/privoxy/pdnsd: alcune note

Partendo dalla configurazione precedente, ho notato che, togliendo privoxy dalla catena, c’è un piccolo incremento di velocità. Privoxy crea un piccolo collo di bottiglia.

Cercando in rete, ho trovato una soluzione alternativa, per poter bloccare i banner pubblicitari direttamente con polipo. Il filtraggio, forse, non sarà efficiente come quello di privoxy, ma per molti potrebbe essere sufficiente.

Scaricate la easylist.txt di Adblock Plus, e convertitela usando uno di questi due script adblock2polipo.py (Python), adblock2polipo.rb (Ruby).

es:

./adblock2polipo.rb easylist.txt > forbidden

Un volta fatta la conversione, fate una copia di sicurezza del file /etc/polipo/forbidden e sostituitelo con quello appena creato.

Riavviate polipo.

Ora dovrete puntare il vostro browser o impostare il proxy di default alla porta di polipo (8123), invece che a quella di privoxy (8111). Per maggiori informazioni, fate riferimento alla precedente guida.

Se questa soluzione vi sembra preferibile, non vi resta che stoppare privoxy e toglierlo dai servizi all’avvio.

Aggiornamento 22/6/2012: L’aggiornamento di oggi del pacchetto polipo in ArchLinux, può causare dei problemi. Lo script di avvio richiede la presenza di un file di configurazione mancante. Nell’attesa che il problema venga risolto con un nuovo aggiornamento, pubblico la mia soluzione.

Creare il file /etc/conf.d/polipo.conf contenete

POLIPO_ARGS=' daemonise=true logFile="/var/log/polipo.log"'

Dato che in seguito all’aggiornamento, il demone verrà lanciato come utente nobody, se prima avevamo creato l’utente “polipo” e impostato il proprietario delle varie directory e file come “polipo”, dovremmo fare qualche modifica.

in /etc/rc.d/polipo cambiare la riga 22 da

sudo -u nobody /usr/bin/$daemon_name ${POLIPO_ARGS}

a

sudo -u polipo /usr/bin/$daemon_name ${POLIPO_ARGS}

Lanciare il comando

# chown -R polipo:polipo /var/run/polipo /var/cache/polipo /var/log/polipo.log

Aggiornamento 25/6/2012: In Arch, il pacchetto di polipo è appena stato aggiornato, quindi non è più necessario intervenire. Nel caso l’aveste fatto, dovrete eliminare o rinominare il file polipo.conf creato manualmente, prima di lanciare l’aggiornamento. Rimangono valide le istruzioni per l’esecuzione del demone con un utente dedicato, ma da quello che ho visto, ogni aggiornamento è sempre andato a cambiare i proprietari e lo script di avvio, vanificando le modifiche fatte manualmente. Se vi va bene che il demone venga eseguito con l’utente “nobody”, riportate il proprietario del file di log a “nobody.nobody” e non dovrete più cambiare nulla altro, se invece preferite eseguirlo con un utente dedicato, c’è la possibilità che dovrete ripetere le modifiche ad ogni successivo aggiornamento.

Aggiornamento 27/6/2012: Ho aggiornato la guida.

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.

Continua a leggere