Proxy Server.

Un proxy server è un programma che si interpone tra un client e un server inoltrando le richieste e le risposte dall'uno all'altro.

Il client si collega al proxy e gli invia le richieste, il proxy si collega al server e inoltra la richiesta del client, riceve la risposta e la inoltra al client. Per l'applicazione server, il client è il proxy server.

I proxy si possono dividere in proxy di applicazione e proxy a livello di circuito.

I proxy di applicazione lavorano a livello di applicazione e sono specifici per certi protocolli. Il proxy di applicazione più comune è il proxy server che gestisce l'accesso al Web.

I proxy a livello di circuito sono più flessibili perchè non sono specifici per un singolo protocollo, ma funzionano per qualsiasi servizio; si limitano ad effettuare un tunnel tra client e server. I proxy a livello di circuito sono anche semplici da implementare.

Il proxy può essere usato per:

connettività: permette a una rete privata di accedere all'esterno, o meglio a un client e un server che appartengono a due reti diverse di stabilire una connessione anche quando non è disponibile un instradamento diretto (routing) tra le reti; un computer con due interfacce, una verso la rete interna e una verso Internet, viene configurato in modo che faccia da proxy tra gli altri computer e Internet; si ha un unico computer connesso all'esterno, che però permette a tutti gli altri di accedere a Internet; è un modo per gestire gli accessi a Intemet dalle stazioni di una rete locale che non richiede la presenza di un router nella rete; di solito in questo caso il proxy viene usato anche come firewall;

caching: memorizza i risultati delle richieste in modo da migliorare le prestazioni; offre due vantaggi principali: l'accesso rapido alle risorse già accumulate nella cache e la riduzione del traffico nella rete che precede il proxy stesso;

controllo: può applicare regole per determinare quali richieste inoltrare o rifiutare e limitare l'ampiezza di banda usata dai client;

monitoraggio: permette di tenere traccia delle operazioni effettuate da una stazione, identificata dal suo indirizzo IP, o da un utente, identificato dall'account con cui si è autenticato (anche se ciò può creare problemi di privacy);


Nota: II proxy usato per offrire connettività ad Internet può richiedere obbligatoriamente l'autenticazione; in questo modo possono accedere ad Internet solo utenti autenticati ed è possibile registrare le operazioni compiute da ciascun utente.

Sicurezza: nasconde lo schema di indirizzi della rete interna e quindi rende più difficoltoso l'accesso agli intrusi; sulla rete locale si possono usare gli indirizzi presi dagli intervalli di indirizzi privati; le reti esterne possono vedere solo l'indirizzo IP del proxy; tutte le conversioni fra rete interna ed esterna vengono gestite dal proxy;

privacy: maschera gli indirizzi IP del client; come indirizzo del client viene visto solo l'indirizzo dei proxy.

Quando il proxy viene usato principalmente per migliorare le prestazioni di un segmento di rete con l'uso della cache il proxy può essere installato su qualsiasi computer, basta che sia accessibile dal segmento di rete che lo deve utilizzare e che a sua volta sia in grado di accedere all'esterno.

Se il proxy viene usato per offrire connettività, deve essere installato su un computer con almeno due interfacce, una connessa alla rete locale con indirizzi privati e una connessa alla rete esterna; in questo modo permette ai client della rete privata di avere accesso all'esterno attraverso il proxy stesso. L'accesso si limita ai protocolli gestiti dal proxy (usando un proxy di applicazione spesso si tratta solo di HTTP e FTP).

II proxy può ricoprire anche un ruolo di filtro e inoltro di pacchetti tra la rete privata e la rete esterna. Per usare un proxy si può configurare il client in modo che si colleghi al proxy, oppure configurare il NAT in modo da realizzare un servizio di proxy trasparente (facendo in modo che le connessioni vengano indirizzate automaticamente al proxy).

PROXY HTTP

L'utente usa normalmente il browser per visitare pagine Web su Internet; le richieste vengono effettuate tramite il server proxy, che riceve le risposte e le invia al browser interessato. Quando effettua una richiesta il server proxy memorizza le risorse ricevute in una cache per future richieste dello stesso o di altri client; questo permette di ridurre il traffico verso l'esterno migliorando le prestazioni (comunque non bisogna dimenticare che tutti i dati in ingresso vengono elaborati due volte, una dal proxy e una dal client e questo può rallentare le prestazioni). L'uso del server proxy permette anche di controllare le richieste che possono essere effettuate (per esempio a quali siti è consentito e a quali siti è vietato accedere.) e di tenere traccia delle operazioni effettuate, per esempio di tutte le pagine web visitate.