Un proxy è un programma che si interpone tra un client ed un server inoltrando le richieste e le risposte dall’uno all’altro. Il funzionamento è semplice: il client che esegue una richiesta si collega al proxy invece che al server e gli invia delle richieste; il proxy si collega al server e inoltra le richieste del client, riceve le risposte e le inoltra al client.
In ambito aziendale i proxy possono essere sfruttati in vari modi: possono filtrare i contenuti che transitano sulla rete dei dipendenti, possono bloccare determinate connessioni, possono analizzare le informazioni che provengono dalla rete per, ad esempio, mettere in pratica soluzioni di Data loss prevention (DLP). Ecco perché dedicheremo ai proxy due articoli in modo da introdurre il lettore ad alcune soluzioni open source più utilizzate.
Possiamo inizialmente suddividere tali programmi in proxy di livello applicativo, che si occupano di inoltrare solamente i dati inerenti un particolare protocollo (HTTP, FTP, …) e proxy di tipo SOCKS, che inoltrano le connessioni TCP/UDP (le quali, ricordo, formano un "involucro" per i protocolli superiori) in toto, senza entrare nel merito appunto dei protocolli di livello più alto al loro interno trasportati. Questi ultimi tipi di proxy risultano applicabili quindi a più protocolli applicativi anziché esser costruiti specificatamente per uno solo tra essi, ma risultano poco malleabili e poco adattabili alle caratteristiche peculiari degli stessi. Per tali motivazioni vengono spesso "relegati", certamente con ottimi risultati, alla protezione della privacy degli utenti.
Nel presente articolo tratteremo i proxy di livello applicativo HTTP, cioè atti alla navigazione Web. In tale tipo di proxy, il client viene ad identificarsi con il browser ed il server con il web server. Tutti i browser della LAN dovranno essere configurati per uscire sull’Internet per mezzo del proxy – tramite impostazioni dello stesso browser, del sistema operativo, tramite topologie di rete ad hoc oppure anche tramite l’inusitato protocollo WPAD. Delle due tipologie possibili di proxy appplicativi HTTP ci occuperemo dei forward proxy, che, contrapponendosi ai reverse proxy, fungono da "gateway" per la navigazione Web.
Un (forward) server proxy HTTP può essere impiegato principalmente per i seguenti scopi:
Come già accennato, l’intento del presente articolo è quello di presentare alcuni tra i più utilizzati programmi di proxying HTTP, open source, con particolare occhio rivolto alla compatibilità per sistemi Unix-derivati, che fanno della stabilità, dell’alta configurabilità e del costo nullo le loro eccellenti – e vincenti – bandiere di guerra. Cominciamo con Apache.