MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
Connessione, connesso, PC, mondo, earth, ADSL, network, LAN

Risparmiare banda e velocizzare l'accesso al web: guida a Squid su CentOS

a cura di Zane
20/05/2011 - articolo
Linux & Open Source - "Squid" è un software libero che consente di aggiungere le funzionalità di proxy al server incaricato di regolamentare l'accesso ad Internet. I vantaggi sono notevoli, sia in termini di velocità, sia per quanto riguarda il consumo di banda.

Una caratteristica del "super router" CentOS che lo rende infinitamente superiore ad un normale apparecchio domestico è la capacità di fungere da proxy, ovvero mantenere una cache locale dei contenuti richiesti dagli utenti.

In poche parole, funziona così:

I vantaggi sono evidenti. Gli utenti ottengono il materiale più comune in modo super-veloce, mentre la banda consumata può essere ridotta notevolmente, con ripercussioni positive in termini di costi e disponibilità del servizio.

Inoltre, diviene possibile applicare dei filtri, ovvero stabilire blocchi di vario tipo ai contenuti inadeguati, quali pornografia e via dicendo.

Come se non fosse sufficiente, la predisposizione del tutto prevede che si lavori solo sul server: non sarà quindi necessario modificare in alcun modo la configurazione dei client.

Requisiti

L'unico vero requisito è la presenza di un "super router" CentOS alla guida della vostra rete. Prima di proseguire, sinceratevi di averlo preparato così come dettagliato in "Creare un "super router" con un vecchio PC e CentOS".

È necessario svolgere la maggior parte delle operazioni seguenti con i privilegi di root: per la massima comodità, suggerisco di accedere direttamente al sistema con tale account. Se preferite utilizzare il vostro utente deprivilegiato, potrebbe bastare comunque lanciare tutti i comandi proposti anteponendo la stringa sudo .

Infine, è indispensabile che sul server sia disponibile un certificato digitale. Potete generarne facilmente uno seguendo le indicazioni riportate in "Come generare certificati digitali con OpenSSL". Nel prosieguo, daremo per scontato che sia presente un file in formato Privacy Enhanced Mail (PEM) con chiave crittografica incorporata nel percorso /root/mycert.pem.

Installare e configurare "il calamaro"

Il software che ci consente di raggiungere l'obbiettivo si chiama Squid (calamaro, in italiano). Come il resto del sistema operativo, anche Squid è rilasciato con licenza GPL (open source), ed è quindi liberamente utilizzabile anche in ambiti commerciali.

Per installarlo sul vostro super router CentOS, aprite un terminale (Applications -> Accessories -> Terminal) ed impartite yum install squid -y.

Ad operazione completata, lanciate gedit /etc/squid/squid.conf per aprire il relativo file di configurazione. Non lasciatevi spaventare: questo software è estremamente completo e garantisce una libertà davvero enorme all'amministratore. Per divenire operativi con una configurazione base, è comunque sufficiente modificare solo poche righe.

Per iniziare, cercate (pulsante Find nella barra degli strumenti) il testo acl our_networks. Cancellate ora il simbolo # dalla riga trovata e da quella subito successiva (http_access allow our_networks), quindi personalizzate la prima indicando l'identificativo della vostra rete. Se avete seguito alla lettera le indicazioni proposte nell'articolo "Creare un "super router" con un vecchio PC e CentOS", si leggerà acl our_networks src 192.168.0.0/24

MLINewShot_0492.jpg

(altre scelte comuni che potreste aver intrapreso prevedono di usare 192.168.1.0/24 oppure 10.0.0.0/24).

Cercate ora il testo TAG: visible_hostname ed aggiungete una nuova riga subito sotto a quella che recita # none. Scrivete qui visible_hostname  seguito da un nome a piacere per il vostro server. Si leggerà quindi qualcosa di simile a visible_hostname megaserver (limitatevi a numeri e lettere, evitando spazi, simboli di punteggiatura, accentate e altri caratteri "delicati")

MLINewShot_0493.jpg

Cercate quindi il testo http_port 3128: sulla stessa riga, aggiunge uno spazio e la parola transparent. Dopo la modifica, si leggerà http_port 3128 transparent

MLINewShot_0496.jpg

