Squid è un'applicazione proxy completa basata su Linux utilizzata principalmente per filtrare il traffico, la sicurezza e le ricerche DNS. Viene anche utilizzato per migliorare le prestazioni del server Web memorizzando nella cache le risorse. In parole povere, un server Squid è un computer che funge da intermediario tra un computer desktop e Internet che reindirizza le richieste dei client in entrata a un server in cui vengono archiviati i dati per un più facile recupero. Supporta diversi protocolli tra cui HTTP, FTP, TLS, SSL, Internet Gopher e HTTPS.
In questo tutorial, ti mostreremo come installare e configurare il server proxy Squid sul server Ubuntu 20.04.
Prerequisiti
- Un server che esegue Ubuntu 20.04.
- Una password di root è configurata sul server.
Per iniziare
Prima di iniziare, dovrai aggiornare i pacchetti di sistema all'ultima versione. Puoi aggiornarli con il seguente comando:
apt-get update -y
Una volta aggiornati tutti i pacchetti, riavvia il sistema per applicare le modifiche.
Installa Squid Proxy
Per impostazione predefinita, il pacchetto Squid è disponibile nel repository predefinito di Ubuntu 20.04. Puoi installarlo usando il seguente comando:
apt-get install squid -y
Una volta installato Squid, puoi controllare lo stato del servizio Squid con il seguente comando:
systemctl status squid
Dovresti ottenere il seguente output:
? squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-08-23 12:00:24 UTC; 11s ago Docs: man:squid(8) Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS) Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS) Main PID: 49283 (squid) Tasks: 4 (limit: 2353) Memory: 16.4M CGroup: /system.slice/squid.service ??49283 /usr/sbin/squid -sYC ??49285 (squid-1) --kid squid-1 -sYC ??49287 (logfile-daemon) /var/log/squid/access.log ??49288 (pinger) Aug 23 12:00:24 ubuntu2004 squid[49285]: Max Swap size: 0 KB Aug 23 12:00:24 ubuntu2004 squid[49285]: Using Least Load store dir selection Aug 23 12:00:24 ubuntu2004 squid[49285]: Set Current Directory to /var/spool/squid Aug 23 12:00:24 ubuntu2004 squid[49285]: Finished loading MIME types and icons. Aug 23 12:00:24 ubuntu2004 squid[49285]: HTCP Disabled. Aug 23 12:00:24 ubuntu2004 squid[49285]: Pinger socket opened on FD 14 Aug 23 12:00:24 ubuntu2004 squid[49285]: Squid plugin modules loaded: 0 Aug 23 12:00:24 ubuntu2004 squid[49285]: Adaptation support is off. Aug 23 12:00:24 ubuntu2004 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9 Aug 23 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: released 0 objects
Per impostazione predefinita, Squid è in ascolto sulla porta 3128. Puoi verificarlo con il seguente comando:
netstat -plunt | grep 3128
Dovresti vedere il seguente output:
tcp6 0 0 :::3128 :::* LISTEN 50017/(squid-1)
Una volta terminato, puoi procedere al passaggio successivo.
Impostazione dell'autenticazione basata su IP
Esistono diversi modi per limitare l'accesso a Internet da parte del client. In questa sezione, imposteremo Squid per l'autenticazione in base all'indirizzo IP del cliente.
Puoi farlo modificando il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Aggiungi la seguente riga all'inizio del file:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 http_access allow client1 client2
Salva e chiudi il file quando hai finito. Quindi riavvia il servizio Squid per applicare le modifiche:
systemctl restart squid
Dove:
- cliente1 e cliente2 è il nome che ha identificato i computer client.
- 192.168.10.10 e 192.168.10.11 è l'indirizzo IP del computer client.
Ora, solo i computer configurati con IP 192.168.10.10 e 192.168.10.11 possono accedere a Internet.
Impostazione dell'autenticazione basata sull'utente
Puoi anche impostare Squid per l'autenticazione in base a utente e password. Per farlo, dovrai installare il pacchetto utils di Apache nel tuo sistema.
Esegui il comando seguente per installare il pacchetto di utilità di Apache:
apt install apache2-utils -y
Una volta installato, crea un primo utente con il seguente comando:
htpasswd /etc/squid/passwd client1
Ti verrà chiesto di impostare una password come mostrato di seguito:
New password: Re-type new password: Adding password for user client1
Quindi, crea un secondo utente con il seguente comando:
htpasswd /etc/squid/passwd client2
Imposta la tua password come mostrato di seguito:
New password: Re-type new password: Adding password for user client2
Successivamente, puoi verificare entrambi gli utenti utilizzando il seguente comando:
cat /etc/squid/passwd
Dovresti ottenere il seguente output:
client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/ client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0
Quindi, apri il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Rimuovi le prime tre righe che hai aggiunto nella sezione precedente e aggiungi le seguenti righe all'inizio del file:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Salva e chiudi il file. Quindi, riavvia il servizio proxy Squid per applicare le modifiche:
systemctl restart squid
Ora dovrai fornire nome utente e password per accedere a Internet.
Imposta l'autenticazione combinata
Puoi anche impostare uno Squid per autenticare un client in base all'indirizzo IP e al nome utente/password.
Apri il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Trova le seguenti righe che hai aggiunto nella sezione precedente:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
E sostituiscili con le seguenti righe:
acl client1 src 192.168.10.10 acl client2 src 192.168.10.11 auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd acl ncsa_users proxy_auth REQUIRED http_access allow client1 client2 ncsa_users
Salva e chiudi il file al termine, quindi riavvia il servizio Squid per applicare le modifiche:
systemctl restart squid
Configura Squid per rendere anonimo il traffico
Successivamente, dovrai aggiungere alcune regole per mascherare gli indirizzi IP dei client dai server che ricevono traffico dal tuo proxy HTTP Squid.
Puoi farlo modificando il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Aggiungi le seguenti righe all'inizio del file:
forwarded_for off request_header_access Allow allow all request_header_access Authorization allow all request_header_access WWW-Authenticate allow all request_header_access Proxy-Authorization allow all request_header_access Proxy-Authenticate allow all request_header_access Cache-Control allow all request_header_access Content-Encoding allow all request_header_access Content-Length allow all request_header_access Content-Type allow all request_header_access Date allow all request_header_access Expires allow all request_header_access Host allow all request_header_access If-Modified-Since allow all request_header_access Last-Modified allow all request_header_access Location allow all request_header_access Pragma allow all request_header_access Accept allow all request_header_access Accept-Charset allow all request_header_access Accept-Encoding allow all request_header_access Accept-Language allow all request_header_access Content-Language allow all request_header_access Mime-Version allow all request_header_access Retry-After allow all request_header_access Title allow all request_header_access Connection allow all request_header_access Proxy-Connection allow all request_header_access User-Agent allow all request_header_access Cookie allow all request_header_access All deny all
Salva e chiudi il file al termine, quindi riavvia il servizio Squid per applicare le modifiche:
systemctl restart squid
Verifica proxy Squid
Successivamente, dovrai definire il tuo server proxy nel tuo browser web Mozilla.
Vai al sistema client, apri il browser web Mozilla e fai clic su Modifica => Preferenze come mostrato di seguito:
Fai clic sulla Rete Impostazioni sezione e fai clic su Impostazioni . Dovresti vedere la seguente pagina:
Seleziona il Manuale proxy configurazione pulsante di opzione, inserisci l'indirizzo IP del tuo server Squid nel campo Host HTTP e 3128 nel campo Porta e seleziona la casella di controllo Usa questo server proxy per tutti i protocolli e fai clic su OK pulsante per salvare le impostazioni.
Ora, il tuo browser è configurato per navigare in Internet tramite il proxy Squid.
Per verificarlo, digita l'URL https://www.whatismyip.com/. Ti verrà chiesto di fornire un nome utente e una password come mostrato di seguito:
Fornisci il nome utente e la password del server proxy Squid che hai creato in precedenza e fai clic su OK pulsante. Dovresti vedere la seguente pagina:
Nella pagina sopra, dovresti vedere l'indirizzo IP del tuo server Squid invece dell'indirizzo IP del tuo computer client.
Conclusione
Congratulazioni! hai installato e configurato correttamente il server proxy Squid sul server Ubuntu 20.04. Puoi anche configurare il proxy Squid per limitare il sito Web specifico in base alla parola, al dominio e agli IP. Per maggiori informazioni, visita la documentazione ufficiale di Squid.