Aplikační brána (nebo také proxy) je typ firewallu, který pracuje na úrovni aplikační vrstvy. Poskytuje nám prostředky pro řízení a monitorování síťového provozu aplikačních služeb jako jsou http, ftp a další. Výhodou oproti klasickým firewallům je, že autentizace probíhá podle uživatelů, a ne podle IP adres, nevýhodou nutná úprava aplikací běžících za firewallem.
Aplikační brána se jeví z pohledu klientské aplikace jako server a z pohledu cílového serveru, jehož služby chce klient využívat, jako klient. Mezi klientem a cílovým (zdrojovým) serverem je vytvořeno virtuální spojení, které vytváří, řídí a kontroluje proxy server. Podstatnou výhodou některých proxy serverů je, že požadována data klientem po serveru si uloží do vyrovnávací paměti (do cache) pro případ pozdějšího výskytu podobného požadavku (tzv. cachovací proxy servery).
Webová cache se řadí mezi webový server a klienta nebo více klientů
a snaží se sledovat jejich požadavky na HTML stránky, obrázky a jiné
soubory (dále jen objekty) a příchozí data pak ukládat... Důvodem tohoto
řešení je zvýšení odezvy na další příchozí požadavky, neboť můžou být vyřízeny
prostřednictvím cache (je blíže klientovi) a ne samotným zdrojovým
serverem, a snížení síťového provozu, neboť každý objekt se po
serveru žádá a přenáší jen jednou.
Webovou cache lze implementovat na úrovni webového prohlížeče nebo
právě zmiňovaného proxy serveru, což umožňuje odbavovat najednou více klientů.
Cachování objektů lze ovlivnit definicí příslušných hlaviček HTTP
protokolu (verze 1.0 a 1.1) nebo konfigurací cachovacího systému, jako
je např. proxy server.
Zpracování HTTP požadavku proxy serverem se ve stručnosti řídí
následujícími pravidly:
Podpora cachování objektů je zahrnuta do HTTP protokolu od verze 1.0 ve
formě hlaviček, které specifikují "čerstvost" a
"platnost" objektu. Jejich detailní popis lze nalézt v RFC1945 a RFC2068.
Expires: Fri, 30 Oct 1998 14:19:41 GMT <-- čas ve formátu GMT
Cache-Control: max-age=3600, must-revalidate <-- životnost je 1 hodina Cache-Control: no-cache <-- neukládat Cache-Control: public <-- ukládat, i když by se to nemělo
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
ETag: W/"xyzzy" If-None-Match: W/"xyzzy"
<meta http-equiv=Pragma content="no-cache"> <-- často nepoužitelné
Pragma: no-cache <-- často nepoužitelné
HTTP/1.1 200 OK Date: Thu, 03 Apr 2003 17:29:01 GMT Server: Apache/1.3.23 (Unix) (Red-Hat/Linux) mod_ssl/2.8.7 OpenSSL/0.9.6b Cache-Control: max-age=3600, must-revalidate Expires: Fri, 04 Apr 2003 17:29:01 GMT ETag: "7c00c-b4a-3d10a97a"-0 Last-Modified: Wed, 19 Jun 2002 15:55:38 GMT Content-Type: text/html; charset=us-ascii
Squid je velice
výkonný cachovací proxy server s podporou pro HTTP, FTP, GOPHER a jiné
protokoly.
Podporuje SSL, komplexní řízení přístupových práv, podrobné logování
zpráv a běží na většině dnes známých operačních
systémech postavených na bázi UNIXu.
Aktuální stabilní verze 2.5 je k dispozici na této stránce
(docela rychle se vyvíjí) nebo na FTP.
Privoxy neboli Privacy
Enhancing Proxy je HTTP proxy server, který spravuje cookies, kontroluje obsah webových stránek,
odstraňuje z nich reklamy a různé bannery a potlačuje tvorbu
tzv. vyskakovacích oken (pop-ups). Není cachovacím proxy serverem.
Privoxy je založen na projektu Junkbuster (viz níže).
Návod k použití na Linuxu (RedHat):
Junkbuster je další z
proxy serverů blokující v HTTP komunikaci reklamní banery a
neautorizované cookies ("Bust the junk out of your web browsing").
Aktuální verze 2.0.2 je ke stažení zde.
TIS Firewall Toolkit (TIS FWTK, Trusted
Information Systems Internet Firewall Toolkit) je komplexní
firewallové řešení pro zabezpečení sítě.
Součástí jsou:
Socks5 je proxy server filtrující
protokoly FTP, telnet a jiné, není klasickou HTTP proxy.
Squid je sice výkonným proxy serverem, ale pro dosažení
uspokojivých výsledků vyžaduje opravdu kvalitní
hardware, zejména pak rychlý pevný disk a dostatečnou pamětovou
kapacitu.
Jinak konfigurace squidu je umístěna v souboru /etc/squid.conf
(nebo v adresáři /etc/squid/) a cachované objekty si většinou ukládá
do adresáře /var/spool/squid.
Kromě nastavení serveru je ještě nutné nastavit klientské
aplikace (webové prohlížeče apod.).
Pokud máme k dispozici RPM balíček, stačí rpm -Uvh "jméno balíčku".
Pro kompilaci ze zdrojáků vystačíme s:
Veškerá konfigurace proxy serveru se odehrává v souboru
squid.conf (sice v adresáři /etc/squid/ je souborů více, podstatný ale
je hlavně squid.conf). Implicitní konfigurák squid.conf je velice
rozsáhlý a při běžném použití vystačíme s pouhým zlomkem voleb v něm
uvedených.
Pro pokročilejší řízení přístupu k proxy serveru se používají tzv. Access Control Listy. Jde o velice flexibilní metodu, jak omezovat přístup uživatelů, ale zároveň je to jedna z naročnějších částí konfigurace!
acl lab.fi.muni.cz src 10.0.0.0/255.255.255.0 <-- ACLs acl all src 0.0.0.0/0.0.0.0 http_acces allow lab.fi.muni.cz <-- povolí http_acces deny all <-- zakáže
acl agaue-alpha src 10.0.20.1 acl morning time 06:00-11:00 http_access agaue-alpha morning <-- povolí přístup v dopoledních hodinách
acl foo proxy_auth username <-- ověřovat uživatele username acl foo proxy_auth REQUIRE <-- ověřovat všechny uživatele http_access allow foo
Pro zvýšení efektivity cachování lze proxy server nastavit tak, že
pokud nenajde požadovaný objekt ve své cachi, nebude hned
kontaktovat zdrojový server objektu, ale pokusí se jej nejdříve najít
na jiných (sousedních) serverech. Komunikace mezi servery probíhá
protokolem ICP (RFC2186, RFC2187).
cache_peer cache.myparent.example parent 3128 3130
Logovací soubory squidu obsahují často velice cenné informace, z
nichž lze např. vyčíst, k čemu se na netu přistupuje, co se v cachi
ukládá, zda-li nastaly nějaké chyby při činnosti serveru, spotřeba diskové a paměťové
kapacity apod.
Squid je založen na těchto logovacích souborech:
calamaris.pl < access.log > stats.htmlDalší nástroje: squidclients, squidtimes, pwebstats ...