Come installare Squid Proxy Server su Ubuntu 20.04
Su questa pagina
- Prerequisiti
- Per iniziare
- Installa Squid Proxy
- Imposta l'autenticazione basata su IP
- Imposta l'autenticazione basata sull'utente
- Imposta l'autenticazione combinata
- Imposta Squid per rendere anonimo il traffico
- Verifica il proxy Squid
- Conclusione
Squid è un'applicazione proxy basata su Linux completa 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 termini semplici, 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 i dati vengono archiviati 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.
- Il server è configurato con una password di root.
Iniziare
Prima di iniziare, dovrai aggiornare i tuoi 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 il proxy Squid
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 ubunt4 squid[49285]: Max Swap size: 0 KB Aug 23 12:00:24 ubunt4 squid[49285]: Using Least Load store dir selection Aug 23 12:00:24 ubunt4 squid[49285]: Set Current Directory to /var/spool/squid Aug 23 12:00:24 ubunt4 squid[49285]: Finished loading MIME types and icons. Aug 23 12:00:24 ubunt4 squid[49285]: HTCP Disabled. Aug 23 12:00:24 ubunt4 squid[49285]: Pinger socket opened on FD 14 Aug 23 12:00:24 ubunt4 squid[49285]: Squid plugin modules loaded: 0 Aug 23 12:00:24 ubunt4 squid[49285]: Adaptation support is off. Aug 23 12:00:24 ubunt4 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9 Aug 23 12:00:25 ubunt4 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.
Configurare l'autenticazione basata su IP
Esistono diversi modi per limitare l'accesso a Internet da parte del client. In questa sezione, configureremo Squid per l'autenticazione in base all'indirizzo IP del client.
Puoi farlo modificando il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Aggiungere 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 riavviare il servizio Squid per applicare le modifiche:
systemctl restart squid
Dove:
- client1 e client2 è il nome che identifica 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.
Configurare l'autenticazione basata sull'utente
Puoi anche impostare Squid per l'autenticazione in base a utente e password. Per fare ciò, dovrai installare il pacchetto Apache utils nel tuo sistema.
Esegui il seguente comando per installare il pacchetto Apache utils:
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
Successivamente, 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
Successivamente, 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 configurare 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 quando hai finito, quindi riavvia il servizio Squid per applicare le modifiche:
systemctl restart squid
Imposta Squid per rendere anonimo il traffico
Successivamente, dovrai aggiungere alcune regole per mascherare gli indirizzi IP dei client dai server che ricevono il traffico dal tuo proxy HTTP Squid.
Puoi farlo modificando il file di configurazione predefinito di Squid:
nano /etc/squid/squid.conf
Aggiungere 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 quando hai finito, quindi riavvia il servizio Squid per applicare le modifiche:
systemctl restart squid
Verificare il 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:
Fare clic sulla sezione Impostazioni di rete e fare clic su Impostazioni. Dovresti vedere la seguente pagina:
Selezionare il pulsante di opzione Configurazione proxy manuale, inserire l'indirizzo IP del server Squid nel campo Host HTTP e 3128 nel campo Porta e selezionare la casella di controllo Usa questo server proxy per tutti i protocolli e fare clic sul pulsante OK 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 tuo server proxy Squid che hai creato in precedenza e fai clic sul pulsante OK. 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 ulteriori informazioni, visitare la documentazione ufficiale di Squid.