Apgriezti star­pniek­ser­ve­ri tiek izmantoti kā star­pniekkomпоненti tīklā, lai no­dro­ši­nā­tu publisko tiešsais­tes pa­kal­po­ju­mu serveru drošību. Tie pieņem serveru pie­pra­sī­ju­mus serveru vārdā un pārsūta tos lie­to­tā­jiem.

Kā darbojas ap­griez­tais star­pniek­ser­ve­ris?

Būtībā star­pniek­ser­ve­ris darbojas kā saziņas starp­nieks tīklā, saņemot pie­pra­sī­ju­mus un nosūtot tos tālāk mērķa serverim klienta vārdā. Ap­griez­tais proxy serveris atrodas starp klientiem (piemēram, tīmekļa pār­lūkprog­ram­mām) un aiz­mu­gu­res serveriem (piemēram, tīmekļa serveriem, datu bāzu serveriem vai lie­to­jum­prog­ram­mām). Tas ak­ti­vi­zē­jas, kad tiek veikts klienta pie­pra­sī­jums, nosakot, vai un uz kuru iekšējo servera kom­po­nen­tu pie­pra­sī­jums ir jānovirza. Process noris četros pa­mat­pos­mos:

  1. Klienta pie­pra­sī­ju­ma saņemšana: Ap­griez­tais star­pniek­ser­ve­ris pieņem HTTP, HTTPS vai citus pie­pra­sī­ju­mus, piemēram, FTP vai WebSocket.
  2. Pie­pra­sī­ju­ma analīze: starp­nieks pārbauda, vai pie­pra­sī­jums ir derīgs, vai tas rada kādus drošības riskus un vai ir pieejama cachelēta versija.
  3. Pār­sū­tī­ša­na uz at­bil­sto­šo serveri: ja pie­pra­sī­ju­mu nevar apstrādāt no ke­šat­mi­ņas, reversais star­pniek­ser­ve­ris nosūta pie­pra­sī­ju­mu uz vienu no iekšējiem serveriem.
  4. Atbilde klientam: ap­griez­tais star­pniek­ser­ve­ris saņem atbildi no aiz­mu­gu­res servera, ne­pie­cie­ša­mī­bas gadījumā to apstrādā (piemēram, šifrē) un nosūta atpakaļ pie­pra­sī­ju­ma ie­snie­dzē­jam.
Image: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

Kāda ir atšķirība sa­lī­dzi­nā­ju­mā ar forward proxy?

Kā jau minēts iepriekš, apgriezti star­pniek­ser­ve­ri atrodas starp klientiem un aiz­mu­gu­res serveriem, savukārt tiešie star­pniek­ser­ve­ri ir novietoti starp klientiem un internetu. Tiešais star­pniek­ser­ve­ris novirza visus klienta pie­pra­sī­ju­mus un nosūta tos ar savu sūtītāja adresi mērķa serveriem internetā. Arī serveru atbildes vispirms nonāk pie star­pniek­ser­ve­ra, pirms tās tiek iz­pla­tī­tas at­tie­cī­ga­jām klienta ierīcēm. Tās paliek anonīmas — ja vien tas nav caur­spī­dīgs star­pniek­ser­ve­ris. Kamēr tiešais star­pniek­ser­ve­ris aizsargā klientus iekšējā tīklā no ārējiem draudiem, ap­griez­tais star­pniek­ser­ve­ris nodrošina serveru drošību pub­lis­ka­jā tīklā un optimizē to pie­eja­mī­bu.

Lai gan at­grie­ze­nis­kie star­pniek­ser­ve­ri piedāvā acīm­re­dza­mas priekš­ro­cī­bas serveru struk­tū­rām, pa­tei­co­ties tādām funkcijām kā slodzes iz­lī­dzi­nā­ša­na un dažādām drošības funkcijām, tiešo star­pniek­ser­ve­ru stiprās puses ir saistītas ar klientu aiz­sar­dzī­bu.

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

Reversā proxy serveru pie­lie­to­ju­ma jomas

Klientu pie­pra­sī­ju­mu ap­vie­no­ša­na ļauj ap­griez­ta­jiem star­pniek­ser­ve­riem precīzi kontrolēt ienākošo datplūsmu. Tas, cita starpā, ļauj no­dro­ši­nāt vairākus serverus zem viena URL, vien­mē­rī­gi sadalīt pie­pra­sī­ju­mus starp dažādiem serveriem un paātrināt datu iegūšanu, iz­man­to­jot kešēšanu. Turpmāk ir uz­skai­tī­tas galvenās apgriezto star­pniek­ser­ve­ru pie­lie­to­ju­ma jomas.

Slodzes iz­lī­dzi­nā­ša­na

