I reverse proxy vengono utilizzati come componente di rete intermediaria per proteggere i server dei servizi online pubblici. A tal fine, ricevono le richieste del server e poi le inoltrano agli utenti.

Come funziona un reverse proxy?

Fondamentalmente, un proxy server agisce come un’interfaccia di comunicazione nella rete, ricevendo richieste e inoltrandole a un server di destinazione. Un reverse proxy è sempre posizionato tra i client (ad esempio, browser web) e i server back end (ad esempio, server web, server database o applicazioni). Quando viene effettuata una richiesta da parte di un client, il reverse proxy interviene decidendo se e a quale componente del server interno inoltrare la richiesta. I seguenti quattro passaggi fondamentali caratterizzano questo processo:

  1. Ricezione della richiesta del client: il reverse proxy riceve richieste HTTP, HTTPS o anche altre richieste come FTP o WebSocket.
  2. Analisi della richiesta: il proxy verifica se la richiesta è valida, se presenta rischi per la sicurezza e se esiste una versione memorizzata nella cache.
  3. Inoltro al server appropriato: se la richiesta non può essere risolta dalla cache, il reverse proxy invia la richiesta a uno dei server interni.
  4. Risposta al client: il reverse proxy riceve la risposta dal server back end, la elabora ulteriormente se necessario (ad esempio, crittografia) e la invia al client richiedente.
Immagine: Rappresentazione schematica di un reverse proxy
Il reverse proxy e il web server si trovano in una rete interna comune
N.B.

I reverse proxy vengono generalmente protetti da un sistema firewall e installati in una rete privata o in una zona demilitarizzata (DMZ) situata a monte.

Qual è la differenza rispetto ai forward proxy?

Mentre i reverse proxy, come già menzionato, sono posizionati tra i client e i server back end, i forward proxy si trovano tra i client e internet. Un forward proxy canalizza tutte le richieste dei client e le inoltra con il proprio indirizzo mittente ai server di destinazione su internet. Anche le risposte dei server raggiungono prima il proxy, prima di essere distribuite ai dispositivi client corrispondenti. Questi ultimi rimangono quindi anonimi, a meno che non si tratti di un proxy trasparente. Mentre un forward proxy protegge i client nella rete interna dalle minacce esterne, un reverse proxy protegge i server in una rete pubblica e ne ottimizza l’accessibilità.

Mentre i reverse proxy offrono chiari vantaggi per le strutture server grazie a funzionalità come il bilanciamento del carico e diverse funzioni di sicurezza, i punti di forza dei forward proxy risiedono nella protezione dei client.

Immagine: Rappresentazione schematica di un forward proxy
Diversamente dal reverse proxy, il forward proxy si trova in una rete comune e interna con i client.
N.B.

I forward proxy vengono spesso utilizzati per controllare l’accesso a internet nelle reti aziendali. Altri ambiti di applicazione sono l’anonimizzazione nei servizi VPN e l’elusione delle restrizioni geografiche.

Reverse proxy: ambiti di applicazione

Il raggruppamento delle richieste dei client consente di controllare in modo dettagliato il traffico in entrata attraverso i reverse proxy. Tra le altre cose, è possibile mettere a disposizione più server sotto lo stesso URL, distribuire le richieste uniformemente su vari server e velocizzare il recupero dei dati tramite caching. Di seguito sono elencati i principali campi di applicazione di un server reverse proxy.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

Load balancing

Un reverse proxy posizionato a monte permette di collegare un URL con diversi server nella rete privata. Questo offre la possibilità di distribuire le richieste in entrata su più server. Un tale load balancing previene il sovraccarico di singoli sistemi e compensa in caso di guasti. Se un server non è raggiungibile a causa di errori hardware o software, il modulo di load balancing del proxy ridistribuisce le richieste in entrata sui server rimanenti. La disponibilità dei servizi server viene così garantita anche in caso di guasti.

Caching

Per accelerare la velocità dei servizi server, i reverse proxy possono offrire una funzione che consente di memorizzare nella cache i contenuti richiesti di frequente. Questo meccanismo permette al server proxy di rispondere parzialmente o completamente a richieste ripetitive. I contenuti statici come immagini o fogli di stile CSS vengono mantenuti nella cache del proxy. In questo modo, non è necessario richiamare dati dal server back end o ne vengono recuperati significativamente meno, accelerando notevolmente il tasso di accesso ai servizi web. Tuttavia, poiché per i contenuti che cambiano rapidamente non sempre si può garantire che il cache del proxy contenga la versione attuale, esiste il rischio che i client richiedenti ricevano informazioni obsolete.

Misure di protezione e sicurezza

Un reverse proxy funge da sorta di scudo protettivo per i server back end e può offrire diverse funzioni di sicurezza in questo ruolo:

  • Protezione DDoS: i reverse proxy possono rilevare e bloccare traffico sospetto o insolitamente elevato nell’ambito di attacchi DDoS prima che raggiunga i server back end.
  • Firewall per applicazioni web (WAF): molti reverse proxy includono una WAF in grado di filtrare richieste dannose come SQL-Injection o Cross-Site Scripting (XSS).
  • Whitelist e blacklist IP: il proxy può, se necessario, bloccare determinati indirizzi IP o consentire connessioni solo da specifiche reti.
  • Offuscamento dei server back end: il proxy impedisce che gli indirizzi IP interni dei server back end siano visibili pubblicamente, rendendo più difficili gli attacchi.

Cifratura

Per alleggerire i server back end, è possibile utilizzare un reverse proxy anche per la cifratura. In questo caso, decifra la richiesta SSL/TLS del client (ad esempio, una connessione HTTPS), inoltra i dati decifrati ai server back end e invia nuovamente la risposta al client cifrata. La comunicazione interna può avvenire sia in modo non cifrato che cifrato.

Anonimizzazione

Un reverse proxy può essere utilizzato anche per l’anonimizzazione del traffico, mascherando o sostituendo gli indirizzi IP originali dei client con quelli propri. In questo modo si protegge la privacy dei client, poiché gli indirizzi IP reali non appaiono nei log. Inoltre, è possibile il Geo-load balancing: le richieste possono essere indirizzate al server più vicino in base alla posizione geografica dell’utente.

Compressione

Con il software appropriato, un reverse proxy può essere utilizzato per la compressione dei dati in entrata e in uscita. Un programma popolare per la compressione delle pagine web è gzip, spesso usato in combinazione con i server web Apache o NGINX.

Hai trovato questo articolo utile?
Vai al menu principale