Plná moc pro vaše připojení -- proxy server

1. 2. 2000

Sdílet

Ačkoliv by se podle názvu tohoto článku mohlo zdát, že hlavní náplní následujících odstavců budou právnické kli...

Ačkoliv by se podle názvu tohoto článku mohlo zdát, že hlavní náplní

následujících odstavců budou právnické kličky a zákony, je skutečnost malinko

jiná. Řeč totiž bude o internetových proxy serverech a právě jeden z překladů

klíčového slova proxy plná moc je původcem použitého a asi trochu zavádějícího

pojmenování.

Použitý název ale velice přesně vystihuje původní úkol proxy serverů umožnit

připojení počítačů z vnitřní sítě k Internetu. Tyto počítače jsou pak

nejčastěji z Internetu nepřístupné a jen díky proxy serveru mají možnost

kontaktu s okolním světem. Tato vlastnost ale pomalu ustupuje do pozadí a

daleko více se začíná využívat další, původně druhotná funkce umožňující

cachování jednotlivých dokumentů. Proxy server pak nejenom zvyšuje zabezpečení

sítě, ale zkracuje též čekací dobu na jednotlivé požadavky a šetří peníze

spojené se stahováním jednotlivých dokumentů.

Routovat, nebo proxovat?

Jak již bylo řečeno dříve, prvotním úkolem proxy serverů je zajistit připojení

interních firemních sítí do Internetu. Tento požadavek začal nabývat na

důležitosti zejména s klesajícím počtem volných IP adres a s rostoucími

požadavky na zabezpečení vnitřní sítě. Samozřejmě, proxy server není jedinou

možností, existuje ještě několik dalších variant. Asi největší uplatnění pak má

packet–filtering firewall (tedy zařízení, které filtruje vstupní a výstupní

pakety a ty pak předává dále). Právě porovnáním těchto dvou metod se nejlépe

ukážou výhody a nevýhody proxy serverů, protože asi stejně budete uvažovat

jednu z těchto variant.

Hlavní rozdíl vyplývá z operačních možností jednotlivých metod. Zatímco proxy

server pracuje v aplikační vrstvě modelu OSI, je doménou packet-filtering

firewallu síťová vrstva. Je tedy zřejmé, že se proxy server může podívat, co je

obsahem jednotlivých dat, což nám druhá možnost nenabízí. Proxy server tak

umožňuje definovat daleko lepší zabezpečovací politiku a lépe sledovat síť,

ovšem za cenu vyšších provozních nákladů. Na druhou stranu packet-filtering

firewall neumožňuje definovat tak přesné podmínky, má ale daleko menší náklady.

V prvním případě tak nejenom můžete udržovat seznam důvěryhodných počítačů,

které mohou přistupovat k některým službám a nebo naopak sloužit jako

poskytovatelé služeb, ale lze i sledovat obsah těchto spojení a zabránit

přenosu některých informací. Můžete tak umožnit některým klientům pouze

nahrávat z vašeho FTP serveru a ne již stahovat soubory. Lze tak filtrovat

obsah přenášených dat pomocí protokolu HTTP, a zabránit tak stahování informací

neslučitelných s firemní morálkou anebo jen pro ušetření šířky pásma nestahovat

reklamní bannery. Za to samozřejmě platíte větší složitostí proxy serveru a tím

i větším potřebným výkonem. Ten je třeba také pro případný caching dokumentů,

které proxy servery poskytují vlastně jakoby bokem a není to jejich primární

úkol. Hlavní nevýhodou je pak právě ona složitost, pro každý webový servis musí

totiž proxy server poskytovat specializovaný modul, který danou službu

zpřístupňuje. Pokud totiž proxy server neumí například protokol RealAudio, pak

máte smůlu a písničku z Internetu si jen tak lehce nepřehrajete.

Z předchozího odstavce pak jasně vyplývají plusy a minusy druhého řešení. V

případě packet-filtering firewallu dostáváte do rukou relativně jednoduchý

aparát, který vám umožní definovat pouze seznam počítačů a služeb, mezi kterými

je spojení buď povoleno, nebo zakázáno. Jen velice těžce můžete ovlivňovat nebo

kontrolovat obsah přenášených dat, v žádném případě pak nelze hovořit o

možnosti logování, které je naopak u proxy serverů velice lehké. Výhodou je ale

vysoká rychlost a žádné další nutné konfigurování na klientské straně.

Nevýhodou je pak možnost napadnout skryté počítače pomocí změny zdrojové IP

adresy packet spoofingem.

Záleží tedy jen na vás, čemu dáte přednost. Obě varianty mají určité výhody a

nevýhody, přesto se zdá, že poslední dobou vyhrávají proxy servery, zejména

díky své druhé funkci cache.

Šetříme linku

I v této části věnované cachování lze vysledovat systém, který lze použít pro

srovnávání a vy ho již určitě znáte. Jedná se o webový caching pomocí

vyrovnávacích pamětí a podrobnější zmínka o něm již tento rok byla, a to

konkrétně v Technology Worldu číslo 4/2000. I zde jsou klady a zápory zřejmé

téměř na první pohled. Hlavním kladem proxy serverů je zejména jejich cena,

přizpůsobivost a rozšiřitelnost. Zatímco specializované hardwarové webové

