Proxy systémy

Proxy server funguje jako prostředník mezi klientem a cílovým počítačem (serverem), překládá klientské požadavky a vůči cílovému počítači vystupuje sám jako klient. Přijatou odpověď následně odesílá zpět na klienta. Může se jednat jak o specializovaný hardware, tak o software provozovaný na běžném počítači. Proxy server odděluje lokální počítačovou síť (intranet) od Internetu.

Aplikační proxy je server speciálně určený pro určitý protokol nebo aplikaci. Proxy server může analyzovat obsah komunikace, případně ji pozměňovat (např. odstraňování reklam z http požadavků, blokování webových stránek podle obsahu a podobně) nebo ukládat požadavky do vyrovnávací paměti (cache), ze které mohou být při opakovaném požadavku odpovědi poskytnuty rychleji.

Typy proxy serverů
Proxy server může být umístěn na klientském počítači nebo mezi klientem a cílovým serverem na Internetu.

Proxy server, který prochází žádosti a odpovědi nijak neupravuje, se obvykle nazývá gateway nebo tunneling proxy.
Forward proxy je internetově orientovaná proxy používaná k načítání z celé řady zdrojů (ve většině případů kdekoliv na Internetu).
Reverzní proxy je obvykle internetově orientovaný proxy server, který se používá k řízení ochrany přístupu k serveru v privátní síti, plnění úkolů jako je vyrovnávání zatížení, autentizace, dešifrování nebo ukládání do mezipaměti.
Forward proxy
Forward proxy jsou proxy servery, kde klientský server určí cílový server a připojí se k němu.Jsou schopny načítat z celé řady zdrojů (ve většině případů kdekoliv na Internetu).

Pojmy „forward proxy“ a „forwarding proxy“ jsou obecné popisy chování (přesměrování provozu), a proto jsou tedy nejednoznačné. S výjimkou reverse proxy, typy proxy popsané v tomto článku jsou více specializované podtypy obecného konceptu forward proxy.

Open proxy
Open proxy server je forward proxy server, který je přístupný jakýmkoliv uživatelům Internetu. Gordon Lyon (expert na bezpečnost sítí) odhaduje, že jich je na Internetu stovky tisíc.Anonymní open proxy server umožňuje uživatelům, aby skryli svou IP adresu při procházení webu nebo využívání jiných internetových služeb. Existují různé stupně anonymity, nicméně existuje i několik metod pro odhalení klientského serveru bez ohledu na použitou proxy.

Reverzní proxy
Reverzní proxy je proxy server, který se zobrazí klientům jako obyčejný server. Žádosti jsou přesměrovány na jeden nebo více serverů, které je zpracují. Odpovědi jsou navráceny, jakoby přišly přímo z webového serveru.

Reverzní proxy servery jsou instalovány v blízkosti jednoho či více webových serverů. Všechen příchozí provoz z Internetu s místem určení na jeden ze sousedních webových serverů prochází přes proxy server. Použití slova „reverse“ má původ ve svém protějšku „forward proxy“, jelikož reverzní proxy je blíže k webovému serveru a slouží pouze pro určitou množinu webových stránek.

Existuje několik důvodů, proč si nainstalovat reverzní proxy server:

Šifrování/SSL akcelerace: pokud jsou vytvořeny zabezpečené webové stránky, SSL šifrování často není prováděno pomocí webového serveru a proto lze využít reverzní proxy server, který je vybaven podporou pro SSL akceleraci. Kromě toho může hostitel poskytnout jeden „SSL Proxy“ a tím zajistit SSL šifrování pro libovolný počet počítačů. Odstraňuje tím potřebu SSL Server certifikátu pro každého hostitele, s tou nevýhodou, že všichni hostitelé za SSL proxy musí sdílet společný DNS název nebo IP adresu pro SSL spojení. Tento problém lze obejít použitím SubjectAltName, funkcí certifikátu X.509.
Vyvažování zátěže: reverzní proxy může distribuovat zatížení do několika webových serverů. Každý webový server obsluhuje vlastní aplikační oblast. V takovém případě může reverzní proxy potřebovat přepsat URL každé webové stránky (překlad z externě známých URL do interních míst).
Ukládání statického obsahu do vyrovnávací paměti: reverzní proxy může snižovat zátěž webových serverů pomocí ukládání do cache paměti různého obsahu, jako jsou fotografie a další grafická data a tím zkrátí odezvu serveru.
Komprese dat: proxy server může komprimovat obsah a tím optimalizovat práci serveru s cílem zrychlit načítání.
Spoon feeding (krmení lžící): dynamicky generovaná stránka může být vytvořena jako celek a klientovi, který má pomalé připojení, zasílána po částech, takže program generující stránku na centrálním serveru nemusí zůstávat otevřený a zbytečně využívat systémové prostředky.
Bezpečnost: proxy server je další vrstva ochrany a může tak ochránit před nežádoucími útoky ze strany webových serverů. Nicméně neposkytuje žádnou ochranu proti útokům na webové aplikace a služby, které jsou obecně považovány za mnohem větší hrozbu.
Extranet Publishing: reverzní proxy server na internetu může být použit ke komunikaci s firewallovým serverem interního typu, poskytujíc extranetu přístup k některým funkcím, i když ponechává servery za firewallem. Pokud je takto použit, bezpečnostní opatření by měla být požadována pro ochranu zbytku infrastruktury v případě, že je ohrožen tento server, jehož webová aplikace je vystavena útoku z Internetu.
Proxy zvyšující výkon
Proxy server, který je navržen tak, aby zmírnil specifické žádosti nebo degradaci. PEP (Performance Enhancing Proxies) se obvykle používají pro zlepšení výkonnosti TCP v přítomnosti vysokých RTT (Round Trip Times) a bezdrátového spojení s vysokou ztrátou paketů. Jsou také často používány pro vysoce asynchronní spojení, kde je velice odlišný upload a download.

