Come installare e configurare Squid Proxy su CentOS 7
Squid è un proxy di caching completo che supporta protocolli di rete popolari come HTTP, HTTPS, FTP e altro ancora. Posizionare Squid davanti a un server Web può migliorare notevolmente le prestazioni del server memorizzando nella cache richieste ripetute, filtrando il traffico web e accedendo a contenuti con restrizioni geografiche.
Questo tutorial spiega come impostare Squid su CentOS 7 e configurare i browser Web Firefox e Google Chrome per utilizzare il proxy.
Installazione di Squid su CentOS #
Il pacchetto Squid è incluso nei repository CentOS 7 predefiniti. Per l’installazione eseguire il seguente comando come utente sudo:
sudo yum install squid
una Volta completata l’installazione, avviare e attivare il servizio di Calamari:
sudo systemctl start squid
sudo systemctl enable squid
Per verificare che l’installazione è stata eseguita correttamente, digitare il seguente comando che stampa lo stato del servizio:
sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...
la Configurazione di Squid #
Squid può essere configurato modificando il /etc/squid/squid.conf
file. File aggiuntivi con opzioni di configurazione possono essere inclusi utilizzando la direttiva” include”.
Prima di fare qualsiasi modifica, eseguire il backup del file di configurazione originale con il cp
comando:
sudo cp /etc/squid/squid.conf{,.orginal}
Per modificare il file, aprirlo con l’editor di testo:
sudo nano /etc/squid/squid.conf
per impostazione predefinita, Calamari è configurato per l’ascolto sulla porta 3128
su tutte le interfacce di rete sul server.
Se si desidera modificare la porta e impostare un’interfaccia di ascolto, individuare la linea che inizia con http_port
e specificare l’indirizzo IP dell’interfaccia e la nuova porta. Se non è specificata alcuna interfaccia Squid ascolterà su tutte le interfacce.
# Squid normally listens to port 3128http_port IP_ADDR:PORT
L’esecuzione di Squid su tutte le interfacce e sulla porta predefinita dovrebbe andare bene per la maggior parte degli utenti.
È possibile controllare l’accesso al server Squid utilizzando le liste di controllo di accesso (ACL).
Per impostazione predefinita, Squid consente l’accesso solo da localhost e localnet.
Se tutti i client che utilizzeranno il proxy hanno un indirizzo IP statico, è possibile creare un ACL che includerà gli IP consentiti.
Invece di aggiungere gli indirizzi IP nel file di configurazione principale creeremo un nuovo file dedicato che conterrà gli IP:
192.168.33.1# All other allowed IPs
una Volta fatto aprire il file di configurazione principale e creare un nuovo ACL denominato allowed_ips
(prima riga evidenziata) e consentire l’accesso alle ACL utilizzando http_access
direttiva (seconda riga evidenziata):
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all
L’ordine delle regole http_access
è importante. Assicurati di aggiungere la riga prima di http_access deny all
.
La direttiva http_access
funziona in modo simile alle regole del firewall. Squid legge le regole dall’alto verso il basso, e quando una regola corrisponde le regole di seguito non vengono elaborati.
Ogni volta che si apportano modifiche al file di configurazione è necessario riavviare il servizio Squid affinché le modifiche abbiano effetto:
sudo systemctl restart squid
Squid Authentication #
Squid può utilizzare diversi back-end, tra cui Samba, LDAP e HTTP basic auth per gli utenti autenticati.
In questo esempio, configureremo Squid per utilizzare l’autenticazione di base. Si tratta di un semplice metodo di autenticazione integrato nel protocollo HTTP.
Useremo openssl
per generare le password e aggiungere la coppia username:password
al file /etc/squid/htpasswd
con il comando tee
come mostrato di seguito:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Ad esempio, per creare un utente chiamato “mike” con password “Pz$lPk76
” si eseguirebbe:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
Il passo successivo è configurare Squid per abilitare l’autenticazione HTTP basic e utilizzare il file.
Apri la configurazione principale e aggiungi quanto segue:
# ...auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all
Con le prime tre linee evidenziate stiamo creando un nuovo ACL denominato authenticated
. L’ultima riga evidenziata consente l’accesso agli utenti autenticati.
Riavvia il servizio Squid:
sudo systemctl restart squid
Configurazione del firewall #
Se si esegue un firewall, è necessario aprire la porta 3128
. Per fare ciò eseguire i seguenti comandi:
sudo firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
Configurazione del browser per utilizzare Proxy #
Ora che avete Squid impostato, l’ultimo passo è quello di configurare il browser preferito per usarlo.
Firefox #
I passaggi seguenti sono gli stessi per Windows, macOS e Linux.
-
Nell’angolo in alto a destra, fai clic sull’icona hamburger
☰
per aprire il menu di Firefox: -
Clicca sul link
⚙ Preferences
. -
Scorri verso il basso fino alla sezione
Network Settings
e fai clic sul pulsanteSettings...
. -
Si aprirà una nuova finestra.
- Selezionare il pulsante di opzione
Manual proxy configuration
. - Inserisci l’indirizzo IP del server Squid nel campo
HTTP Host
e3128
nel campoPort
. - Selezionare la casella di controllo
Use this proxy server for all protocols
. - Fare clic sul pulsante
OK
per salvare le impostazioni.
- Selezionare il pulsante di opzione
A questo punto, il vostro Firefox è configurato ed è possibile navigare in Internet attraverso il proxy Squid. Per verificarlo, apri google.com
, digita “qual è il mio ip” e dovresti vedere il tuo indirizzo IP del server Squid.
Per tornare alle impostazioni predefinite andare su Network Settings
, selezionare il pulsante di opzione Use system proxy settings
e salvare le impostazioni.
Ci sono anche diversi plugin che possono aiutare a configurare le impostazioni proxy di Firefox come FoxyProxy.
Google Chrome #
Google Chrome utilizza le impostazioni proxy di sistema predefinite. Invece di modificare le impostazioni del proxy del sistema operativo è possibile utilizzare un addon come SwitchyOmegaor avviare il browser Web Chrome dalla riga di comando.
Per il lancio di Chrome con un nuovo profilo e connettersi al server Squid, utilizzare il seguente comando:
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"
Il profilo verrà creato automaticamente se non esiste. In questo modo è possibile eseguire più istanze di Chrome allo stesso tempo.
Per confermare che il server proxy funziona correttamente, apri google.com
e digita “qual è il mio ip”. L’IP mostrato nel tuo browser dovrebbe essere l’indirizzo IP del tuo server.
Conclusione #
Hai imparato come installare squid su CentOS 7 e configurare il tuo browser per usarlo.
Squid è uno dei server di caching proxy più popolari. Migliora la velocità del server web e può aiutare a prendere limitare l’accesso degli utenti a Internet.