Proxy server
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.[1] 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.[2] 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).