Použití proxy serverů
Filtrovací proxy
Proxy servery filtrující obsah, umožňují kontrolu a řízení obsahu v jednom nebo obou směrech přes tento server. Běžně se pro tyto účely používá v komerčních i nekomerčních organizacích (zvláště pak ve školách) pro kontrolu využívaní internetového připojení pro správné účely. Servery filtrující obsah také velmi často podporují autentizaci uživatele připojujícího se k webu. To také přináší možnost logu veškerých informacích o konkrétních uživatelích a jejich provozu na webu (navštívené URL apod). Také se často přímo do proxy filtru implementují různé antivirové programy pro zabezpečení dat jdoucích k uživateli v reálném čase, ještě před vstupem do samotné vnitřní sítě. Příklad některých běžných metod pro filtrování obsahu: URL, DNS blacklist, URL regex filtering, MIME filtering nebo filtering založený na klíčových slovech v obsahu. Princip je následující: Každý dotaz směřující do otevřeného internetu musí nejprve projít rozhraním proxy filteru. Organizace, uvnitř které se klient nachází, shromažďuje a aktualizuje data o serverech či službách, které chce ve své síti omezit. (zpravidla se jedná servery typu: sociální sítě, gambling, online nákupy, pornografie). Většinou se pro kvalitní databázi využívají tzv. internetoví roboti, kteří sami na základě "podoby-obsahu" rozpoznávají a třídí obsah. Pokud tedy požadavek klienta směrem do internetu odpovídá některému ze zakázaných, je jeho požadavek okamžitě zahozen.

Cachovací proxy
Cachovací (kešovací) proxy servery byly vůbec první druh proxy serverů. Slouží k urychlování odpovědi na dotaz, pro který již má v sobě uloženou odpověď z minulosti, kdy skrz něj odpověď prošla. A to pro stejného či několik jiných klientů. Cachovací proxy servery udržují kopie „odpovědí“ na často kladené dotazy. Umožňují tak velikým organizacím značně snižovat provoz a náklady, zatímco zvyšují výkon. Další důležité využití těchto serverů je v snížení nákladů na hardware. Organizace, která má mnoho systémů v jedné síti nebo jsou pod kontrolou jednoho serveru ztrácí možnost individuálního připojení do internetu pro každý systém. V takovém případě jednotlivé systémy mohou být připojeny k jednomu proxy serveru a ten následně připojen k hlavnímu serveru.

Překlad
Překladový proxy server je server používaný pro překlad internetové stránky pro několik různých „trhů“. Provoz ze všech možných míst je směrován skrz překladový proxy server k cílové internetové stránce. Data jdoucí od cílové adresy zpět k uživateli jsou potom podle lokace klienta přeložena právě konkrétním jazykem pro něj. Pro takový překlad se na serveru používá buď strojový překlad nebo přirozený nebo jejich vzájemná kombinace.

DNS proxy server
Tento proxy server sbírá ze síťového provozu (nejčastěji v lokálních sítích) DNS dotazy a předává je DNS serverům v Internetu. Také může tyto DNS dotazy dočasně ukládat a následně s nimi pracovat.

Obcházení filtrů a censury
Pokud cílový server filtruje z nějakého důvodu klienty kterým poskytuje svůj obsah, použitím proxy serveru lze často taková omezení obejít. Některý obsah na internetu může být například dostupný pouze pro určité země nebo z nějakého důvodu není možno se k němu dostat opakovaně. Tato omezení jsou často implementovány filtrováním IP adresy klienta. Je-li však provoz klienta směrován nejprve do proxy serveru a až ten posílá požadavky do internetu, vystupuje pak klient v internetu právě jako proxy skrz které se ptá. Zřetězením proxy serverů se pak klient na počátku stává směrem zpět téměř nedohledným.

Logovací proxy
Proxy server umístěný mezi zdroj a cíl je vždy schopen zachytit (uložit), a následně analyzovat data, který skrz něj procházejí. Právě z toho důvodu by některá komunikace měla být šifrována (SSL protokol). Například provoz pro přihlášení do internetového bankovnictví apod.

Brány do privátních sítí
Proxy servery mohou zastat také funkci podobnou síťovému switchi kdy spojují dvě různé sítě.

Speciální případ proxy
Speciální případ proxy serverů je pak CGI proxy. Takové proxy servery jsou weby, které umožňují uživatelům přistoupit k webové stránce právě skrz sebe sama. Zpravidla implementují funkcionalitu proxy serveru pomocí PHP nebo CGI. Tyto typy proxy serverů jsou velmi často využívány pro přístup k internetovým stránkám kde to dané okolnosti neumožňují. Opět se jedná zejména o školní či firemní sítě). Jsou také často používány pro získání jisté anonymity v internetu kdy se uživatelé skryjí pod IP adresu webového serveru.

Zvýšení výkonu komunikace
Pokud se některé požadavky klienta opakují (např. požadavek na stažení loga Wikipedie, dotazy na DNS, atd.), může si proxy server uložit odpověď do vyrovnávací paměti a odpověď odeslat klientovi přímo, aniž by předal komunikaci k cílovému serveru.

Bezpečnost
Aplikační proxy server může analyzovat komunikaci a zjišťovat přítomnost např. virů. Dále může procházející požadavky šifrovat a dešifrovat.

Připojení více klientů k internetu
Klienti nemusí mít přiřazeny veřejné IP adresy a přesto mohou mít přes proxy server přístup ke službám na Internetu (toho je také možno docílit překladem IP adres, tzv. NAT, který je často zkombinován s firewallem).