Gli utilizzi per il Raspberry Pi sono davvero innumerevoli: non stupisce che sia uno prodotti hardware più utilizzati per progetti DIY, sia software che hardware. Se volete un assaggio delle potenzialità del Raspberry, o delle sue possibili destinazioni d’utilizzo, date un’occhiata all’articolo che gli abbiamo dedicato, oppure a questo strano esperimento effettuato da un utente.

In questa guida ci concentreremo su di un aspetto importante, ovvero come poter salvaguardare la propria privacy o quella aziendale utilizzando Raspberry Pi come strumento per costruire un vero e proprio proxy server. Si tratta di un servizio che ha svariate destinazioni di utilizzo, e che trova in Privoxy un potente alleato da combinare all’impiego di una board Raspberry, la cui ultima incarnazione si chiama Raspberry 4. Senza indugi allora tuffatevi a capofitto nella lettura di questa guida, senza fretta, così da poter comprendere tutti i passaggi necessari alla realizzazione del risultato finale.

Cos’è un proxy server

Un server proxy agisce come punto di passaggio, o porta d’accesso, tra un dispositivo client e internet. Si configura come un server intermedio nel paradigma della comunicazione, che separa gli utenti finali dalle pagine web che desiderano navigare. Configurato a dovere, un proxy server agisce come un vero e proprio guardiano, a seconda del grado di funzionalità e sicurezza scelto, che si discosta molto tra uso privato oppure aziendale.

Forse non ve ne siete mai accorti, ma la maggior parte delle aziende utilizzano proxy per impedire l’accesso a determinati siti, o filtrando il traffico per alcuni servizi: se vi chiedete il motivo per cui dalla postazione di lavoro non riuscite a collegarvi a social come Facebook, la risposta potrebbe essere legata alla presenza di un server proxy.

In linea teorica, quello che fa un proxy è interporsi durante la comunicazione tra un client e una pagina web: la richiesta effettuata dal client passa attraverso il proxy, e se legittima – ovvero, nel rispetto delle regole impostate – viene poi lasciata passare. Lo stesso passaggio, ma con ruoli invertiti, avviene quando i siti web provano a raggiungere i dispositivi client con una richiesta.

I proxy moderni però gestiscono molte più cose che le semplici richieste per visualizzare i siti web, tutto nel nome della sicurezza e delle performance della rete. I proxy server possono essere utilizzati efficacemente come firewall, filtri web, punti di snodo per le connessioni di rete condivise, il tutto accelerando le richieste più comuni per le pagine web maggiormente visitate.

A cosa serve Privoxy?

Privoxy è un proxy web privo di cache con capacità di filtraggio avanzate e incentrate sulla sicurezza e la privacy che permette di modificare i dati delle pagine web (compresi gli headers HTTP), controllare gli accessi, rimuovere gli annunci pubblicitari e altra spazzatura virtuale che si può incontrare navigando su Internet.

Tra i punti di forza di Privoxy figurano la sua natura di software gratuito sotto licenza GNU GPLv2, ma soprattutto la sua flessibilità e l’ampia scelta di opzioni in fase di configurazione, che lo rendono ideale per potersi adattare a bisogni individuale e/o aziendale, a seconda delle proprie necessità. Il software disponibile comprende infatti sia versioni stand-alone, come nel caso del web server disponibile per Raspberry Pi, sia versioni adatte all’uso con multiple reti e sottoreti.

Gli utenti che si affacciano per la prima volta a Privoxy sono sicuramente interessati alla sua capacità di bloccare gli ad pubblicitari, che in alcune situazioni sono diventati ormai una vera e propria piaga, con pop-up pubblicitari e annunci che bloccano la normale navigazione web. Google ha provato a metterci una pezza, forzando i fornitori di servizi pubblicitari e i gestori di siti web ad adottare politiche più trasparenti e meno invasive, ma non tutti si sono adeguati, e Privoxy può rivelarsi un grande alleato in questo scenario d’uso.

Come installare Privoxy e usare Raspberry Pi come proxy server

Prima di iniziare, va detto che Privoxy è un software che possiamo liberamente scaricare su Raspberry Pi, e non di una distro totalmente dedicata: pertanto, possiamo installare Privoxy in qualunque momento, ad esempio se utilizziamo il sistema operativo Raspbian, che arriva di default con l’acquisto di un prodotto Raspberry dal sito ufficiale.

Per installare Privoxy dovremo stabilire una connessione SSH con l’indirizzo IP del dispositivo Raspberry. Se non siamo sicuri di quale indirizzo IP possiamo utilizzare il comando ping raspberrypi.local, ottenendo come risultato l’indirizzo IP associato al device Raspberry.

Stabiliamo una connessione SSH digitando il comando ssh pi@xxx.xxx.xxx.xxx dove le x corrispondono all’indirizzo IP del dispositivo Raspberry trovato in precedenza. Una volta stabilita la connessione, è buona norma aggiornare gli indici dei repository, nient’altro che una raccolta di librerie e applicativi che possiamo utilizzare. Per farlo digitiamo il comando sudo apt-get update && sudo apt-get upgrade.

raspberry pi privoxy apt

Una volta aggiornati i repository possiamo installare Privoxy utilizzando il comando sudo apt-get install privoxy.

raspberry pi privoxy apt install

Ora che abbiamo installato Privoxy, è arrivato il momento di configurarlo. Di default Privoxy accetta tutte le connessioni HTTP e HTTPS dal computer sul quale è in esecuzione, quindi parliamo del nostro Raspberry. Il nostro obbiettivo è quello di renderlo in grado di accettare le connessioni da altri computer e server, per poi istruirlo gradualmente sulle regole da seguire. Per cambiare la configurazione standard di Privoxy digitiamo il comando sudo nano /etc/privoxy/config.

