Creare un proxy Server con Raspberry Pi 4 è possibili utilizzando Privoxy, un proxy web senza cache gratuito e open source in grado di filtrare e manipolare dati in arrivo.
Uno dei vantaggi del software Privoxy è che puoi filtrare e manipolare i dati delle pagine Web prima che raggiungano il browser web. Ciò significa che puoi anche utilizzare Privoxy per agire come un blocco degli annunci per i browser web che non supportano software come AdBlock.
Sommario
Cos’è un proxy server
Prima di vedere come configurare un Proxy Server con Raspberry occorre sapere cose un proxy.
Un server proxy agisce come punto di passaggio 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.
Proxy Server con Raspberry: installare Privoxy
Prima di iniziare a vedere come configurare un proxy server con Raspberry, va detto che Privoxy è un software che possiamo liberamente scaricare su 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.
Prima di installare il software Privoxy sul nostro Raspberry Pi, dobbiamo aggiornare i pacchetti esistenti di Raspbian. Possiamo farlo eseguendo i seguenti due comandi sul terminale del Pi.
sudo apt-get update
sudo apt-get upgrade
Una volta aggiornati i repository possiamo installare Privoxy utilizzando il comando:
sudo apt-get install privoxy
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.
Configurare Proxy Server in Raspberry Pi 4
Per cambiare la configurazione standard di Privoxy digitiamo il comando
sudo nano /etc/privoxy/config
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.
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.
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.
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
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.
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.
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.
Configurazione avanzata Proxy Server con Raspberry
Nella barra relativa all’indirizzo del browser digitiamo config.privoxy.org, dovrebbe apparire la pagina di configurazione. Clicchiamo su View & change the current 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 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.
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.
Conclusione
Siamo arrivati alla fine di questa guida: ora sapete come configurare Proxy Server con Raspberry, come configurare un browser con Privoxy e anche come configurare Privoxy per adattarlo al vostro utilizzo.