Ricerca nel sito web

Come configurare il server "Squid Proxy" su Ubuntu e Debian


Squid è un server proxy Web HTTP di caching e forwarding molto popolare utilizzato dalla mia vasta gamma di aziende per memorizzare nella cache le pagine Web da un server Web per migliorare la velocità del server Web, ridurre i tempi di risposta e ridurre l'utilizzo della larghezza di banda della rete.

Leggi anche: Come creare un proxy HTTP utilizzando Squid su CentOS 7

In questo articolo spiegheremo come installare un server proxy Squid sulle distribuzioni Ubuntu e Debian e utilizzarlo come server proxy HTTP.

Come installare Squid su Ubuntu

Prima di iniziare, dovresti sapere che il server Squid non ha alcun requisito, ma la quantità di utilizzo della RAM può variare in base ai client che navigano in Internet tramite il server proxy.

Il pacchetto Squid è disponibile per l'installazione dal repository Ubuntu di base, ma prima assicurati di aggiornare i tuoi pacchetti eseguendo.

sudo apt update

Una volta aggiornati i pacchetti, puoi procedere ulteriormente con l'installazione di Squid e avviarlo e abilitarlo all'avvio del sistema utilizzando i seguenti comandi.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

A questo punto il tuo proxy web Squid dovrebbe essere già in esecuzione e puoi verificare lo stato del servizio con.

sudo systemctl status squid
Uscita del campione
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Di seguito sono riportate alcune importanti posizioni dei file Squid di cui dovresti essere a conoscenza:

  • File di configurazione di Squid: /etc/squid/squid.conf
  • Registro di accesso Squid: /var/log/squid/access.log
  • Registro della cache Squid: /var/log/squid/cache.log

Il file di configurazione predefinito contiene alcune direttive di configurazione che devono essere configurate per influenzare il comportamento di Squid.

Ora apri questo file per la modifica utilizzando l'editor Vi e apporta le modifiche come mostrato di seguito.

sudo vim /etc/squid/squid.conf

Ora puoi cercare le seguenti righe e modificarle come richiesto, nell'editor Vi puoi cercare quelle righe premendo 'ESC' e digitando "/ " chiave per scrivere le righe specifiche da cercare.

  • http_port: questa è la porta predefinita per il server proxy HTTP, per impostazione predefinita è 3128, puoi cambiarla con qualsiasi altra porta che desideri, puoi anche aggiungere la porta Tag "trasparente" alla fine della riga come http_port 8888 trasparente per fare in modo che il proxy Squid si comporti come un proxy trasparente, se lo desideri.
  • http_access confirm all: questa riga non consentirà a nessuno di accedere al server proxy HTTP, ecco perché devi cambiarla in http_access consenti a tutti di iniziare a utilizzare il tuo server proxy Squid .
  • visible_hostname : questa direttiva viene utilizzata per impostare il nome host specifico su un server Squid. Puoi dare qualsiasi nome host a Squid.

Dopo aver apportato le modifiche di cui sopra, puoi riavviare il server proxy Squid utilizzando il comando.

sudo systemctl restart squid

Configurazione di Squid come proxy HTTP su Ubuntu

In questa sezione di configurazione di Squid ti spiegheremo come configurare Squid come proxy HTTP utilizzando solo l'indirizzo IP del client per l'autenticazione.

Aggiungi ACL Squid

Se desideri consentire a un solo indirizzo IP di accedere a Internet tramite il tuo nuovo server proxy, dovrai definire un nuovo acl (lista di controllo accessi) nel file di configurazione.

sudo vim /etc/squid/squid.conf

La regola acl che dovresti aggiungere è:

acl localnet src XX.XX.XX.XX

Dove XX.XX.XX.XX è l'indirizzo IP del computer client. Questo acl dovrebbe essere aggiunto all'inizio della sezione ACL come mostrato nello screenshot seguente.

È sempre una buona pratica definire un commento accanto a ACL che descriva, ad esempio, chi utilizza questo indirizzo IP.

acl localnet src 192.168.0.102  # Boss IP address

