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