Introduzione
Gli amministratori di sistema utilizzano Squid Proxy per aumentare la consegna dei contenuti. Squid Proxy consente specificamente a un server di memorizzare nella cache le pagine Web visitate di frequente.
Come? Quando un utente cerca una pagina web o un file, la richiesta va al server proxy, il dispositivo intermedio tra il computer desktop e Internet. Il server proxy estrae la risorsa e la inoltra all'utente, memorizzando nella cache i nuovi dati e utilizzandoli per richieste future fatte allo stesso server.
In questa guida imparerai come impostare, configurare e installare un server proxy Squid su CentOS 7.

Prerequisiti
- Sistema operativo CentOS
- Accesso a una finestra di terminale/riga di comando (Ctrl-Alt-T)
- Un utente CentOS con privilegi di root o sudo
- Il programma di installazione del pacchetto yum , incluso per impostazione predefinita
- Un editor di testo, come vim
Passaggi per l'installazione di Squid Proxy su CentOS
Passaggio 1:aggiorna i repository di software CentOS
Assicurati di lavorare con l'ultima versione del software aggiornando i tuoi repository.
Avvia una finestra di terminale e inserisci quanto segue:
sudo yum -y update
Passaggio 2:installa il pacchetto Squid su CentOS
Per installare Squid, digita:
yum -y install squid
Ora avvia Squid inserendo il seguente comando:
systemctl start squid
Per impostare un avvio automatico all'avvio:
systemctl enable squid
Rivedi lo stato del servizio, usa:
systemctl status squid
Nell'esempio seguente, vediamo che lo stato è "Attivo".

Configurazione del server proxy Squid
Il file di configurazione di Squid si trova in /etc/squid/squid.conf.
1. Apri il file nel tuo editor di testo preferito (vim è stato utilizzato in questo esempio}:
sudo vi /etc/squid/squid.conf
2. Naviga per trovare l'opzione http_port . In genere, questo è impostato per l'ascolto sulla Porta 3218 . Questa porta di solito trasporta il traffico TCP. Se il tuo sistema è configurato per il traffico su un'altra porta, modificalo qui:

Puoi anche impostare la modalità proxy su trasparente se desideri impedire a Squid di modificare le tue richieste e risposte.
Modificalo come segue:
http_port 1234 transparent
3. Vai a http_acacess nega tutto opzione.
Attualmente è configurato per bloccare tutto il traffico HTTP e nessun traffico web è consentito come mostrato di seguito.

Modificalo come segue:
http_access allow all
4. Riavvia il servizio Squid inserendo:
sudo systemctl restart squid
Configura client Squid
Il server proxy Squid è ora configurato. Per configurare il server client, passa alla tua macchina client e apri il tuo browser web.
Se utilizzi Firefox, puoi trovare le impostazioni del proxy in:
Menu> Opzioni> Impostazioni di rete> Impostazioni
Seleziona il pulsante di opzione per Configurazione proxy manuale.

Usa l'indirizzo IP del sistema che ospita il tuo proxy Squid.
Per testare, puoi visitare https://whatismyipaddress.com/ip-lookup. Il tuo indirizzo IP viene visualizzato come indirizzo IP del server proxy.
Crea un elenco di controllo accessi (ACL)
Per le connessioni al di fuori della rete locale del server proxy, è necessario configurare gli elenchi di controllo di accesso (ACL). Questo potrebbe essere necessario se ricevi un errore di "connessione rifiutata".

Per risolvere questo problema, aggiungi semplicemente al tuo elenco di porte sicure una nuova voce ACL.
Modifica /etc/squid/squid.conf file ancora una volta. Aggiungi una nuova riga come segue:
acl localnet src 192.166.0.10
Questo creerà una regola che consente la connessione solo al sistema a questo indirizzo IP.
Commenta la riga per identificare la regola. Il testo dopo il segno # viene ignorato da Squid.
acl localnet src 192.166.0.10 # test computer
È possibile specificare un intervallo di indirizzi IP come segue:
acl localnet src 192.166.0.10/30
Apri le porte proxy Squid
Per aprire una porta specifica, aggiungi quanto segue:
acl Safe_ports port 123 # Custom port
Per salvare le modifiche, riavvia Squid:
systemctl restart squid
Imposta l'autenticazione proxy
Squid offre l'autenticazione di base insieme al supporto di altri tipi di autenticazione.
Innanzitutto, installa httpd-tools con il seguente comando:
yum -y install httpd-tools
Con lo strumento installato, crea il nuovo file:
touch /etc/squid/passwd && chown squid /etc/squid/passwd
Per creare la password, usa questo comando:
htpasswd /etc/squid/passwd newuser
Scambia il ' nuovoutente' con il tuo nome utente.
Il sistema ti chiederà di inserire e confermare una password per "nuovo utente".
Riavvia il servizio proxy e riapri il browser inserendo:
systemctl restart squid
Modifica /etc/squid/squid.conf file e aggiungi le seguenti righe di comando:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
D'ora in poi, quando ti connetti al server proxy Linux, vedrai una richiesta per il tuo nome utente e password. Qualsiasi persona non autenticata verrà fermata da un messaggio di errore.
Come bloccare i siti Web con Squid Proxy
1. Crea e modifica un nuovo file di testo /etc/squid/blocked.acl inserendo:
sudo vi /etc/squid/blocked.acl
2. In questo file, aggiungi i siti Web da bloccare, iniziando con un punto:
.facebook.com
.twitter.com
Il punto specifica di bloccare tutti i siti secondari del sito principale.
3. Apri /etc/squid/squid.conf file di nuovo:
sudo vi /etc/squid/squid.conf
4. Aggiungi le seguenti righe appena sopra l'elenco ACL:
acl blocked_websites dstdomain “/etc/squid/blocked.acl”
http_access deny blocked_websites