Priekšā novietots ap­griez­tais star­pniek­ser­ve­ris ļauj URL adresi saistīt ar dažādiem serveriem privātajā tīklā. Tas sadala ienākošos pie­pra­sī­ju­mus starp vairākiem serveriem. Šāda slodzes iz­lī­dzi­nā­ša­na novērš atsevišķu sistēmu pārslodzi un nodrošina darbības ne­pār­trauk­tī­bu trau­cē­ju­mu gadījumā. Ja kāds serveris nav sa­snie­dzams ap­ara­tū­ras vai prog­ram­ma­tū­ras kļūdu dēļ, star­pniek­ser­ve­ra slodzes iz­lī­dzi­nā­ša­nas modulis pārdala ienākošos pie­pra­sī­ju­mus starp pārējiem serveriem. Tas nodrošina serveru pa­kal­po­ju­mu pie­eja­mī­bu pat trau­cē­ju­mu gadījumā.

Caching

Lai pa­āt­ri­nā­tu servera pa­kal­po­ju­mu sniegšanu, ap­griez­tiem star­pniek­ser­ve­riem ir pieejama funkcija, kas ļauj bieži pie­pra­sī­to saturu saglabāt kešatmiņā. Šī kešēšana ļauj star­pniek­ser­ve­rim atbildēt uz at­kār­to­tiem pie­pra­sī­ju­miem vai nu daļēji, vai pilnībā pat­stā­vī­gi. Sta­tis­kais saturs, piemēram, attēli vai CSS stilu lapas, tiek saglabāts proxy cache. Rezultātā no backend servera ir jāiegūst maz vai vispār nav jāiegūst dati, kas ie­vē­ro­ja­mi paātrina piekļuvi tīmekļa pa­kal­po­ju­miem. Tomēr, tā kā strauji mainīgais saturs ne vienmēr garantē, ka proxy cache ir aktuālā versija, pastāv risks, ka pie­pra­sī­ju­ma veicējiem tiks sniegta no­ve­co­ju­si in­for­mā­ci­ja.

Aiz­sar­dzī­bas un drošības pasākumi

Ap­griez­tais star­pniek­ser­ve­ris darbojas kā sava veida aiz­sar­gā­jošs vairogs aiz­mu­gu­res serveriem un šajā lomā var no­dro­ši­nāt dažādas drošības funkcijas:

  • Aiz­sar­dzī­ba pret DDoS uz­bru­ku­miem: Ap­griez­tiem star­pniek­ser­ve­riem ir iespējams atklāt un bloķēt aizdomīgu vai neparasti lielu datu plūsmu DDoS uzbrukumu laikā, pirms tā sasniedz aiz­mu­gu­res serverus.
  • Web Ap­pli­ca­tion Firewall (WAF): Daudzi reversie proksi ietver WAF, kas var filtrēt ļaun­prā­tī­gus pie­pra­sī­ju­mus, piemēram, SQL in­jek­ci­jas vai Cross-Site Scripting (XSS).
  • IP balto un melno sarakstu izveide: ap­griez­tais star­pniek­ser­viss var bloķēt noteiktas IP adreses vai ne­pie­cie­ša­mī­bas gadījumā atļaut sa­vie­no­ju­mus tikai no kon­krē­tiem tīkliem.
  • Aiz­mu­gu­res serveru slēpšana: Reversais star­pniek­ser­ve­ris neļauj aiz­mu­gu­res serveru iekšējām IP adresēm būt publiski redzamām, tādējādi ap­grū­ti­not uz­bru­ku­mus.

Šifrēšana

Lai sa­ma­zi­nā­tu slodzi uz aiz­mu­gu­res serveriem, šif­rē­ša­nai var izmantot arī apgriezto star­pniek­ser­ve­ri. Šajā gadījumā tas dešifrē klienta SSL/TLS pie­pra­sī­ju­mu (piemēram, HTTPS sa­vie­no­ju­mu), nosūta de­šif­rē­tos datus uz aiz­mu­gu­res serveriem un atpakaļ klientam nosūta at­bil­sto­šo atbildi, kas atkal ir šifrēta. Iekšējā saziņa var notikt gan šifrētā, gan nešifrētā veidā.

Ano­ni­mi­zā­ci­ja

Apgriezto star­pniek­ser­ve­ri var izmantot arī dat­plūs­mas ano­ni­mi­zē­ša­nai, maskējot klientu sā­kot­nē­jās IP adreses vai aizstājot tās ar savām IP adresēm. Tas palīdz aizsargāt klientu privātumu, jo reālās IP adreses nebūs redzamas žurnālos. Turklāt tas ļauj veikt ģeog­rā­fis­ko slodzes iz­lī­dzi­nā­ša­nu: pie­pra­sī­ju­mus var novirzīt uz tuvāko serveri atkarībā no lietotāja ģeog­rā­fis­kās atrašanās vietas.

Sa­spie­ša­na

Iz­man­to­jot at­bil­sto­šu prog­ram­ma­tū­ru, apgriezto star­pniek­ser­ve­ri var izmantot ienākošo un izejošo datu sa­spie­ša­nai. Populāra programma tīmekļa vietņu sa­spie­ša­nai ir gzip, ko bieži izmanto kopā ar tīmekļa serveriem Apache vai NGINX.

Go to Main Menu