UN Ingegnere certificato dalla Linux Foundationè un professionista esperto che ha l'esperienza per installare, gestire e risolvere i problemi dei servizi di rete in Linux sistemi, ed è responsabile della progettazione, implementazione e manutenzione continua dell'architettura a livello di sistema.
Presentazione del programma di certificazione Linux Foundation.
Nel Parte 1 di questa serie, abbiamo mostrato come installare squid, un server di cache proxy per client web. Si prega di fare riferimento a quel post (link fornito di seguito) prima di procedere se non hai ancora installato squid sul tuo sistema.
In questo articolo, ti mostreremo come configurare il server proxy Squid per concedere o limitare l'accesso a Internet e come configurare un client http, o browser Web, per utilizzare quel server proxy.
Sistema operativo: Debian Wheezy 7.5. Indirizzo IP: 192.168.0.15. Nome host: dev2.gabrielcanepa.com.ar.
Sistema operativo: Ubuntu 12.04. Indirizzo IP: 192.168.0.104 Nome host: ubuntuOS.gabrielcanepa.com.ar.
Sistema operativo: CentOS-7.0-1406. Indirizzo IP: 192.168.0.17 Nome host: dev1.gabrielcanepa.com.ar.
Ricordiamo che, in parole povere, un server proxy web è un intermediario tra uno (o più) computer client e una determinata risorsa di rete, la più comune è l'accesso a Internet. In altre parole, il server proxy è connesso da un lato direttamente a Internet (o a un router connesso) a Internet) e dall'altro a una rete di computer client che accederanno al World Wide Web tramite esso.
Forse ti starai chiedendo, perché dovrei voler aggiungere un altro software alla mia infrastruttura di rete?
1. Squid archivia i file delle richieste precedenti per velocizzare i trasferimenti futuri. Ad esempio, supponiamo cliente1 download CentOS-7.0-1406-x86_64-DVD.iso da Internet. quando cliente2 richiede l'accesso allo stesso file, squid può trasferire il file dalla sua cache invece di scaricarlo nuovamente da Internet. Come puoi immaginare, puoi utilizzare questa funzione per accelerare i trasferimenti di dati in una rete di computer che richiedono aggiornamenti frequenti di qualche tipo.
2. ACL (Elenchi di controllo degli accessi) ci consentono di limitare l'accesso ai siti Web e/o monitorare l'accesso in base all'utente. Puoi limitare l'accesso in base al giorno della settimana, all'ora del giorno o al dominio, ad esempio.
3. Bypassare i filtri web è reso possibile attraverso l'utilizzo di un proxy web a cui vengono fatte le richieste e che restituisce il contenuto richiesto a un client, invece che il client lo richieda direttamente a Internet.
Ad esempio, supponi di aver effettuato l'accesso cliente1 e vuoi accedere www.facebook.com tramite il router della tua azienda. Poiché il sito potrebbe essere bloccato dalle politiche della tua azienda, puoi invece connetterti a un server proxy web e fargli richiedere l'accesso a www.facebook.com. Il contenuto remoto viene quindi restituito nuovamente tramite il server proxy Web, ignorando i criteri di blocco del router della tua azienda.
Lo schema di controllo degli accessi del server proxy web Squid è costituito da due diversi componenti:
Il file di configurazione principale di Squid è /etc/squid/squid.conf, che è ~5000 righe dal momento che include sia le direttive di configurazione che la documentazione. Per questo motivo, creeremo un nuovo calamaro.conf file con solo le righe che includono le direttive di configurazione per nostra comodità, tralasciando le righe vuote o commentate. Per fare ciò, utilizzeremo i seguenti comandi.
# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp.
E poi,
# grep -Eiv '(^#|^$)' /etc/squid/squid.conf.bkp OPPURE # grep -ve ^# -ve ^$ /etc/squid/squid.conf.bkp > /etc/squid/ calamaro.conf.
Ora, apri il nuovo creato calamaro.conf file e cerca (o aggiungi) quanto segue ACL elementi e liste di accesso.
acl localhost src 127.0.0.1/32. acl localnet src 192.168.0.0/24.
Le due righe sopra rappresentano un esempio di base dell'uso di ACL elementi.
Le due righe sottostanti sono lista di accesso regole e rappresentano un'esplicita attuazione del ACL direttive citate in precedenza. In poche parole, indicano che accesso http va accolta se la richiesta proviene dalla rete locale (rete locale), o da localhost. In particolare, qual è la rete locale consentita o gli indirizzi dell'host locale? La risposta è: quelli specificati nelle direttive localhost e localnet.
http_access consentire localnet. http_access consentire localhost.
A questo punto puoi ricominciare Calamaro per applicare eventuali modifiche in sospeso.
# service squid restart [distribuzioni Upstart / basate su sysvinit] # systemctl riavvia squid.service [distribuzioni basate su systemd]
e quindi configurare un browser client nella rete locale (192.168.0.104 nel nostro caso) per accedere a Internet tramite il proxy come segue.
1. Vai al Modificare menu e scegli il Preferenze opzione.
2. Clicca su Avanzate, quindi su Rete scheda, e infine su Impostazioni…
3. Dai un'occhiata Configurazione manuale del proxy e inserisci il indirizzo IP del server proxy e il porta dove è in ascolto di connessioni.
Nota Che per impostazione predefinita, Squid ascolta sulla porta 3128, ma puoi ignorare questo comportamento modificando il pulsante lista di accesso regola che inizia con http_port (di default si legge http_port 3128).
4. Clic ok per applicare le modifiche e sei a posto.
Ora puoi verificare che il tuo client di rete locale stia accedendo a Internet tramite il tuo proxy come segue.
1. Nel tuo client, apri un terminale e digita,
# indirizzo IP mostra eth0 | grep -Ei '(inet.*eth0)'
Quel comando visualizzerà l'attuale indirizzo IP del tuo cliente (192.168.0.104 nell'immagine seguente).
2. Nel tuo client, usa un browser web per aprire un determinato sito web (www.tecmint.com in questo caso).
3. Nel server, esegui.
# tail -f /var/log/squid/access.log.
e avrai una visione in tempo reale delle richieste servite attraverso Calamaro.
Supponiamo ora di voler negare esplicitamente l'accesso a quel particolare indirizzo IP del client, pur mantenendo l'accesso per il resto della rete locale.
1. Definisci un nuovo ACL direttiva come segue (l'ho chiamata ubuntuOS ma puoi chiamarlo come vuoi).
acl ubuntuOS src 192.168.0.104.
2. Aggiungi il ACL direttiva al accesso alla rete locale lista che è già in atto, ma preceduta da un punto esclamativo. Questo significa, "Consenti l'accesso a Internet ai client che corrispondono alla direttiva ACL localnet tranne a quella che corrisponde alla direttiva ubuntuOS”.
http_access consentire localnet !ubuntuOS.
3. Ora dobbiamo riavviare Squid per applicare le modifiche. Quindi, se proviamo a navigare in qualsiasi sito, scopriremo che l'accesso è negato ora.
Per limitare l'accesso a Squid per dominio utilizzeremo il dstdomain parola chiave in a ACL direttiva, come segue.
acl vietato dstdomain "/etc/squid/forbidden_domains"
In cui si domini_proibiti è un file di testo normale che contiene i domini a cui desideriamo negare l'accesso.
Infine, dobbiamo concedere l'accesso a Squid per le richieste che non corrispondono alla direttiva di cui sopra.
http_access allow localnet !proibito.
O forse vorremo solo consentire l'accesso a quei siti durante una certa ora del giorno (dalle 10:00 alle 11:00) solo su lunedì (M), mercoledì (M), e venerdì (ven).
acl alcuni giorni ora MWF 10:00-11:00. http_access consenti vietato alcuniGiorni. http_access negare vietato.
In caso contrario, l'accesso a tali domini verrà bloccato.
Squid supporta diversi meccanismi di autenticazione (Basic, NTLM, Digest, SPNEGO e Oauth) e helper (database SQL, LDAP, NIS, NCSA, solo per citarne alcuni). In questo tutorial useremo l'autenticazione di base con NCSA.
Aggiungi le seguenti righe al tuo /etc/squid/squid.conf file.
auth_param programma di base /usr/lib/squid/ncsa_auth /etc/squid/passwd. auth_param credenziali di basettl 30 minuti. auth_param di base con distinzione tra maiuscole e minuscole attivo. auth_param dominio di base Server web di cache proxy Squid per la serie LFCE di Tecmint. acl ncsa proxy_auth RICHIESTO. http_access consenti ncsa.
Nota: Nel CentOS 7, il plugin NCSA per i calamari può essere trovato in /usr/lib64/squid/basic_nsca_auth, quindi cambia di conseguenza nella riga sopra.
Alcuni chiarimenti:
Esegui il seguente comando per creare il file e aggiungere le credenziali per l'utente gacanepa (ometti il -C flag se il file esiste già).
# htpasswd -c /etc/squid/passwd gacanepa.
Apri un browser web nel computer client e prova a navigare in un determinato sito.
Se l'autenticazione riesce, viene concesso l'accesso alla risorsa richiesta. In caso contrario, l'accesso verrà negato.
Una delle caratteristiche distintive di Squid è la possibilità di memorizzare nella cache le risorse richieste dal web su disco per velocizzare le richieste future di quegli oggetti da parte dello stesso client o di altri.
Aggiungi le seguenti direttive nel tuo calamaro.conf file.
cache_dir ufs /var/cache/squid 1000 16 256. dimensione_massima_oggetto 100 MB. refresh_pattern .*\.(mp4|iso) 2880.
Alcuni chiarimenti sulle suddette direttive.
Il primo e il secondo 2880 sono rispettivamente i limiti inferiore e superiore per quanto tempo gli oggetti senza una scadenza esplicita saranno considerati recenti, e quindi serviti dalla cache, mentre 0% è la percentuale dell'età degli oggetti (tempo dall'ultima modifica) per cui ogni oggetto senza scadenza esplicita sarà considerato recente.
Primo cliente (IP 192.168.0.104) scarica un 71 MB .mp4 file in 2 minuti e 52 secondi.
Secondo cliente (IP 192.168.0.17) scarica lo stesso file in 1,4 secondi!
Questo perché il file è stato servito dal Cache di calamari (indicato da TCP_HIT/200) nel secondo caso, a differenza del primo grado, quando è stato scaricato direttamente da Internet (rappresentato da TCP_MISS/200).
Il COLPIRE e PERDERE parole chiave, insieme a 200 http codice di risposta, indica che il file è stato servito correttamente entrambe le volte, ma la cache era rispettivamente HIT e Missed. Quando una richiesta non può essere servita dalla cache per qualche motivo, Squid tenta di servirla da Internet.
In questo articolo abbiamo discusso come impostare un Proxy di cache web Squid. È possibile utilizzare il server proxy per filtrare i contenuti utilizzando un criterio scelto e anche per ridurre la latenza (poiché richieste in arrivo identiche sono serviti dalla cache, che è più vicina al client rispetto al server web che sta effettivamente servendo il contenuto, risultando più veloce trasferimenti di dati) e anche il traffico di rete (riducendo la quantità di larghezza di banda utilizzata, che ti fa risparmiare denaro se stai pagando per traffico).
Si consiglia di fare riferimento a Sito web di calamari per ulteriore documentazione (assicurati di controllare anche il wiki), ma non esitare a contattarci se hai domande o commenti. Saremo più che felici di sentirti!