Sarà necessario riavviare il servizio Squid per rendere effettive le nuove modifiche.

sudo systemctl restart squid

Porte aperte nel proxy Squid

Per impostazione predefinita, solo alcune porte sono consentite nella configurazione di Squid, se desideri aggiungerne altre basta definirle nel file di configurazione come mostrato.

acl Safe_ports port XXX

Dove XXX è il numero di porta che desideri consentire. Ancora una volta è una buona pratica definire un commento accanto ad acl che descriva per cosa verrà utilizzata la porta.

Affinché le modifiche abbiano effetto, dovrai riavviare Squid ancora una volta.

sudo systemctl restart squid

Autenticazione del client proxy Squid

Per consentire agli utenti di autenticarsi prima di utilizzare il proxy, è necessario abilitare l'autenticazione http di base nel file di configurazione, ma prima è necessario installare il pacchetto apache2-utils utilizzando il seguente comando.

sudo apt install apache2-utils

Ora crea un file chiamato “passwd” che successivamente memorizzerà il nome utente per l'autenticazione. Squid viene eseguito con l'utente "proxy", quindi il file dovrebbe essere di proprietà di quell'utente.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Ora creeremo un nuovo utente chiamato “tecmint” e imposteremo la sua password.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Ora per abilitare l'autenticazione http di base, apri il file di configurazione.

sudo vim /etc/squid/squid.conf

Dopo le ACL delle porte aggiungere le seguenti righe:

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

Salvare il file e riavviare Squid in modo che le nuove modifiche abbiano effetto:

sudo systemctl restart squid

Blocca i siti Web su Squid Proxy

Per bloccare l'accesso a siti Web indesiderati, crea prima un file chiamato "blacklisted_sites.acl" che memorizzerà al suo interno i siti nella lista nera.

sudo touch /etc/squid/blacklisted_sites.acl

Ora aggiungi ad esempio i siti web ai quali desideri bloccare l'accesso.

.badsite1.com
.badsite2.com

Il punto procedente informa squid di bloccare tutti i riferimenti a quei siti tra cui www.badsite1, subsite.badsite1.com ecc.

Ora apri il file di configurazione di Squid.

sudo vim /etc/squid/squid.conf

Subito dopo gli ACL precedenti aggiungere le due righe seguenti:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Ora salva il file e riavvia Squid:

sudo systemctl restart squid

Blocca parole chiave specifiche con Squid

Per bloccare un elenco di parole chiave, crea prima un file chiamato "blockkeywords.lst" che memorizzerà al suo interno le parole chiave nella lista nera.

sudo touch /etc/squid/blockkeywords.lst

Ora aggiungi ad esempio le parole chiave alle quali desideri bloccare l'accesso.

facebook
instagram
gmail

Ora apri il file di configurazione di Squid e aggiungi la seguente regola.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Ora salva il file e riavvia Squid:

sudo systemctl restart squid

Una volta configurato tutto in modo accurato, ora puoi configurare il browser Web del client locale o le impostazioni di rete del sistema operativo per utilizzare il proxy HTTP Squid appena configurato.

Configurare il client per utilizzare Squid Proxy

Ora per verificare che il tuo server proxy funzioni o meno, puoi aprire Firefox e andare su Modifica –> Preferenze –> Avanzate –> Rete –> Impostazioni e selezionare "Configurazione proxy manuale " e inserisci l'indirizzo IP del server proxy e la porta da utilizzare per tutte le connessioni come segue.

Una volta inseriti tutti i dettagli proxy richiesti, sarai in grado di navigare sul Web utilizzando il tuo server proxy Squid, potrai fare la stessa cosa in qualsiasi altro browser o programma tu voglia.

Per assicurarti di navigare sul Web utilizzando il tuo server proxy, puoi visitare http://www.ipaddresslocation.org/, nell'angolo in alto a destra devi vedere lo stesso indirizzo IP del tuo server Indirizzo IP.

Per ulteriori impostazioni di configurazione aggiuntive, puoi controllare la documentazione ufficiale di Squid. Se hai domande o commenti, aggiungili nella sezione commenti qui sotto.