INTERNET4U

Jak na Internet server ? (9)

Tentokrßt nßs Φekß problematika nazvanß

Proxy server

Nejprve je nutnΘ si uv∞domit, co je to proxy server (nebo tΘ₧ proxy gateway). Proxy server je jakßsi roura (kterß m∙₧e nap°φklad vΘst skrze protipo₧ßrnφ ze∩ vaÜφ sφt∞...), p°es nφ₧ prochßzejφ p°φstupy k urΦit²m slu₧bßm jinde, v naÜem p°φpad∞ vn∞ naÜφ sφt∞ - na Internetu. V praxi jsou nejznßm∞jÜφ proxy pro WWW (resp. pro http), dßle znßme tΘ₧ ftp proxy, Gopher proxy a WAIS proxy. Pokud to celΘ p°itßhneme pon∞kud za vlasy, m∙₧e existovat tΘ₧ telnet proxy, mail proxy atd. Proxy server se jevφ obvykle u₧ivateli jako naprosto transparentnφ. UrΦitou v²hodou WWW proxy je to, ₧e sprßvce serveru na druhΘ stran∞ spojenφ neznß IP adresu a jmΘno u₧ivatelskΘ pracovnφ stanice, ale jen adresu proxy.

Ve chvφli, kdy se objevila prvnφ WWW proxy gateway, napadlo jejφ autory, ₧e by mohla fungovat takΘ jako cache (uklßdß dokumenty, je₧ putujφ p°es nφ, na sv∙j lokßlnφ disk), Φφm₧ je mo₧nΘ snφ₧it traffic na vaÜφ p°φpojce k Internetu a samoz°ejm∞ takΘ na Internetu samotnΘm a tΘ₧ zrychlit p°φstup u₧ivatel∙m k dokument∙m, kterΘ ji₧ tahal n∞kdo p°ed nimi a z∙staly v cache. Cel² systΘm se naz²vß proxy cache a samoz°ejm∞, Φφm mß k dispozici vφce diskovΘho prostoru na HTML dokumenty, tφm pracuje lΘpe. UrΦitou nev²hodou proxy cache je vÜak to, ₧e n∞kterΘ strßnky b²vajφ pravideln∞ aktualizovßny a proxy server si toho prost∞ nevÜimne (zde vÜak pom∙₧e funkce reload vaÜeho prohlφ₧eΦe), tuto chybu se vÜak mj. sna₧φ odstranit inovace protokolu http ve verzi 1.1.

Kdy₧ pak byla hotova i proxy cache, kohosi z t²mu vyvφjejφcφho proxy cache znßmou jako Harvest napadlo, ₧e by se mohlo propojit vφce proxy cache server∙ do sφt∞ za sebou, Φφm₧ bude mo₧nΘ takΘ zrychlit p°φstup k dokument∙m a podstatn∞ ulehΦit internetov²m linkßm. A tak se jeden proxy server ptß dalÜφch, zda n∞jak² dokument nemajφ, pokud ano, tak si jej vezmou od nich a pokud nikoli, postupujφ p°es tyto proxy servery dßle (aby si danΘ strßnky mohli stßhnout i dalÜφ u₧ivatelΘ). Tak₧e spojenφ p°es sφ¥ proxy server∙ m∙₧e vypadat i takto:

V praxi to pak m∙₧e b²t nap°. (pokud jste p°ipojeni na CESNET) takto: vaÜe PC -> firemnφ proxy cache -> cache.cesnet.cz -> cache.ecrc.net (N∞mecko) -> cache.ans.net (U.S.A.) -> www.software.ibm.com. PoΦet u₧ivatel∙, kte°φ tak budou moci vyu₧φt strßnku sta₧enou na vaÜi ₧ßdost, nar∙stß geometrickou °adou. Jen dodßm, ₧e u nßs je sφ¥ proxy server∙ pom∞rn∞ hustß. Krom∞ cache.cesnet.cz je to tΘ₧ nap°. vultur.vslib.cz, na Video-On-Line proxy.vol.cz a i na sφt∞ n∞kter²ch dalÜφch provider∙, nap°. Datac, jsou p°ipojeny soukromΘ poΦφtaΦe, kterΘ nevlastnφ provider, a kterΘ proxy cache provozujφ. Jejich jmΘna vÜak jaksi zrovna nepat°φ mezi ta uve°ej≥ovanß).

A te∩ ale pozor. Jestli si myslφte, ₧e sφ¥ovou proxy cache umo₧≥uje provozovat proxy z Apache httpd, CERN httpd, nebo t°eba proxy z komerΦnφho Netscape Proxy serveru, pak si to nemyslete, nenφ tomu tak. Sφ¥ovou proxy zatφm umo₧≥uje provozovat jen jeden jedin² produkt a je jφm Squid, pokraΦovatel a nßsledovnφk programu Harvest (vyvφjen² dokonce t²m₧ t²mem). Squid pat°φ mezi freeware, k dispozici jsou i zdrojovΘ k≤dy, kterΘ umo₧≥ujφ jeho implementaci pod tΘm∞° jakoukoli platformu, zatφm Squid b∞₧φ na celΘ °ad∞ unixov²ch systΘm∙ vΦetn∞ Linuxu a pod operaΦnφm systΘmem OS/2. TakΘ se vßm zdß, ₧e to nenφ nßhoda, ₧e pod OS/2 existuje portace tΘm∞° jakΘhokoli unixovΘho programu, kde₧to pod Windows NT nikoli... ?

