I reverse proxy vengono uti­liz­za­ti come com­po­nen­te di rete in­ter­me­dia­ria per pro­teg­ge­re 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?

Fon­da­men­tal­men­te, un proxy server agisce come un’in­ter­fac­cia di co­mu­ni­ca­zio­ne nella rete, ricevendo richieste e inol­tran­do­le a un server di de­sti­na­zio­ne. Un reverse proxy è sempre po­si­zio­na­to tra i client (ad esempio, browser web) e i server back end (ad esempio, server web, server database o ap­pli­ca­zio­ni). Quando viene ef­fet­tua­ta una richiesta da parte di un client, il reverse proxy in­ter­vie­ne decidendo se e a quale com­po­nen­te del server interno inoltrare la richiesta. I seguenti quattro passaggi fon­da­men­ta­li ca­rat­te­riz­za­no 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 me­mo­riz­za­ta nella cache.
  3. Inoltro al server ap­pro­pria­to: 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 ul­te­rior­men­te se ne­ces­sa­rio (ad esempio, crit­to­gra­fia) e la invia al client ri­chie­den­te.
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 ge­ne­ral­men­te protetti da un sistema firewall e in­stal­la­ti in una rete privata o in una zona de­mi­li­ta­riz­za­ta (DMZ) situata a monte.

Qual è la dif­fe­ren­za rispetto ai forward proxy?

Mentre i reverse proxy, come già men­zio­na­to, sono po­si­zio­na­ti 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 de­sti­na­zio­ne su internet. Anche le risposte dei server rag­giun­go­no prima il proxy, prima di essere di­stri­bui­te ai di­spo­si­ti­vi client cor­ri­spon­den­ti. Questi ultimi rimangono quindi anonimi, a meno che non si tratti di un proxy tra­spa­ren­te. 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’ac­ces­si­bi­li­tà.

Mentre i reverse proxy offrono chiari vantaggi per le strutture server grazie a fun­zio­na­li­tà come il bi­lan­cia­men­to del carico e diverse funzioni di sicurezza, i punti di forza dei forward proxy risiedono nella pro­te­zio­ne dei client.

Immagine: Rappresentazione schematica di un forward proxy
Di­ver­sa­men­te dal reverse proxy, il forward proxy si trova in una rete comune e interna con i client.
N.B.

I forward proxy vengono spesso uti­liz­za­ti per con­trol­la­re l’accesso a internet nelle reti aziendali. Altri ambiti di ap­pli­ca­zio­ne sono l’ano­ni­miz­za­zio­ne nei servizi VPN e l’elusione delle re­stri­zio­ni geo­gra­fi­che.

Reverse proxy: ambiti di ap­pli­ca­zio­ne

Il rag­grup­pa­men­to delle richieste dei client consente di con­trol­la­re in modo det­ta­glia­to il traffico in entrata at­tra­ver­so i reverse proxy. Tra le altre cose, è possibile mettere a di­spo­si­zio­ne più server sotto lo stesso URL, di­stri­bui­re le richieste uni­for­me­men­te su vari server e ve­lo­ciz­za­re il recupero dei dati tramite caching. Di seguito sono elencati i prin­ci­pa­li campi di ap­pli­ca­zio­ne di un server reverse proxy.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

Load balancing

Un reverse proxy po­si­zio­na­to a monte permette di collegare un URL con diversi server nella rete privata. Questo offre la pos­si­bi­li­tà di di­stri­bui­re le richieste in entrata su più server. Un tale load balancing previene il so­vrac­ca­ri­co di singoli sistemi e compensa in caso di guasti. Se un server non è rag­giun­gi­bi­le a causa di errori hardware o software, il modulo di load balancing del proxy ri­di­stri­bui­sce le richieste in entrata sui server rimanenti. La di­spo­ni­bi­li­tà dei servizi server viene così garantita anche in caso di guasti.

Caching

Per ac­ce­le­ra­re la velocità dei servizi server, i reverse proxy possono offrire una funzione che consente di me­mo­riz­za­re nella cache i contenuti richiesti di frequente. Questo mec­ca­ni­smo permette al server proxy di ri­spon­de­re par­zial­men­te o com­ple­ta­men­te a richieste ri­pe­ti­ti­ve. I contenuti statici come immagini o fogli di stile CSS vengono mantenuti nella cache del proxy. In questo modo, non è ne­ces­sa­rio ri­chia­ma­re dati dal server back end o ne vengono re­cu­pe­ra­ti si­gni­fi­ca­ti­va­men­te meno, ac­ce­le­ran­do no­te­vol­men­te il tasso di accesso ai servizi web. Tuttavia, poiché per i contenuti che cambiano ra­pi­da­men­te non sempre si può garantire che il cache del proxy contenga la versione attuale, esiste il rischio che i client ri­chie­den­ti ricevano in­for­ma­zio­ni obsolete.

Misure di pro­te­zio­ne e sicurezza

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

  • Pro­te­zio­ne DDoS: i reverse proxy possono rilevare e bloccare traffico sospetto o in­so­li­ta­men­te elevato nell’ambito di attacchi DDoS prima che raggiunga i server back end.
  • Firewall per ap­pli­ca­zio­ni 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 ne­ces­sa­rio, bloccare de­ter­mi­na­ti indirizzi IP o con­sen­ti­re con­nes­sio­ni solo da spe­ci­fi­che reti.
  • Of­fu­sca­men­to dei server back end: il proxy impedisce che gli indirizzi IP interni dei server back end siano visibili pub­bli­ca­men­te, rendendo più difficili gli attacchi.

Cifratura

Per al­leg­ge­ri­re i server back end, è possibile uti­liz­za­re un reverse proxy anche per la cifratura. In questo caso, decifra la richiesta SSL/TLS del client (ad esempio, una con­nes­sio­ne HTTPS), inoltra i dati decifrati ai server back end e invia nuo­va­men­te la risposta al client cifrata. La co­mu­ni­ca­zio­ne interna può avvenire sia in modo non cifrato che cifrato.

Ano­ni­miz­za­zio­ne

Un reverse proxy può essere uti­liz­za­to anche per l’ano­ni­miz­za­zio­ne del traffico, ma­sche­ran­do o so­sti­tuen­do 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 in­di­riz­za­te al server più vicino in base alla posizione geo­gra­fi­ca dell’utente.

Com­pres­sio­ne

Con il software ap­pro­pria­to, un reverse proxy può essere uti­liz­za­to per la com­pres­sio­ne dei dati in entrata e in uscita. Un programma popolare per la com­pres­sio­ne delle pagine web è gzip, spesso usato in com­bi­na­zio­ne con i server web Apache o NGINX.

Vai al menu prin­ci­pa­le