Ricerca nel sito web

Come creare un proxy HTTP utilizzando Squid su CentOS 7/8


I proxy Web esistono ormai da un po' di tempo e sono stati utilizzati da milioni di utenti in tutto il mondo. Hanno una vasta gamma di scopi, il più popolare dei quali è l'anonimato online, ma ci sono altri modi in cui puoi trarre vantaggio dai proxy web. Ecco alcune idee:

  • Anonimato in linea
  • Migliora la sicurezza online
  • Migliora i tempi di caricamento
  • Blocca il traffico dannoso
  • Registra la tua attività online
  • Per aggirare le restrizioni regionali
  • In alcuni casi è possibile ridurre l'utilizzo della larghezza di banda

Come funziona il server proxy

Il server proxy è un computer utilizzato come intermediario tra il client e altri server dai quali il client può richiedere risorse. Un semplice esempio di ciò è quando un client effettua richieste online (ad esempio vuole aprire una pagina web), si connette prima al server proxy.

Il server proxy quindi controlla la cache del disco locale e se i dati possono essere trovati lì, restituirà i dati al client, se non sono memorizzati nella cache, effettuerà la richiesta per conto del client utilizzando l'indirizzo IP proxy (diverso dal client) e quindi restituire i dati al client. Il server proxy proverà a memorizzare nella cache i nuovi dati e li utilizzerà per le future richieste effettuate allo stesso server.

Cos'è Squid Proxy

Squid è un proxy web che utilizza la mia vasta gamma di organizzazioni. Viene spesso utilizzato come proxy di memorizzazione nella cache, migliorando i tempi di risposta e riducendo l'utilizzo della larghezza di banda.

Ai fini di questo articolo, installerò Squid su un VPS Linode CentOS 7 e lo utilizzerò come server proxy HTTP.

Come installare Squid su CentOS 7/8

Prima di iniziare, dovresti sapere che Squid non ha requisiti minimi, ma la quantità di utilizzo della RAM può variare a seconda dei client che navigano in Internet tramite il server proxy.

Squid è incluso nel repository di base e quindi l'installazione è semplice e diretta. Prima di installarlo, però, assicurati che i tuoi pacchetti siano aggiornati eseguendo.

yum -y update

Procedi installando Squid, avvialo e abilitalo all'avvio del sistema utilizzando i seguenti comandi.

yum -y install squid
systemctl start squid
systemctl  enable squid

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

systemctl status squid
Uscita del campione
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   CGroup: /system.slice/squid.service
           ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
           ├─2007 (squid-1) -f /etc/squid/squid.conf
           └─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

Ecco alcune posizioni di file importanti 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

Un file di configurazione squid.conf minimo (senza commenti al suo interno) è simile a questo:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

Configurazione di Squid come proxy HTTP

Qui ti mostreremo come configurare Squid come proxy HTTP utilizzando solo l'indirizzo IP del client per l'autenticazione.

Aggiungi ACL Squid

Se desideri consentire all'indirizzo IP di accedere al Web tramite il tuo nuovo server proxy, dovrai aggiungere una nuova riga ACL (lista di controllo accessi) nel file di configurazione .

vim /etc/squid/squid.conf

La riga che dovresti aggiungere è:

acl localnet src XX.XX.XX.XX

Dove XX.XX.XX.XX è l'effettivo indirizzo IP del client che desideri aggiungere. La riga deve essere aggiunta all'inizio del file in cui sono definiti gli ACL. È buona norma aggiungere un commento accanto all'ACL che descriverà chi utilizza questo indirizzo IP.

È importante notare che se Squid si trova al di fuori della tua rete locale, devi aggiungere l'indirizzo IP pubblico del client.

Sarà necessario riavviare Squid affinché le nuove modifiche abbiano effetto.

systemctl  restart squid

Apri le porte proxy Squid

Come potresti aver visto nel file di configurazione, solo alcune porte sono consentite per la connessione. Puoi aggiungerne altri modificando il file di configurazione.

acl Safe_ports port XXX

Dove XXX è la porta effettiva che desideri caricare. Anche in questo caso è una buona idea lasciare un commento accanto che descriva per cosa verrà utilizzata la porta.

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

systemctl  restart squid

Autenticazione del client proxy Squid

Molto probabilmente vorrai che i tuoi utenti si autentichino prima di utilizzare il proxy. A tale scopo, puoi abilitare l'autenticazione HTTP di base. È facile e veloce da configurare.

Per prima cosa avrai bisogno di httpd-tools installato.

yum -y install httpd-tools

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

touch /etc/squid/passwd
chown squid: /etc/squid/passwd

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

htpasswd /etc/squid/passwd proxyclient

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

Ora per configurare l'autenticazione apri il file di configurazione.

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:

systemctl restart squid

Blocca i siti Web su Squid Proxy

Infine, creeremo un'ultima ACL che ci aiuterà a bloccare i siti Web indesiderati. Innanzitutto, crea il file che memorizzerà i siti nella lista nera.

touch /etc/squid/blacklisted_sites.acl

Puoi aggiungere alcuni domini che desideri bloccare. Per esempio:

.badsite1.com
.badsite2.com

Il punto successivo dice a Squid di bloccare tutti i riferimenti a quei siti inclusi www.badsite1, subsite.badsite1.com, ecc.

Ora apri il file di configurazione di Squid.

vim /etc/squid/squid.conf

Subito dopo le ACL delle porte aggiungi 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:

systemctl restart squid

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

Conclusione

In questo tutorial hai imparato come installare, proteggere e configurare da solo un server proxy HTTP Squid. Con le informazioni che hai appena ricevuto, ora puoi aggiungere alcuni filtri di base per il traffico in entrata e in uscita tramite Squid.

Se desideri fare uno sforzo in più, puoi persino configurare Squid per bloccare alcuni siti Web durante l'orario di lavoro per evitare distrazioni. Se hai domande o commenti, pubblicali nella sezione commenti qui sotto.