Pöörd­prok­si­sid ka­su­ta­takse va­hen­da­vate võr­gu­kom­po­nen­ti­dena avalike vee­bi­tee­nuste serverite tur­va­li­suse ta­ga­miseks. Need võtavad serverite nimel vastu ser­ve­ri­pä­rin­guid ja edastavad need ka­su­ta­ja­tele.

Kuidas töötab pöörd­proksi?

Põ­hi­mõt­te­li­selt toimib prok­si­ser­ver võrgus suht­lus­va­hen­da­jana, võttes vastu päringuid ja edastades need kliendi nimel siht­ser­ve­rile. Pöörd­proksi asub klientide (nt vee­bib­rau­se­rid) ja tagapõhja serverite (nt vee­bi­ser­ve­rid, and­me­baasi­ser­ve­rid või ra­ken­dused) vahel. See ak­ti­vee­rub, kui klient esitab päringu, ning otsustab, kas ja millisele si­se­misele ser­ve­ri­kom­po­nen­dile päring suunata. Protsess toimub järgmiste nelja põhilise sammu järgi:

  1. Kliendi päringu vas­tu­võt­mine: pöörd­proksi võtab vastu HTTP-, HTTPS- või muid päringuid, nagu FTP või WebSocket.
  2. Päringu ana­lüü­si­mine: proksi kont­rol­lib, kas päring on kehtiv, kas see kujutab endast tur­va­riski ja kas selle kohta on olemas vahemällu sal­ves­ta­tud versioon.
  3. Edas­ta­mine sobivale serverile: Kui päringule ei ole võimalik vastata va­he­mä­lust, saadab pöörd­proksi päringu ühele si­se­mis­test ser­ve­ri­test.
  4. Vastus kliendile: pöörd­proksi saab vastuse ta­gant­poolse serveri poolt, töötleb seda vajadusel edasi (nt krüp­tee­ri­mine) ja saadab selle tagasi päringu esitanud kliendile.
Image: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

Mis on erinevus võrreldes edas­ta­vate prok­si­dega?

Kui pöörd­prok­sid, nagu eelnevalt mainitud, asuvad klientide ja ta­ga­põh­ja­ser­ve­rite vahel, siis edas­tus­prok­sid asuvad klientide ja interneti vahel. Edas­tus­proksi suunab kõik kliendi päringud ja edastab need oma saat­jaaad­res­siga siht­ser­ve­ri­tele in­ter­ne­tis. Ka serverite vastused jõuavad esmalt proksisse, enne kui need jao­ta­takse vas­ta­va­tele kliendi sead­me­tele. Need jäävad ano­nüüm­seks, välja arvatud juhul, kui tegemist on lä­bi­paistva proksiga. Kui eda­si­suu­nav proksi kaitseb sisemise võrgu kliente väliste ohtude eest, siis pöörd­proksi tur­va­li­sus­tab avalikus võrgus asuvaid servereid ja op­ti­mee­rib nende kät­te­saa­da­vust.

Kuigi pöörd­prok­sid pakuvad ser­ve­ri­struk­tuu­ri­dele selgeid eeliseid tänu sel­lis­tele funkt­sioo­ni­dele nagu koormuse jaotamine ja mit­me­su­gu­sed tur­va­funkt­sioo­nid, seisnevad eda­si­suu­na­tud prokside tugevused kliendi kaitses.

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

Pöörd­prok­side ka­su­tus­vald­kon­nad

Klientide päringute koon­da­mine võimaldab pöörd­prok­si­del sis­se­tu­le­vat liiklust täpselt juhtida. Muu hulgas võimaldab see pakkuda sama URL-i all mitut serverit, jaotada päringuid ühtlaselt erinevate serverite vahel ning kii­ren­dada andmete hankimist vahemällu sal­ves­ta­mise abil. Allpool on toodud pöörd­prok­si­ser­veri peamised ra­ken­dus­vald­kon­nad.

Koormuse jaotamine

Ees pai­gu­ta­tud pöörd­proksi võimaldab URL-i siduda mitmete sisevõrgu ser­ve­ri­tega. See jaotab sis­se­tu­le­vad päringud mitme serveri vahel. Selline koormuse jaotamine hoiab ära üksikute süs­teemide üle­koor­muse ja kom­pen­see­rib rikkeid. Kui server on riist- või tark­va­ra­vea tõttu kät­te­saa­matu, suunab proksi koormuse jaotamise moodul sis­se­tu­le­vad päringud ülejäänud ser­ve­ri­tele. See tagab ser­ve­ri­tee­nuste kät­te­saa­da­vuse isegi rik­ke­olu­kor­ras.