raspberry pi privoxy configuration

Si aprirà il file di configurazione all’interno della finestra di nano, un editor molto leggero e versatile. Il file di configurazione potrebbe sembrare molto lungo e complesso, ma come potrete notare molto del testo è fatto da commenti che spiegano in maniera sommaria cosa succede cambiando i valori e come farlo secondo i nostri gusti.

Quello che dobbiamo fare è un po’ di scrolling verso il basso, fino a raggiungere la sezione 4.2 Toggle, ed in particolare la riga listen-address. Noterete che ci sono già due configurazioni attive, dato che non hanno il segno # all’inizio della riga. Tutte le righe che hanno il simbolo # iniziale non vengono prese in considerazione dal programma.

raspberry pi privoxy configuration 2

Ora apponiamo # prima dei due listen-address e creiamo una nuova riga dove scriveremo listen-address :8118. Quello che stiamo facendo è istruire il programma con una regola, ovvero di accettare tutte le connessioni da ogni indirizzo IP passante per la porta 8118.

raspberry pi privoxy configuration

Ora che abbiamo impostato questa regola fondamentale, possiamo scegliere se indicare una password di protezione per l’utilizzo di Privoxy sulla rete. Per farlo andiamo alla fine del file, dopo gli ultimi #, e digitiamo enable-edit-actions 1.

raspberry pi privoxy configuration

Premiamo CTRL+0 (zero) per salvare il file di configurazione, poi Invio, infine CTRL+X per uscire da nano. Abbiamo terminato la configurazione iniziale di Privoxy su Raspberry Pi: per far si che le modifiche diventino attive, riavviamo il servizio digitando sudo systemctl restart privoxy.

raspberry pi privoxy configuration 5

Chiudiamo la finestra del terminale e apriamo invece il nostro browser preferito: Google Chrome, Chromium, Firefox. Nel campo dell’indirizzo scriviamo xxx.xxx.xxx.xxx:8118, dove le x consistono nell’indirizzo IP del vostro Raspberry. Se non ricordate più questo dato, tornate indietro di qualche paragrafo per scoprire come ottenerlo.

Digitiamo l’indirizzo e la pagina Home di Privoxy dovrebbe palesarsi di fronte ai nostro occhi.

Come configurare il browser per l’utilizzo con Privoxy

Ora che Privoxy è attivo su Raspberry, dobbiamo indicare al nostro browser di utilizzarlo come proxy per tutte le sue connessioni future. Dato che Firefox viene utilizzato maggiormente su Raspberry, qui descriveremo i passi per farlo utilizzando il browser di Mozilla. Nella barra degli indirizzi di Firefox digitiamo about:preferences, poi scrolliamo in basso fino a trovare la sezione Network Settings e clicchiamo sul tasto Settings.

firefox proxy

Quello che interessa a noi è la configurazione chiamata Configure Proxy Access to the Internet: selezioniamo Manual proxy configuration, inserendo in HTTP Proxy l’indirizzo IP del Raspberry, e nel campo Port scriviamo 8118, ovvero la porta specificata in precedenza da dove passeranno tutte le connessioni.

firefox proxy

Chiudiamo la finestra di configurazione e controlliamo che sia tutto in ordine aprendo una pagina web a caso: se la pagina viene correttamente visualizzata, allora Privoxy è attivo e il nostro browser è ben configurato.

Come configurare Privoxy su Raspberry Pi

Nella barra relativa all’indirizzo del browser digitiamo config.privoxy.org, dovrebbe apparire la pagina di configurazione. Clicchiamo su View & change the current configuration.

privoxy configuration

In pratica l’interfaccia web ci permette di modificare con più facilità le opzioni disponibili, ma nulla ci vieta di utilizzare un editor come nano per poter cambiare i valori dei file di configurazione: l’indirizzo in cui questi file sono salvati è indicato nel nome.

Nella pagina di configurazione selezioniamo il primo file, match-all.action, e clicchiamo sul tasto Edit.

privoxy configuration

Privoxy offre la possibilità, per chi non desidera perdere troppo tempo con i file di configurazione, di impostare i filtri su tre livelli distinti:

  • Cautious: Privoxy proverà a filtrare solo i contenuti fortemente sospetti
  • Medium: Privoxy filtrerà molti più contenuti, ma potrebbe rendere impossibile la navigazione su determinate pagine web
  • Advanced: Privoxy proverà a bloccare la maggior parte dei contenuti non direttamente affiliati ad una pagina web

Premere uno dei tre pulsanti disponibili attiverà automaticamente le impostazioni corrispondenti, che possiamo anche personalizzare premendo il tasto Edit accanto ad essi.

privoxy configuration 3

Se volete addentrarvi nella configurazione di Privoxy e delle modalità standard appena descritte, troverete una lunga lista di azioni, con relativa descrizione, che è possibile attivare o disattivare, semplicemente cliccando sopra la relativa colonna.

Anche solo spulciare il file di configurazione e le relative descrizioni potrebbe farvi notare una particolare opzione che secondo voi merita di essere attivata o disattivata. Se invece non volete perdere troppo tempo con la configurazione, basta premere su Cautious, Medium o Advanced e caricare così le impostazioni standard.

privoxy configuration 4

Siamo arrivati alla fine di questa guida: ora sapete come installare Privoxy su Raspberry Pi, come configurare un browser con Privoxy e anche come configurare Privoxy per adattarlo al vostro utilizzo.