Linux tips and tricks/Transparent proxy: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nimrod (discussione | contributi)
Nimrod (discussione | contributi)
mNessun oggetto della modifica
Riga 9:
Per realizzare obiettivi simili è necessario dirottare tutte le richieste HTTP in uscita verso un software che, in base a determinati criteri, stabilisce se il sito destinazione può essere raggiunto o se la richiesta debba essere bloccata. Naturalmente questo dirottamento ha senso solo se è coercitivo: se l'utente di cui si vuole limitare l'attività di navigazione in questo modo dispone di credenziali amministrative, potrebbe disattivare senza problemi il sistema di filtraggio sulla sua postazione.
 
In questo wikibook sono illustrate le nozioni teoriche di base e due diverse soluzioni concrete per realizzare facilmente simili obiettivi.
Gli ingredienti che permettono di realizzare tutto questo sono, in definitiva:
 
== Nozioni preliminari ==
 
Gli ingredienti che permettono di realizzare tuttogli questoobiettivi sopra elencati sono, in definitiva:
 
* un insieme di blacklist che elenchino i siti e le URL da bloccare o meno, ma anche frasi che, trovate in una pagina, facciano sì che essa sia bloccata
Line 17 ⟶ 21:
* il supporto Netfilter nel kernel, necessario alla utility iptables, almeno per quanto riguarda una serie di funzionalità
 
Nelle sezioni seguenti vengono illustrati più dettagliatamente tutti questi elementi.
Il sistema può sembrare complesso, ma tutto si riduce a qualche configurazione. Nel seguito, dopo alcune nozioni preliminari, sarà illustrata prima una soluzione basata su squid e squidGuard, rispettivamente come proxy e come filtratore, e poi una soluzione leggermente diversa, basata su tinyproxy e DansGuardian, che in sostanza produce lo stesso risultato.
 
== Nozioni preliminari ==
 
=== Le blacklist ===
Line 55 ⟶ 57:
Bloccare il dominio ''amazon.com'' sarebbe assurdo, vista la sua importanza. Ma siccome Amazon consente ai suoi utenti iscritti di pubblicare materiale pornografico, con un elenco di URL è possibile bloccare l'accesso a questo materiale senza bloccare l'accesso ad Amazon.
 
Le dimensioni notevoli delle liste obbligano i software di rewriting a gestirle in forma indicizzata. I due software discussi nel seguito utilizzandoutilizzano il formato DB (cioè il Berkeley Database).
 
Naturalmente, se le blacklist vengono modificate per sbloccare dei siti o per bloccarne di nuovi, il comando va eseguito nuovamente. Ma questo di solito si fa solo quando si installa una versione aggiornata delle blacklist.
 
Un tipo di blacklist alquanto diverso è presente solo in DansGuardian: si tratta dicomprende liste di frasi che, se presenti in una pagina, possono determinare il blocco della stessa. Questo tipo di liste può essere di carattere dinamico, nel senso che DansGuardianl'url rewriter può essere istruito a servirsi di fonti esterne per dare un punteggio ad una pagina in base alle frasi che contiene. Ovviamente servizi di questo genere possono rallentare la navigazione.
 
Un ulteriore tipo di liste offerte solo da DansGuardian sono le greylist, che permettono di bloccare solo alcune parti di un sito o di una URL, anche se in maniera piuttosto complicata.
 
Infine, DansGuardiansi permette dipossono definire liste di URL o domini in base a delle espressioni regolari, offrendo così uno strumento molto fine per il blocco dinamico di certe pagine.
 
Naturalmente non tutti i software di url rewriting offrono l'intero ventaglio di potenzialità, ma a seconda di quello che si vuole fare ci si può limitare a funzioni molto elementari, o ricorrere a soluzioni più complesse.
 
=== L'url rewriter ===
Un ulteriore tipo di liste offerte solo da DansGuardian sono le greylist, che permettono di bloccare solo alcune parti di un sito o di una URL, anche se in maniera piuttosto complicata.
 
Questo software si occupa di ''riscrivere'' una URL, sostituendola con un'altra opportuna. Il risultato è in pratica il ''dirottamento'' di certe richieste verso una o più pagine predefinite. Tipicamente, l'utente viene deviato su una pagina recante un messaggio del tipo ''spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda'', o qualcosa del genere.
Infine, DansGuardian permette di definire liste di URL o domini in base a delle espressioni regolari, offrendo così uno strumento molto fine per il blocco dinamico di certe pagine.
 
IlLa filtraggioriscrittura delle richieste HTTP può avvenire in due modi:
Considerate tutte queste funzionalità in più di DansGuardian rispetto a squidGuard, in certe situazioni si può preferire il primo, ma tutto dipende da quello che si vuole fare.
 
* ill'url software filtratorerewriter è invocato come sottoprocesso dal proxy stesso allo scopo di ''riscrivere'' la URL: il proxy si limiterà a puntare a questa nuova URL, senza curarsi di altro
=== Il software di filtraggio ===
* ill'url software filtratorerewriter riceve direttamente la richiesta dallo stack TCP/IP (tipicamente grazie ad una regola Netfilter), la riscrive se lo ritiene necessario, e in ogni caso passa la URL originale o quella riscritta al proxy perché sia inoltrata all'esterno
 
In ogni caso il proxy prende per buona la URL ricevuta dall'url rewriter, sia che il proxy stesso abbia invocato l'url rewriter come sottoprocesso, sia che il proxy riceva direttamente via rete dall'url rewriter la URL riscritta.
Il filtraggio delle richieste HTTP può avvenire in due modi:
 
Un esempio relativo al primo caso è ''squidGuard'': esso non è un servizio di rete, bensì un eseguibile che, tipicamente, viene invocato dal proxy squid col quale si integra molto bene.
* il software filtratore è invocato come sottoprocesso dal proxy stesso allo scopo di ''riscrivere'' la URL: il proxy si limiterà a puntare a questa nuova URL, senza curarsi di altro
* il software filtratore riceve direttamente la richiesta dallo stack TCP/IP (tipicamente grazie ad una regola Netfilter), la riscrive se lo ritiene necessario, e in ogni caso passa la URL originale o quella riscritta al proxy perché sia inoltrata all'esterno
 
Un esempio relativo al secondo caso è invece ''DansGuardian'': esso è un servizio di rete che si frappone in sostanza fra il browser e il proxy.
In entrambi i casi, il filtratore si comporta come ''url rewriter'' nel senso che, in base alla sua configurazione, sostituisce la URL che ha ricevuto dal proxy con un'altra, tipicamente la URL di una pagina recante un messaggio del tipo ''spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda'', o qualcosa del genere. Il proxy prende per buona questa URL ricevuta dal filtratore, sia che sia il proxy stesso a invocare il filtratore come sottoprocesso, sia che riceva dal filtratore una URL riscritta direttamente via rete.
 
=== Il software proxy ===
 
I proxy sono una categoria di software molto ampia, per cui in questo contesto saranno necessarie alcune grossolane semplificazioni per non divagare troppo. Basterà pensare al proxy come a uno strato software che si interpone, in modo appunto trasparente, fra il browser e la rete. Ma non è un semplice passa-carte, perché prima di inoltrare nella rete le richieste che ha ricevuto dal browser, può decidere di fare diverse cose con queste richieste. Potrebbe essere egli stesso a riscrivere le URL, ma si tratta di un compito estremamente particolare che richiede un software specifico, e quindi i proxy sono di solito una parte di un'architettura in cui un'altra componente si occupa del rewriting.