Vahemällu sal­ves­ta­mine

Ser­ve­ri­tee­nuste kii­ren­da­miseks võivad pöörd­prok­sid pakkuda funkt­siooni, mis võimaldab sageli küsitavat sisu vahemällu sal­ves­tada. See vahemällu sal­ves­ta­mine võimaldab prok­si­ser­ve­ril kor­du­va­tele pä­rin­gu­tele vastata kas osaliselt või täie­li­kult ise­seis­valt. Staa­ti­line sisu, nagu pildid või CSS-stii­li­le­hed, sal­ves­ta­takse proksi vahemällu. Selle tu­le­mu­sena tuleb ta­gant­poolt serverist hankida vähe või üldse mitte andmeid, mis kiirendab oluliselt vee­bi­tee­nus­tele juur­de­pääsu. Kuna kiiresti muutuv sisu ei pruugi alati tagada, et proksi vahemälus on olemas uusim versioon, on oht, et päringut esi­ta­va­tele klien­ti­dele edas­ta­takse aegunud teavet.

Kait­se­meet­med ja tur­va­li­sus­meet­med

Pöörd­proksi toimib tagapool asuvate serverite jaoks omamoodi kait­se­kil­bina ning suudab selles rollis pakkuda mit­me­su­gu­seid tur­be­funkt­sioone:

  • DDoS-kaitse: pöörd­prok­sid suudavad DDoS- rünnakute ajal tuvastada ja blo­kee­rida kahtlase või eba­ta­va­li­selt suure liik­lus­koor­muse enne, kui see jõuab ta­ga­pool­se­tele ser­ve­ri­tele.
  • Vee­bi­ra­ken­duste tulemüür (WAF): Paljud pöörd­prok­sid si­sal­da­vad WAF-i, mis suudab filt­ree­rida pa­ha­taht­likke päringuid, nagu SQL-süstid või rist­vee­bisk­rip­ti­mine (XSS).
  • IP-aad­res­side lubamine ja keelamine: pöörd­proksi suudab vajaduse korral blo­kee­rida teatud IP-aadresse või lubada ühendusi ainult kind­la­test võrkudest.
  • Ta­ga­põh­ja­ser­ve­rite varjamine: pöörd­proksi takistab ta­ga­põh­ja­ser­ve­rite sisemiste IP-aad­res­side avalikku nähtavust, muutes rünnakud raskemaks.

Krüp­tee­ri­mine

Tagapool asuvate serverite koormuse vä­hen­da­miseks võib krüp­tee­ri­miseks kasutada ka pöörd­prok­si­ser­ve­rit. Sel juhul dek­rüp­tee­rib see kliendi SSL/TLS-päringu (nt HTTPS-ühenduse), edastab dek­rüp­tee­ri­tud andmed tagapool asuvatele ser­ve­ri­tele ja saadab vastava vastuse uuesti krüp­tee­ri­tuna kliendile tagasi. Sisemine suhtlus võib toimuda kas krüp­tee­ri­tult või krüp­tee­ri­mata.

Ano­nüü­mi­mine

Pöörd­prok­sit saab kasutada ka liikluse ano­nüüm­seks muut­miseks, varjates klientide algseid IP-aadresse või asendades need omaenda IP-aad­res­si­dega. See aitab kaitsta klientide pri­vaat­sust, kuna tegelikud IP-aadressid ei ole logides nähtavad. Lisaks võimaldab see geog­raa­fi­list koormuse jaotamist: päringud saab suunata lähimasse ser­ve­risse sõltuvalt kasutaja geog­raa­fi­li­sest asukohast.

Ti­hen­da­mine

Õige tarkvara abil saab pöörd­prok­sit kasutada sis­se­tu­le­vate ja väl­ja­mi­ne­vate andmete pak­ki­miseks. Vee­bi­sai­tide pak­ki­miseks on po­pu­laarne programm gzip, mida ka­su­ta­takse sageli koos vee­bi­ser­ve­ri­tega Apache või NGINX.

Go to Main Menu