Ricerca nel sito web

Come installare Squid Proxy Server su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa Squid Proxy
  4. Imposta l'autenticazione basata su IP
  5. Imposta l'autenticazione basata sull'utente
  6. Imposta l'autenticazione combinata
  7. Imposta Squid per rendere anonimo il traffico
  8. Verifica il proxy Squid
  9. 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.