Kaj je povratni proxy? Ključni elementi varnostne arhitekture
Obratni proxyji se uporabljajo kot vmesna omrežna komponenta za zaščito strežnikov javnih spletnih storitev. V imenu strežnikov sprejemajo zahteve in jih posredujejo uporabnikom.
Kako deluje povratni proxy?
Proxy strežnik v bistvu deluje kot posrednik v omrežju, ki sprejema zahteve in jih v imenu stranke posreduje ciljnemu strežniku. Obratni proxy je nameščen med strankami (npr. spletnimi brskalniki) in strežniki v ozadju (npr. spletnimi strežniki, strežniki z bazami podatkov ali aplikacijami). Aktivira se, ko stranka pošlje zahtevo, in določi, ali naj se zahteva usmeri na katero od notranjih strežniških komponent in na katero. Postopek poteka v štirih osnovnih korakih:
- Prejem zahtevka stranke: Obratni proxy sprejema zahtevke HTTP, HTTPS ali druge zahtevke, kot so FTP ali WebSocket.
- Analiza zahtevka: Proxy preveri, ali je zahtevek veljaven, ali predstavlja kakršna koli varnostna tveganja in ali je na voljo shranjena različica v predpomnilniku.
- Posredovanje na ustrezen strežnik: Če zahtevka ni mogoče obdelati iz predpomnilnika, reverzni proxy pošlje zahtevek na enega od notranjih strežnikov.
- Odgovor stranki: Obratni proxy prejme odgovor od strežnika v ozadju, ga po potrebi dodatno obdela (npr. šifriranje) in ga pošlje nazaj stranki, ki je zahtevo poslala.

V čem se razlikuje od posredniških strežnikov?
Medtem ko so, kot je bilo že omenjeno, povratni proxyji nameščeni med odjemalci in strežniki v ozadju, so posredniški proxyji nameščeni med odjemalci in internetom. Posredniški proxy usmerja vsa zahtevka odjemalcev in jih posreduje s svojim naslovom pošiljatelja ciljnim strežnikom na internetu. Tudi odgovori strežnikov najprej prispejo na proxy, preden se razpošljejo na ustrezne naprave strank. Te ostanejo anonimne – razen če gre za transparentni proxy. Medtem ko naprej usmerjeni proxy ščiti stranke v notranjem omrežju pred zunanjimi grožnjami, povratni proxy varuje strežnike v javnem omrežju in optimizira njihovo dostopnost.
Medtem ko povratni proxyji ponujajo jasne prednosti za strežniške strukture prek funkcij, kot so porazdelitev obremenitve in različne varnostne funkcije, so prednosti naprej usmerjenih proxyjev v zaščiti odjemalcev.

Področja uporabe za reverzne proxyje
Z združevanjem zahtevkov uporabnikov lahko reverzni proxyji natančno nadzorujejo vhodni promet. To med drugim omogoča ponujanje več strežnikov pod istim URL-jem, enakomerno porazdelitev zahtevkov med različne strežnike ter pospešitev pridobivanja podatkov s pomočjo predpomnjenja. Spodaj so navedena ključna področja uporabe reverznega proxy strežnika.
Porazdelitev obremenitve
Z vzpostavitvijo reverznega proxyja na vhodu je mogoče URL povezati z različnimi strežniki v zasebnem omrežju. To omogoča porazdelitev prihajajočih zahtevkov med več strežnikov. Takšno uravnavanje obremenitve preprečuje preobremenitev posameznih sistemov in zagotavlja nadomestitev v primeru okvar. Če je strežnik nedosegljiv zaradi napak v strojni ali programski opremi, modul za uravnavanje obremenitve proxyja preusmeri prihajajoče zahtevke na preostale strežnike. To zagotavlja razpoložljivost strežniških storitev tudi v primeru okvar.
Shranjevanje v predpomnilniku
Za pospešitev strežniških storitev lahko reverzni proxyji ponujajo funkcijo, ki omogoča shranjevanje pogosto zahtevane vsebine v predpomnilnik. To shranjevanje v predpomnilnik omogoča proxy strežniku, da na ponavljajoče se zahteve odgovori delno ali v celoti samostojno. Statična vsebina, kot so slike ali CSS-stilne datoteke, se shrani v predpomnilniku proxyja. Posledično je treba s strežnika v ozadju pridobiti le malo ali sploh nobenih podatkov, kar znatno pospeši dostop do spletnih storitev. Ker pa se vsebina hitro spreminja in ni vedno zagotovljeno, da ima predpomnilnik proxyja najnovejšo različico, obstaja tveganje, da se strankam, ki pošiljajo zahteve, prikažejo zastarele informacije.
Ukrepi za zaščito in varnost
Obratni proxy deluje kot nekakšen ščit za strežnike v ozadju in v tej vlogi ponuja različne varnostne funkcije:
- Zaščita pred DDoS-napadi: Reversni proxyji lahko med DDoS-napadi zaznavajo in blokirajo sumljiv ali nenavadno visok promet, še preden ta doseže strežnike v ozadju.
- Požarni zid za spletne aplikacije (WAF): Mnogi reverzni proxyji vključujejo WAF, ki lahko filtrira zlonamerne zahteve, kot so SQL-injekcije ali Cross-Site Scripting (XSS).
- Bela in črna lista IP-naslovov: Obratni proxy lahko po potrebi blokira določene IP-naslove ali dovoli povezave le iz določenih omrežij.
- Skritje strežnikov v ozadju: Obratni proxy preprečuje, da bi bile notranje IP-naslove strežnikov v ozadju javno vidne, kar otežuje napade.
Šifriranje
Za zmanjšanje obremenitve strežnikov v ozadju se za šifriranje lahko uporabijo tudi strežniki z obratnim proxyjem. V tem primeru strežnik razšifrira SSL/TLS-zahtevo stranke (npr. HTTPS-povezavo), razšifrirane podatke posreduje strežnikom v ozadju, nato pa ustrezen odgovor ponovno šifriran pošlje nazaj stranki. Notranja komunikacija lahko poteka šifrirano ali nešifrirano.
Anonimizacija
Obratni proxy se lahko uporabi tudi za anonimizacijo prometa, tako da zakrije prvotne IP-naslove odjemalcev ali jih nadomesti s svojimi lastnimi IP-naslovi. To pomaga varovati zasebnost odjemalcev, saj dejanski IP-naslovi v dnevnikih ne bodo vidni. Poleg tega to omogoča geografsko porazdelitev obremenitve: zahtevki se lahko usmerjajo na najbližji strežnik glede na geografsko lokacijo uporabnika.
Stiskanje
S primerno programsko opremo je mogoče z uporabo povratnega proxyja stisniti vhodne in izhodne podatke. Priljubljen program za stiskanje spletnih strani je gzip, ki se pogosto uporablja v kombinaciji s spletnimi strežniki Apache ali NGINX.