vyrovnávací paměti mají výhodu ve větší rychlosti a téměř nulových nákladech na

správu. Nevýhodou je pak jejich specializace, kdy cachují vlastně jen HTTP

požadavky a ostatní protokoly nechávají ladem. Pokud tedy intenzivně používáte

protokol FTP nebo news servery, nemůže vám takovéto zařízení příliš pomoct.

Na druhou stranu nemůžete od proxy serverů očekávat žádné zázraky, cachování

požadavků je sice velice užitečná věc, přesto zájmy a hlavně nabídka serverů je

tak obsáhlá, že jen velice zřídka ušetříte více něž 30 % požadavků. Vlastní

problematika, které dokumenty udržovat v cache a které ne, se velice podobá

magii. Různé metody dávají rozdílné výsledky v závislosti na velikosti použité

paměti a na struktuře stránek. Obecně lze říci, že se nejčastěji setkáte s

následujícími metodami:

Random algoritmus náhodně vybere stránku, kterou z cache vymaže

LRU (least recently used) odebrán je nejpozději použitý dokument

TTL (time to live) odstraněny jsou stránky, kterým již brzy vyprší jejich čas

platnosti

LCP (least caching profit) k destrukci jsou vybrány stránky s nejmenším

profitem, tedy takové, které se rychle znovu nahrají a jsou málo čtené

Mezi těmito metodami se velice těžko vybírá, každá má nějaké výhody a nevýhody.

První metoda je jednoduchá, a proto rychlá, ale nepříliš účinná. Další metody

pak mají lepší výsledky, ale jsou zase výpočetně složitější, a je proto opravdu

těžké vybírat. Takové malé srovnání můžete vidět na grafu, který ovšem v

konkrétních podmínkách může vypadat úplně jinak.

Vlastní funkčnost

Zatím byla řeč pouze o výhodách a nevýhodách takového proxy serveru a možná by

bylo vhodné podívat se i na vlastní funkčnost takového zařízení, která je

velice jednoduchá. Vlastní proxy server byl poprvé představen v dubnu roku 1994

a velice zjednodušeně lze říci, že se jedná o spojení serveru a klienta do

jednoho produktu. Proxy server totiž leží někde mezi klientem, pro nějž se

tváří jako server, a službu poskytujícím serverem, vůči kterému pracuje jako

klient. Takové funkční schéma pak vidíte na obrázku na str. 11, kde je nahoře

starý mechanismus klient-server a dole pak s využitím proxy serveru.

Pro klienta v tomto případě dochází jen k malé změně, kterou bude nejlepší

ilustrovat na příkladu s protokolem HTTP. V případě, že klient nepoužívá proxy

sever, dojde nejprve k navázání spojení s daným serverem a pak k vyslání

požadavku o konkrétní dokument, např. GET /info/index.html. V případě použití

proxy serveru je schéma jen trochu jiné, klient naváže spojení s proxy serverem

a pošle mu požadavek včetně celého jména, tedy např. GET

http://www.cw.cz/info/index.html. Tento požadavek proxy server zanalyzuje a pak

postupuje podobně jako klient v prvním případě. Vrácený dokument pak uloží do

cache a předá žádajícímu počítači.

Znovu caching

Je tedy vidět, že celý princip je relativně jednoduchý. Poněkud obtížnější

situace nastává v případě cachování. V takovém případě se proxy server musí

rozhodnout, jestli je dokument dostatečně aktuální. Protože na celé komunikaci

je často nejhorším problémem vlastní navázání spojení, byla vyvinuta i

speciální úprava protokolu pro komunikaci mezi proxy a webovým serverem. Ta

spočívá v dodání další hlavičky If-Modified-Since, která umožňuje předání

dokumentů pouze tehdy, došlo-li k modifikaci v daném čase.

Ovšem ani toto vylepšení tvůrcům proxy serverů nestačilo a honba za ušetřením

přenášené kapacity vedla k sdružování takovýchto serverů do funkčních bloků

nejčastěji distribuovaných anebo hierarchických proxy serverů. V takovém

případě jsou servery spojeny rychlou sítí a klientský požadavek se pokouší

vyřešit společně. K tomu jim slouží buď protokol ICP, anebo nověji CARP (Cache

Array Routing Protocol). Pokud tedy není první proxy server schopen vyřešit

požadavek, sám vyšle dotaz na ostatní proxy servery a teprve v případě, že i

ony jsou bezradné, dochází k předání požadavku do Internetu.

Vybírání

Takovéto sdružování se ale vyplatí jen v opravdu velkých firmách, pro praktické

použití stačí obyčejný proxy server, kterých je na trhu nepřeberné množství.

Hlavní důraz by měl asi být kladen na zabezpečení a na podporované protokoly.

Určitě by měly být podporovány protokoly HTTP, FTP, SSL, Telnet, NNTP, SMTP a

POP3, tedy alespoň pro základní použití. Nemusíte se ovšem v žádném případě

omezovat, nabídka je v tomto případě určitě větší než poptávka. Od public

domain až po složitá komerční řešení. Potěšitelné může být, že existuje i

široká nabídka českých řešení, jako je třeba 602Pro Lan Suite nebo WinProxy.

Takže pokud nějaký takový proxy server vybíráte, zkuste se nejprve podívat na

česká řešení, nejsou totiž v žádném případě špatná.

0 0326 / als