Čo je reverzný proxy server? Základné komponenty bezpečnostnej architektúry
Reverse proxy sa používajú ako sprostredkovateľská sieťová komponenta na zabezpečenie serverov verejných online služieb. Prijímajú požiadavky serverov v mene serverov a odosielajú ich používateľom.
Ako funguje reverzný proxy server?
Proxy server v podstate funguje ako komunikačný sprostredkovateľ v sieti, prijíma požiadavky a odovzdáva ich cieľovému serveru v mene klienta. Reverse proxy je umiestnený medzi klientmi (napr. webovými prehliadačmi) a backendovými servermi (napr. webovými servermi, databázovými servermi alebo aplikáciami). Aktivuje sa pri zaslaní požiadavky klienta a určuje, či a na ktorú internú súčasť servera má byť požiadavka smerovaná. Proces prebieha v štyroch základných krokoch:
- Prijímanie požiadavky klienta: Reverzný proxy prijíma požiadavky HTTP, HTTPS alebo iné požiadavky, ako napríklad FTP alebo WebSocket.
- Analýza požiadavky: Proxy skontroluje, či je požiadavka platná, či nepredstavuje žiadne bezpečnostné riziko a či je k dispozícii jej verzia v cache.
- Presmerovanie na príslušný server: Ak nie je možné na žiadosť odpovedať z cache, reverzný proxy server pošle žiadosť na jeden z interných serverov.
- Odpoveď klientovi: Reverzný proxy prijíma odpoveď od backendového servera, v prípade potreby ju ďalej spracováva (napr. šifrovanie) a odosiela späť klientovi, ktorý žiadosť odoslal.

Aký je rozdiel v porovnaní s forward proxy?
Zatiaľ čo reverzné proxy, ako bolo spomenuté skôr, sú umiestnené medzi klientmi a backendovými servermi, forward proxy sú umiestnené medzi klientmi a internetom. Forward proxy smeruje všetky požiadavky klientov a odosiela ich so svojou vlastnou adresou odosielateľa na cieľové servery na internete. Odpovede serverov tiež najskôr dorazia k proxy, než sú distribuované do príslušných klientskych zariadení. Tieto zostávajú anonymné, pokiaľ nejde o transparentný proxy. Kým forward proxy chráni klientov vo vnútornej sieti pred vonkajšími hrozbami, reverzný proxy zabezpečuje servery vo verejnej sieti a optimalizuje ich dostupnosť.
Zatiaľ čo reverzné proxy ponúkajú jasné výhody pre serverové štruktúry prostredníctvom funkcií, ako je vyrovnávanie zaťaženia a rôzne bezpečnostné funkcie, silné stránky dopredných proxy spočívajú v ochrane klientov.

Oblasti použitia reverzných proxy serverov
Zoskupovanie požiadaviek klientov umožňuje reverzným proxy serverom vo veľkej miere kontrolovať prichádzajúci prevádzku. Okrem iného to umožňuje poskytovať viacero serverov pod jednou URL adresou, rovnomerne distribuovať požiadavky medzi rôzne servery a urýchliť načítavanie údajov prostredníctvom ukladania do vyrovnávacej pamäte. Nižšie sú uvedené kľúčové oblasti použitia reverzného proxy servera.
Vyrovnávanie zaťaženia
Reverse proxy umiestnený vpredu umožňuje prepojenie URL s rôznymi servermi v súkromnej sieti. Tým sa prichádzajúce požiadavky distribuujú medzi viaceré servery. Takéto vyvažovanie zaťaženia zabraňuje preťaženiu jednotlivých systémov a kompenzuje výpadky. Ak je server nedostupný z dôvodu hardvérových alebo softvérových chýb, modul vyvažovania zaťaženia proxy prerozdelí prichádzajúce požiadavky na zostávajúce servery. Tým sa zabezpečí dostupnosť serverových služieb aj počas výpadkov.
Ukladanie do vyrovnávacej pamäte
Na urýchlenie serverových služieb môžu reverzné proxy servery ponúkať funkciu, ktorá umožňuje ukladať často požadovaný obsah do vyrovnávacej pamäte. Táto vyrovnávacia pamäť umožňuje proxy serveru odpovedať na opakované požiadavky čiastočne alebo úplne sám. Statický obsah, ako sú obrázky alebo štýly CSS, sa ukladá do vyrovnávacej pamäte proxy. V dôsledku toho je potrebné získať z backendového servera len málo alebo žiadne dáta, čo výrazne urýchľuje prístup k webovým službám. Keďže sa však obsah rýchlo mení, nie je vždy zaručené, že vyrovnávacia pamäť proxy obsahuje aktuálnu verziu, existuje riziko, že sa klientom, ktorí o to požiadajú, doručia neaktuálne informácie.
Ochranné a bezpečnostné opatrenia
Reverse proxy funguje ako akýsi štít pre backendové servery a v tejto úlohe môže ponúkať rôzne bezpečnostné funkcie:
- Ochrana proti DDoS: Reverzné proxy servery dokážu detekovať a blokovať podozrivý alebo neobvykle vysoký prevádzkový tok počas DDoS útokov skôr, ako dosiahne backendové servery.
- Web Application Firewall (WAF): Mnohé reverzné proxy obsahujú WAF, ktorý dokáže filtrovať škodlivé požiadavky, ako sú SQL injekcie alebo Cross-Site Scripting (XSS).
- Biela a čierna listina IP adries: Reverzný proxy server môže v prípade potreby blokovať určité IP adresy alebo povoliť pripojenia len z konkrétnych sietí.
- Skrytie backendových serverov: Reverzný proxy zabraňuje verejnej viditeľnosti interných IP adries backendových serverov, čím sťažuje útoky.
Šifrovanie
Na zníženie zaťaženia backendových serverov sa na šifrovanie môžu použiť aj reverzné proxy servery. V tomto prípade dešifrujú SSL/TLS požiadavku klienta (napr. HTTPS pripojenie), odosielajú dešifrované dáta na backendové servery a zasielajú zodpovedajúcu odpoveď späť klientovi opäť zašifrovanú. Interná komunikácia môže prebiehať buď zašifrovaná, alebo nezašifrovaná.
Anonymizácia
Reverse proxy sa dá použiť aj na anonymizáciu prevádzky tým, že zakryje pôvodné IP adresy klientov alebo ich nahradí vlastnými IP adresami. To pomáha chrániť súkromie klientov, pretože skutočné IP adresy nebudú viditeľné v protokoloch. Okrem toho to umožňuje geografické vyvažovanie zaťaženia: požiadavky môžu byť smerované na najbližší server v závislosti od geografickej polohy používateľa.
Kompresia
S vhodným softvérom je možné reverzný proxy server použiť na kompresiu prichádzajúcich a odchádzajúcich dát. Populárnym programom na kompresiu webových stránok je gzip, ktorý sa často používa v kombinácii s webovými servermi Apache alebo NGINX.