Obratni proxyji se upo­ra­blja­jo kot vmesna omrežna kom­po­nen­ta za zaščito stre­žni­kov javnih spletnih storitev. V imenu stre­žni­kov spre­je­ma­jo zahteve in jih po­sre­du­je­jo upo­rab­ni­kom.

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 br­skal­ni­ki) in strežniki v ozadju (npr. spletnimi strežniki, strežniki z bazami podatkov ali apli­ka­ci­ja­mi). 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:

  1. Prejem zahtevka stranke: Obratni proxy sprejema zahtevke HTTP, HTTPS ali druge zahtevke, kot so FTP ali WebSocket.
  2. Analiza zahtevka: Proxy preveri, ali je zahtevek veljaven, ali pred­sta­vlja kakršna koli varnostna tveganja in ali je na voljo shranjena različica v pred­po­mnil­ni­ku.
  3. Po­sre­do­va­nje na ustrezen strežnik: Če zahtevka ni mogoče obdelati iz pred­po­mnil­ni­ka, reverzni proxy pošlje zahtevek na enega od notranjih stre­žni­kov.
  4. Odgovor stranki: Obratni proxy prejme odgovor od strežnika v ozadju, ga po potrebi dodatno obdela (npr. ši­fri­ra­nje) in ga pošlje nazaj stranki, ki je zahtevo poslala.
Image: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

V čem se razlikuje od po­sre­dni­ških stre­žni­kov?

Medtem ko so, kot je bilo že omenjeno, povratni proxyji nameščeni med odjemalci in strežniki v ozadju, so po­sre­dni­ški proxyji nameščeni med odjemalci in in­ter­ne­tom. Po­sre­dni­ški proxy usmerja vsa zahtevka od­je­mal­cev in jih posreduje s svojim naslovom po­ši­lja­te­lja ciljnim stre­žni­kom na internetu. Tudi odgovori stre­žni­kov najprej prispejo na proxy, preden se raz­po­šlje­jo na ustrezne naprave strank. Te ostanejo anonimne – razen če gre za tran­spa­ren­tni 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 op­ti­mi­zi­ra njihovo do­sto­pnost.

Medtem ko povratni proxyji ponujajo jasne prednosti za stre­žni­ške strukture prek funkcij, kot so po­raz­de­li­tev obre­me­ni­tve in različne varnostne funkcije, so prednosti naprej usmer­je­nih proxyjev v zaščiti od­je­mal­cev.

Image: Schematic representation of a forward proxy
Unlike a reverse proxy, the forward proxy is located in a shared internal network with the clients.

Področja uporabe za reverzne proxyje

Z zdru­že­va­njem zahtevkov upo­rab­ni­kov lahko reverzni proxyji natančno nad­zo­ru­je­jo vhodni promet. To med drugim omogoča ponujanje več stre­žni­kov pod istim URL-jem, ena­ko­mer­no po­raz­de­li­tev zahtevkov med različne strežnike ter po­spe­ši­tev pri­do­bi­va­nja podatkov s pomočjo pred­po­mnje­nja. Spodaj so navedena ključna področja uporabe re­ver­zne­ga proxy strežnika.

Po­raz­de­li­tev obre­me­ni­tve

Z vzpo­sta­vi­tvi­jo re­ver­zne­ga proxyja na vhodu je mogoče URL povezati z raz­lič­ni­mi strežniki v zasebnem omrežju. To omogoča po­raz­de­li­tev pri­ha­ja­jo­čih zahtevkov med več stre­žni­kov. Takšno urav­na­va­nje obre­me­ni­tve pre­pre­ču­je pre­o­bre­me­ni­tev po­sa­me­znih sistemov in za­go­ta­vlja na­do­me­sti­tev v primeru okvar. Če je strežnik ne­do­se­gljiv zaradi napak v strojni ali pro­gram­ski opremi, modul za urav­na­va­nje obre­me­ni­tve proxyja preusmeri pri­ha­ja­jo­če zahtevke na preostale strežnike. To za­go­ta­vlja raz­po­lo­žlji­vost stre­žni­ških storitev tudi v primeru okvar.

Shra­nje­va­nje v pred­po­mnil­ni­ku

Za po­spe­ši­tev stre­žni­ških storitev lahko reverzni proxyji ponujajo funkcijo, ki omogoča shra­nje­va­nje pogosto zahtevane vsebine v pred­po­mnil­nik. To shra­nje­va­nje v pred­po­mnil­nik omogoča proxy strežniku, da na po­na­vlja­jo­če se zahteve odgovori delno ali v celoti sa­mo­stoj­no. Statična vsebina, kot so slike ali CSS-stilne datoteke, se shrani v pred­po­mnil­ni­ku proxyja. Po­sle­dič­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 za­go­to­vlje­no, da ima pred­po­mnil­nik proxyja naj­no­vej­šo različico, obstaja tveganje, da se strankam, ki pošiljajo zahteve, prikažejo zastarele in­for­ma­ci­je.

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 apli­ka­ci­je (WAF): Mnogi reverzni proxyji vklju­ču­je­jo WAF, ki lahko filtrira zlo­na­mer­ne 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­žni­kov v ozadju: Obratni proxy pre­pre­ču­je, da bi bile notranje IP-naslove stre­žni­kov v ozadju javno vidne, kar otežuje napade.

Ši­fri­ra­nje

Za zmanj­ša­nje obre­me­ni­tve stre­žni­kov v ozadju se za ši­fri­ra­nje lahko uporabijo tudi strežniki z obratnim proxyjem. V tem primeru strežnik raz­ši­fri­ra SSL/TLS-zahtevo stranke (npr. HTTPS-povezavo), raz­ši­fri­ra­ne podatke posreduje stre­žni­kom v ozadju, nato pa ustrezen odgovor ponovno šifriran pošlje nazaj stranki. Notranja ko­mu­ni­ka­ci­ja lahko poteka šifrirano ali ne­ši­fri­ra­no.

Ano­ni­mi­za­ci­ja

Obratni proxy se lahko uporabi tudi za ano­ni­mi­za­ci­jo prometa, tako da zakrije prvotne IP-naslove od­je­mal­cev ali jih nadomesti s svojimi lastnimi IP-naslovi. To pomaga varovati zasebnost od­je­mal­cev, saj dejanski IP-naslovi v dnevnikih ne bodo vidni. Poleg tega to omogoča ge­o­graf­sko po­raz­de­li­tev obre­me­ni­tve: zahtevki se lahko usmerjajo na najbližji strežnik glede na ge­o­graf­sko lokacijo upo­rab­ni­ka.

Stiskanje

S primerno pro­gram­sko opremo je mogoče z uporabo po­vra­tne­ga proxyja stisniti vhodne in izhodne podatke. Pri­lju­bljen program za stiskanje spletnih strani je gzip, ki se pogosto uporablja v kom­bi­na­ci­ji s spletnimi strežniki Apache ali NGINX.

Go to Main Menu