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 squidsudo 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 cpcomando:

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.

/etc/squid / squid.conf
# 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:

/etc/squid/allowed_ips.txt
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):

/etc/squid/squid.conf
# ...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:

/etc/squid/squid.conf
# ...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/tcpfirewall-cmd --reload
Se Squid è in esecuzione su un’altra porta non predefinita, è necessario consentire il traffico su quella porta con.

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.

  1. Nell’angolo in alto a destra, fai clic sull’icona hamburger per aprire il menu di Firefox:

  2. Clicca sul link ⚙ Preferences.

  3. Scorri verso il basso fino alla sezione Network Settings e fai clic sul pulsante Settings....

  4. Si aprirà una nuova finestra.

    • Selezionare il pulsante di opzione Manual proxy configuration.
    • Inserisci l’indirizzo IP del server Squid nel campo HTTP Host e 3128 nel campo Port.
    • Selezionare la casella di controllo Use this proxy server for all protocols.
    • Fare clic sul pulsante OK per salvare le impostazioni.
    Firefox Proxy Squid

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.

Leave a Reply

Il tuo indirizzo email non sarà pubblicato.