Introduzione
Squid è un proxy di caching che supporta diversi protocolli di rete come HTTP, HTTPS e FTP.
Questo proxy può migliorare le prestazioni e la sicurezza del tuo web server grazie al salvataggio in una memoria cache delle richieste già effettuate, al filtraggio del traffico web e alla restrizione degli accessi in base alla geolocalizzazione.
In questo tutorial ti verrà spiegato come impostare Squid Proxy su un server Debian Buster e come configurare alcuni browser web per poter usufruire di tale proxy.
Installare Squid su Debian
Il pacchetto per Squid è incluso nelle repositories standard di Debian 10. Basta quindi eseguire i comandi standard per procedere con la sua installazione:
$ sudo apt update
$ sudo apt install squid
A installazione terminata, il proxy si avvierà in automatico. Per verificarne il corretto funzionamento, sarà sufficiente digitare:
$ sudo systemctl status squid
L'output ottenuto dovrebbe essere simile al seguente:
squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: active (running) since Wed 2020-05-26 18:48:47 PDT; 3s ago
...
Configurazione di Squid Proxy
Per configurare Squid Proxy, dovrai modificare con un editor di testo il file squid.conf, presente nella directory di Squid.
$ sudo nano /etc/squid/squid.conf
N.B. Ti consigliamo, prima di effettuare alcuna modifica, di creare una copia della configurazione originale da avere come backup.
Una delle prime configurazioni da poter cambiare è quella che riguarda la porta su cui il proxy è in ascolto, che di default è la porta la 3128.
Per eseguire tale modifica, individua la seguente riga nel file di testo:
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
Modificando i due elementi evidenziati potrai, rispettivamente, modificare l'indirizzo IP dell'interfaccia e la porta su cui Squid è in ascolto.
Una seconda configurazione con la quale interagire è quella riguardante il controllo degli accessi. In Squid, di default, l'accesso è consentito solo al localhost ma potrai specificare una lista di indirizzi IP a cui consentire l'accesso.
Per farlo, dovrai semplicemente creare un file contenente tutti gli indirizzi e includerlo all'interno della configurazione di Squid.
sudo nano /etc/squid/IPallowed.txt
Con questo comando, avrai creato un file di testo dove potrai aggiungere per ogni riga gli indirizzi IP autorizzati nel tuo proxy.
Dopo aver fatto ciò, dovrai aprire il file di configurazione e inserire una nuova ACL chiamata IPallowed e includere il file di testo appena creato.
Per decidere invece il protocollo di accesso da assegnare a tali indirizzi IP, dovrai inserire la voce http_access seguita dal nome della ACL definita sopra.
In sostanza, dovresti avere delle stringhe simili:
# ...
acl IPallowed src "/etc/squid/IPallowed.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow IPallowed
# And finally deny all other access to this proxy
http_access deny all
E' importante che la regola di deny all sia sempre specificata alla fine delle altre dichiarazioni, per consentire di negare tutte le richieste a eccezione di quelle degli indirizzi precedentemente dichiarati. Squid, come i firewall, legge infatti le regole dall'alto verso il basso.
Salvato il file di configurazione, occorrerà riavviare il proxy per applicare le modifiche:
$ sudo systemctl restart squid
Configurazione del Firewall
Se utilizzi UFW, potrai aprire la porta 3128 (o la porta che hai modificato) abilitando il profilo "Squid":
$ sudo ufw allow 'Squid'
Se invece utilizzi le nftables, dovrai utilizzare un comando leggermente più complesso per aprire le porte:
$ sudo nft add rule inet filter input tcp dport 3128 ct state new,established counter accept
Configurare i tuoi Browser per utilizzare il Proxy
In questa sezione, potrai approfondire come permettere ai tuoi browsers l'utilizzo del proxy Squid.
Firefox
Questi step valgono per qualunque sistema operativo:
- In Firefox, clicca , in alto a destra, sull'icona ☰
- Seleziona l'opzione Preferenze
- Scorri nella sezione dedicata alle impostazioni di rete e clicca sulla voce Impostazioni
- Nella nuova finestra che si aprirà:
- Clicca la Configurazione Manuale del Proxy
- Inserisci l'indirizzo IP del tuo Server squid nel campo HTTP Host e inserisci la porta 3128 nel campo Port
- Seleziona la voce Usa questo server proxy per tutti i protocolli
- Conferma le nuove impostazioni cliccando su OK.
Ora che il tuo browser dovrebbe navigare su Internet tramite il proxy di Squid, puoi verificare questo cambiamento verificando che l'IP con cui vieni riconosciuto sulla rete sia lo stesso del server Squid.
N.B. Puoi tornare alle impostazioni di default semplicemente ritornando in quella sezione delle impostazioni di rete di Firefox e selezionando la voce Usa le impostazioni del proxy di sistema.
Google Chrome
In Chrome, il modo più diretto per lanciare il browser con le impostazioni del profilo di Squid è utilizzare la riga di comando nei terminali.
I comandi, ovviamente , cambiano da sistema a sistema.
Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
MacOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
Windows:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="http://SQUID_IP:3128"
Se il profilo non esiste, verrà creato in automatico. Anche stavolta, potrai verificare il corretto funzionamento del server proxy verificando che il tuo indirizzo IP sia lo stesso di Squid.
Conclusioni
Seguendo i passaggi di questo tutorial, hai imparato a installare e configurare correttamente Squid Proxy sul tuo server Linux con Debian 10 e a permettere ai tuoi browser di utilizzarlo.
Grazie al proxy, potrai migliorare la velocità del tuo web server e aumentare la sicurezza, restringendo l'accesso degli utenti alla rete.