Notate ora il blocco di commenti che inizia con # TAG: https_port presente immediatamente sotto. Scorrete verso il basso fino a raggiungere la riga che recita soltanto # none. Sotto a questa, incollate quanto segue:

https_port 3129 transparent cert=/root/mycert.pem

(abbiate soltanto la premura di sostituire a /root/mycert.pem il percorso nel quale si trova il vostro certificato digitale)

MLINewShot_0497.jpg

Cercate ora cache_mgr, cancellate il simbolo # dalla riga trovata, accodatevi uno spazio ed il vostro indirizzo e-mail. Il risultato finale sarà simile a cache_mgr vostronome@gmail.com. Questa informazione sarà riportata su tutte le pagine "di servizio" mostrate ai client

MLINewShot_0500.jpg

Avviare ed auto-avviare Squid

Salvate il file di configurazione ed impartite service squid start nel terminale per avviare il relativo servizio. In caso tutto sia funzionante, verrà mostrato l'incoraggiante OK verde.

Impostate quindi il servizio di modo che si auto-avvii anche ad ogni accensione del server lanciando chkconfig squid on oppure spuntando la casella di controllo relativa a squid e cliccando quindi il pulsante Save in System -> Administration -> Services

MLINewShot_0501.jpg

Utilizzare Squid per gestire le richieste

È ora necessario fare in modo che il server "passi" a Squid le richieste di gestione dei contenuti.

Il modo più semplice di procedere è quello di modificare il file routing.sh presentato in "Creare un "super router" con un vecchio PC e CentOS". Lanciate quindi gedit /root/routing.sh (adeguando, naturalmente, il percorso a quello in cui avevate salvato il file).

Una volta aperto lo script, cercate la stringa SQUID per trovare il BLOCCO DI ISTRUZIONI CHE ABILITANO L'USO DI SQUID.

MLINewShot_0502.jpg

Rimuovete ora il simbolo # da tutti i comandi che fanno parte di questo gruppo di istruzioni, salvate il file e ricaricate lo script con sh /root/routing.sh.

Provare la connettività

A questo punto, potete provare ad accedere al web dai vari client. A meno di errori di configurazione, tutto dovrebbe funzionare regolarmente, con l'unica differenza che è Squid a gestire le richieste: se provate ad arrestare il servizio sul server (service squid stop) e a ricaricare una pagina su un client, dovreste ricevere un errore di connettività assente.

Per tenere sott'occhio in tempo reale le richieste gestite da Squid, lanciate sul server il comando tail -f /var/log/squid/access.log e provate ad aprire una pagina qualsiasi sui client

MLINewShot_0503.jpg

Per uscire, premete Ctrl+C sulla tastiera.

Un problema chiamato "HTTPS"

A complicarci un po' la vita ci pensano le connessioni HTTP "sicure" (HTTPS), ovvero quelle cifrate tramite tecnologia SSL.

Con la configurazione ottenuta fin qui, tutte le richieste a pagine quali https://google.com (notate la s finale nel nome del protocollo) mostreranno un avviso di sicurezza nel browser dell'utente, il quale sarà chiamato a confermare una o più finestre di dialogo prima di poter procedere

MLINewShot_0505.jpg

Purtroppo, al momento non v'è modo di risolvere questo inconveniente mantenendo l'impostazione agile e centralizzata vista fino a qui.

In caso questa limitazione risultasse inaccettabile, l'alternativa è quella di consentire all'utenza di accedere alle pagine crittografate senza passare per Squid: per farlo, inserire il carattere # all'inizio delle seguenti righe nel file routing.sh (sono le ultime del blocco di istruzioni dedicate all'uso di Squid)

Notate però che, così facendo, perderete qualsiasi capacità di memorizzare in cache o di filtrare i contenuti richiesti via HTTPS.

Filtrare i contenuti

Arrivati a questo punto, state sfruttando la capacità di accelerare il web e ridurre l'impatto sulla banda.

Poterebbe però essere interessante anche filtrare i contenuti, impedendo, ad esempio, di visitare siti pornografici, oppure inadatti all'uso "da ufficio": ne abbiamo parlato più dettagliatamente in "Bloccare Facebook, YouTube, porno, malware ed altre risorse inadeguate con un server CentOS".

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati