Che cos’è un proxy?

Un server proxy (dall’inglese Proxy, “sostituto”) è un’interfaccia di comunicazione in una rete, che comunica tra due sistemi. Il compito principale di un proxy è quello di accogliere le richieste del client al posto del server e di inoltrarle al computer di destinazione con il proprio indirizzo IP. In questo tipo di comunicazione non esiste alcuna connessione diretta tra mittente e destinatario. A volte il sistema richiedente e il computer di destinazione non sanno affatto di avere a che fare con un proxy. I server proxy possono svilupparsi in due direzioni diverse: un forward proxy e un reverse proxy. Il primo serve a proteggere una rete del client da interventi su Internet, mentre si parla di reverse proxy, nel caso in cui un sistema di destinazione come un web server debba essere protetto da un server proxy già attivato.

  • Forward proxy (protezione del client): se un proxy server viene installato come interfaccia tra una rete privata (LAN) e Internet, si possono nascondere i dispositivi locali in maniera efficace da interventi esterni nella rete pubblica. Le richieste in una LAN vengono accolte dal proxy e inoltrate con il suo indirizzo IP come mittente al computer destinatario su Internet. I pacchetti di risposta della rete non vengono indirizzati al client nella LAN, ma attraversano il server proxy prima di essere inoltrati alla destinazione effettiva. Generalmente il server proxy funziona come istanza di controllo. I sistemi di sicurezza corrispondenti non devono essere installati su ogni client della rete, ma si possono realizzare grazie ad un numero chiaro di proxy server.

  • Reverse proxy (protezione del server): anche i web server si possono proteggere ulteriormente, attivando un proxy in caso di accessi dalla rete pubblica.  Così i client non accedono direttamente al computer di destinazione, invece le richieste vengono accolte da un server proxy, verificate secondo le regole di sicurezza impostate e se risultano sicure, vengono inoltrate al server, che opera in background.

Applicazioni di un proxy server

Ci sono diversi motivi per implementare un server proxy. Essendo un intermediario tra due partner di comunicazione, consente uno scambio di dati tra due sistemi, nel caso in cui una connessione non sia possibile per via di indirizzi IP incompatibili, ad esempio perché un componente utilizza un indirizzo IP IPv4 e l’altro usa il nuovo standard IPv6. I dati trasmessi tramite proxy si possono anche filtrare, salvare nella cache e ridistribuire su diversi sistemi di destinazione tramite load balancing. Inoltre, un proxy è un componente principale del firewall, che protegge i sistemi dagli attacchi provenienti dalla rete.

  • Caching: una funzione standard di un proxy server è il caching. Per poter rispondere velocemente alle ricorrenti richieste di una rete locale, un server proxy configurato correttamente salva temporaneamente nella cache una copia dei dati, che riceve dai server in Internet. In questo modo, i contenuti web richiesti spesso non devono essere caricati ogni volta, ma possono essere consegnati direttamente al client, risparmiando tempo e banda larga.

  • Filtraggio: se un server proxy viene installato come interfaccia tra due sistemi, può essere utilizzato come filtro per il traffico dati per bloccare specifici contenuti web per i client o respingere automaticamente richieste server sospette.

  • Controllo della banda larga e bilanciamento del carico: se viene utilizzato un server proxy per il controllo della banda larga, viene assegnato ai client di una rete a seconda dello sfruttamento ipotizzato delle risorse a disposizione. Così ci si assicura che le singole applicazioni non usino completamente la banda larga. Inoltre, un proxy server, in qualità di interfaccia principale, consente di distribuire su diversi sistemi le richieste dei client che richiedono molte risorse o le risposte server, così da poter distribuire il carico equamente all’interno di una rete di computer.

  • Anonimizzazione: visto che il server proxy impedisce la connessione diretta tra mittente e destinatario, è possibile nascondere l’indirizzo IP di un client dietro quello dell’interfaccia di comunicazione. Ciò consente un certo grado di anonimità perché gli utenti mostrano all’esterno l’indirizzo IP e il luogo del proxy. Nei paesi con una forte censura o con un accesso limitato a contenuti protetti da copyright, per aggirare il blocco geografico si ricorre ai proxy server.

Tipi di server proxy

Ci sono diversi tipi di server proxy, che spesso non si possono distinguere completamente gli uni dagli altri. Si riferiscono a realizzazioni tecniche dei componenti di rete così come a differenze basate sulle applicazioni. Comunemente si opera una distinzione in circuit-level e application-level così come in server proxy specifici e generici.

Application-level e circuit-level

Alcuni server proxy vengono realizzati tecnicamente, in modo da essere in grado di analizzare i pacchetti, che gli vengono consegnati per essere inoltrati. Invece altre realizzazioni proxy non hanno accesso ai pacchetti dati. Le funzioni di filtraggio si possono in questo caso realizzare sulla base dell’IP del mittente e della porta coinvolta.

  • Application-level proxy: un application-level proxy si colloca nel livello di applicazione (Livello 7) del modello di riferimento OSI. Questo tipo di server proxy dispone di funzioni per analizzare i pacchetti e, a seconda delle regole preimpostate, per bloccarle, cambiarle e inoltrarle. Un application-level proxy viene anche chiamato filtro di applicazione.

  • Circuit-level proxy: il circuit-level proxy lavora sul livello di trasporto (livello 4) del modello di riferimento OSI e non è perciò in grado di analizzare i pacchetti. Questo tipo di proxy viene generalmente usato come filtro del firewall e consente di filtrare i pacchetti tramite porte ed indirizzi IP. Diversamente dall’application-level proxy, il circuit-level proxy non può influenzare la comunicazione, ma il filtraggio funziona invece in base al principio “tutto o niente”, cioè i pacchetti vengono trasmessi o bloccati.

Server proxy specifici e generici

Un’altra classificazione del proxy si basa sui concetti di “specifico” e “generico”, a seconda che un server proxy sia responsabile solo per un protocollo di comunicazione (proxy specifico) o funzioni come intermediario, in veste di interfaccia di comunicazione, per tutti i protocolli di comunicazione (proxy generico).

  • Proxy specifico: un server proxy specifico viene configurato per un protocollo di comunicazione specifico, come suggerisce il nome. Generalmente vengono perciò utilizzati parallelamente diversi server proxy specifici per diversi protocolli come quelli HTTP, FTP o SMTP.
  • Proxy generico: al contrario di un proxy specifico, un server proxy generico non è specializzato e si applica per più protocolli di comunicazione.

In pratica un application-level proxy viene realizzato il più delle volte come server proxy specifico. I server proxy generici invece vengono utilizzati come circuit-level proxy. Questi concetti vengono perciò utilizzati come sinonimi.