Tak₧e jak Squid zφskat ? Zkuste op∞t osv∞dΦenou metodu - nejv∞tÜφ ΦeskΘ ftp servery, pop°. Nosey Parkera, pokud nejste p°ipojeni k CESNETu, EUnetu, SpiNetu, CzechNetu Φi NetForce, zkuste rad∞ji ftp server sunsite.unc.edu (pop°. ftp.funet.fi), nebo si vezm∞te na pomoc AltaVistu a hledejte Squid. Poslednφ verze Squida mß v dob∞ vydßnφ tohoto p°φsp∞vku Φφslo 1.1.2, Φast∞ji se vÜak setkßte s pou₧φvßnφm starÜφ sΘrie (a na rozdφl od sΘrie 1.1.x takΘ neexperimentßlnφ) 1.0.x, kde je poslednφ verze 1.0.20.

Op∞t nßs Φekß rozbalenφ programem Tar (pop°. tΘ₧ Gzip,) a konfigurace. KonfiguraΦnφ soubor Squidu se jmenuje squid.conf a nalΘzß se (p°i instalaci Squidu na /usr/local/squid) obvykle v /usr/local/squid/etc. U konfigurace Squidu je pot°eba ji₧ o n∞co vφce p°em²Ület, nenφ to ji₧ tak jednoduchΘ jako nakonfigurovat Apache.

P°φklad konfigurace Squid pro naÜφ ukßzkovou sφ¥ je zde (jen pro dopln∞nφ uvedu, ₧e program Squid umφ jeÜt∞ °adu dalÜφch v∞cφ, jako t°eba omezenφ p°φstup∙ k server∙m atp., kterΘ pro jednoduchost vynechßvßm):

http_port 3128
icp_port 3130

cache_host vultur.vslib.cz parent 3128 3130
cache_host cache.cesnet.cz parent 3128 3130
cache_host proxy.ruk.cuni.cz parent 8080 8081

inside_firewall domena.cz
local_domain domena.cz
local_ip 200.0.5.0

single_parent_bypass off
source_ping off

neighbor_timeout 4
cache_mem 4
cache_swap 256
cache_swap_low 75
cache_swap_high 90
cache_mem_low 75
cache_mem_high 90

cache_dir /var/squid

cache_access_log /var/log/squid/access.log
cache_log /var/log/cache.log
cache_hierarchy_log /var/log/squid/hierarchy.log
cache_store_log /var/log/squid/store.log
emulate_httpd_log on
pid_filename /tmp/squid.pid
debug_options ALL,1

cache_ftp_program /usr/local/squid/bin/ftpget
ftp_user cache@domain.cz

cache_dns_program /usr/local/squid/bin/dnsserver
dns_children 5

http_stop /cgi-bin/
http_stop ?
gopher_stop ?

gopher 4 4320
http 4 4320
ftp 4 4320

request_size 300

ttl_pattern    ^http://       1440        20%      43200

ttl_pattern ^ftp:// 10080 20% 43200

ttl_pattern \.gif$ 2880 50% 43200

ttl_pattern /cgi-bin/ 0 0% 43200

quick_abort off
negative_ttl 5
positive_dns_ttl 360
negative_dns_ttl 5

connect_timeout 120
read_timeout 15
client_lifetime 200
shutdown_lifetime 30
clean_rate -1

acl manager proto cache_object
acl localhost src 200.0.5.65/255.255.255.0
acl all src 0.0.0.0/0.0.0.0

acl SSL_ports port 443 563
acl CONNECT method CONNECT

http_access deny manager !localhost
http_access deny CONNECT !SSL_ports
http_access allow all
icp_access allow all

cache_mgr root
cache_effective_user nouser nogroup
visible_hostname server.domena.cz
dns_testnames server.domena.cz
logfile_rotate 10

append_domain .domena.cz

Nejprve si musφme uv∞domit, kde chceme mφt cache s HTML dokumenty. Jß jsem pro tento ·Φel zvolil adresß° /var/squid. Pomocφ prom∞nn²ch 'cache_mem' a 'cache_swap' lze urΦit, kolik pam∞ti a mφsta na disku smφ Squid nejvφce vyu₧φvat. DalÜφ proxy servery, na n∞₧ se nßÜ proxy server mß obracet s dotazy, jsou definovßny pomocφ prom∞nnΘ 'cache_host'. Pomocφ neuvedenΘ prom∞nnΘ 'cache_host_domain' lze i urΦit, kter² proxy server se mß vyu₧φvat pro kterou domΘnu. Konfigurace koncovΘho proxy serveru je jeÜt∞ docela jednoduchß, ale p°edstavte si nap°. stovky cache_host a cache_hsot_domain polo₧ek v konfiguraci centrßlnφch proxy server∙ n∞kterΘ velkΘ ve°ejnΘ sφt∞.

DalÜφ v²znamnΘ prom∞nnΘ 'inside_firewall', 'local_domain' a 'local_ip' definujφ, na kterΘ systΘmy mß nßÜ proxy server p°istupovat p°φmo. Pokud tohle bude nakonfigurovanΘ Üpatn∞, nemusφ proxy server p°φstup k dokument∙m zrychlit, ale naopak znaΦn∞ zpomalit, a to platφ vΦetn∞ lokßlnφch dokument∙. DalÜφ prom∞nnΘ nastavujφ jmΘno systΘmu, jmΘno a skupinu u₧ivatele, s jeho₧ UID a GID Squid b∞₧φ. NedoporuΦuji m∞nit ty prom∞nnΘ, kterΘ nastavujφ ΦasovΘ prodlevy, prßci s DNS, porty jednotliv²ch slu₧eb atp., pokud naprosto p°esn∞ nevφte, co d∞lßte.

V²Üe uvedenß konfigurace Squid je relativn∞ chodivß a odzkouÜenß, tak₧e si u₧ijte proxy cache v provozu a p°φÜt∞ se sejdeme nad firewallem.

Zbyn∞k Pospφchal


HorkΘ novinky - ·nor '97 | HorkΘ novinky | internet4U homepage