Squid – část I
Jak nejspíš víte, Squid je proxy cache server. Má mnoho
využití - k zrychlení přístupu na webové servery nakešováním opakovaných
žádostí, k zamezení přístupu na stránky s nevhodným nebo pornografickým
obsahem, ... Squid je velmi robustně naprogramován a je vyvíjen pod GPL.
23.6.2004 08:00 |
Petr Houštěk
| Články autora
| přečteno 27467×
Kešování je způsob, jak ukládat vyžádané objekty z Internetu na server blíže
klientovi. Lokální cache pak může ušetřit jak přístupovou dobu, tak kapacitu
linky. Squid také poskytuje určitou úroveň bezpečnosti a anonymity.
Díky své licenci můžete Squid provozovat na téměř všech unix-like operačních
systémech. Předpokládejme, že používáte linux :-) Instalace je vcelku snadná -
pro detaily se podívejte sem.
Samozřejmě můžete použít předkompilovaný balíček z vaší oblíbené distribuce.
Když máme nyní Squid nainstalovaný, stačí ho pouze zkonfigurovat. Konfigurační
soubory jsou implicitně uloženy v adresáři /usr/local/squid/etc, ale ve vaší
distribuci to může být jinde (např. v Debianu je squid.conf v /etc, další
soubory jsou v /usr/lib/squid, ...). Squid používá množství implicitních
nastavení, takže ho lze pustit i téměř prázdným konfiguračním souborem, což
ovšem není příliš užitečné, protože pak Squid odmítá přístup veškerým
klientům.
Základní konfigurace
První volba v konfiguračním souboru squid.conf, která by nás mohla zajímat je
http_port. Ta nastavuje port, na kterém bude Squid poslouchat - může zde být
více než jedno číslo (například 3128 a 8080).
Dále potřebujeme nastavit umístění naší cache pomocí volby cache_dir. První
parametr udává kde se má ukládat, pak její velikost v megabajtech, počet
podadresářů v první a druhé úrovni (je doporučováno tyto dvě hodnoty neměnit a
ponechat původní).
Další z důležitých konfiguračních nastavení je cache_mem, která udává množství
paměti, kterou může Squid alokovat během své činnosti (konkrétně pro
in-transit, hot a negative objects).
Nyní zbývá povolit uživatelům používat proxy. Použijeme toto dočasné řešení k
oprávnění všech uživatelů - detaily budou rozebrány v následující sekci o acl.
acl all src 0.0.0.0/0.0.0.0
http_access allow all
Nyní máme základní konfiguraci hotovou a můžeme spustit poprvé Squid. Můžete
tedy zkusit nastavit svůj prohlížeč, aby ho použil.
Access control list – ACL
Další velmi důležitou věcí jsou ACL. Základní forma autentizace by totiž
měla být vždy použita. Primárním cílem ACL je zastavit neoprávněné uživatele
používat vaši proxy.
Jsou zde dva elementy acl - třídy (classes) a operátory (oprators). Třída
určuje množinu konexí, se kterými se má pracovat. Tato množina může být určena
pomocí ip, typu http žádosti, přípon souborů, autorizace uživatelů, ... Třídy
jsou pak zpracovávány operátory (již jsme se setkali s operátorem
http_access), které můžou povolit přístup, přesměrovat žádost, ...
ACL třídy
Základní syntax je
acl jméno typ string1 string2 ...
Squid pracuje s těmito typy tříd - zdrojová a cílová ip adresa, zdrojová a
cílová doména, regulární výraz odpovídající vyžádané doméně, URL, ..., slova v
URL, slova v cílové nebo zdrojové doméně, aktuální čas, cílový port, protokol
(HTTP, FTP), metoda spojení, typ prohlížeče, jméno/heslo, SNMP komunita, ...
Určující řetězec (string1, ...) se používá k přiřazení spojení k danému acl.
Squid nejdříve ověří typ a podle type rozhodne, jak použít určující řetězec.
Ten může být ip adresa počítače, sítě, regulární výraz, ... Podívejme se nyní
na základní třídy.
Zdrojová/cílová ip adresa
Nejprve si ukážeme příklad,
acl myNet src 192.168.0.0/255.255.0.0
http_access allow myNet
K tomuto acl jsou přiřazeny všechny adresy od 192.168.0.0 do 192.168.255.255 a
je jim povolen přístup do cache. Všechny ostatní konexe budou odmítnuty. Squid
totiž přidává na konec další acl operátor - http_access deny all, pokud
poslední řádka přístup povoluje, nebo http_access allow all, pokud poslední
řádka přístup zamítá. Například pokud máte tuto sadu acl
acl myIP src 192.168.5.13
acl badNet src 192.168.5.0/255.255.255.0
http_access allow myIP
http_access deny badNet
Squid zamezí veškeré spojení ze sítě 192.168.5.0/255.255.255.0 (kromě adresy
192.168.5.13). Pokud se ale připojíte z jiné sítě (řekněme z adresy
192.168.1.13), Squid toto spojení akceptuje.
K přiřazení spojení do acl vzhledem k cílové ip adrese Squid používá typ dst -
použití je podobné.
Zdrojová/cílová doména
Tato třída přiřazuje žádosti podle zdrojové nebo cílové domény. Tyto typy jsou
srcdomain a dstdomain. Není moc doporučované používat acl přiřazení podle
zdrojové domény, protože útočník, který kontroluje reverzní DNS záznamy pro
svůj počítač, je schopen změnit tyto záznamy a obejít srcdomain acl.
Dstdomain přiřazuje spojení podle cílové domény. Toto lze použít například k
blokaci určitých domén s pornografickým obsahem, ... Vyplatí se také blokovat
ip adresu cíle, protože jinak by byl přístup možný při dotazu na číselnou
ip adresu těchto stránek. Zde je příklad, jak zablokovat doménu
www.example.com, která má ip adresu 10.11.12.13. Vstup pak je
acl badDomain dstdomain example.com
acl badIP dst 10.11.12.13
acl myNet src 192.168.0.0/255.255.0.0
acl all src 0.0.0.0/0.0.0.0
http_access deny badDomain
http_access deny badIP
http_access allow myNet
http_access deny all
Regulární výrazy
Pomocí zatím popsaných tříd můžete pouze filtrovat www stránky podle cílových
domén. Značení založené na regulárních výrazech vám umožňuje použít daleko
preciznější filtrování. Regulární výrazy ve Squidu jsou implicitně
case-sensitive, opačného chování lze dosáhnout pomocí prefixu -i. Regulární
výrazy použité Squidem jsou velmi podobné regulárním výrazům např. v Perlu.
Pokud chcete např. zakázat přístup všem požadavkům, které obsahují slovo sex
(nebo SEX, SEx, atd.), použijte např. toto
acl badUrl url_regex -i sex
K označení všech souborů s video obsahem (bráno podle přípony)
acl badUrl url_regex -i \.avi
je možné také použít kombinace
acl badUrl url_regex -i sex.\*\.avi
Regulární výrazy lze také použít ke kontrole zdrojových a cílových domén -
příslušné třídy jsou srcdom_regex a dstdom_regex.
Aktuální čas
Tato třída přiřazuje požadavky vzhledem k aktuálnímu systémovému času. Častým
využitím je filtrovat nevhodné stránky během pracovní doby. Toho lze docílit
vhodnou kombinací s třídou dstdomain (nebo dstdom_regex). Syntax je
následující
acl jméno čas [seznam_dní] [počátek-hodina:minuta-konec-hodina:minuta]
Dny jsou zde reprezentovány jedním znakem - S - neděle, M - pondělí, T -
úterý, W - středa, H - čtvrtek, F - pátek, A - sobota. Pro víkendy tedy můžeme
použít
acl weekends time SA
Cílový port
Pro http komunikaci je určen port 80, který se také nejvíce používá (na tomto
portu téměř každý webový server poslouchá). Některé servery ale poslouchají i
na jiných portech, jako např. 8080. SSL spojení používají port 443. Implicitně
je v squid.conf definován seznam Safe_ports (bezpečných portů):
acl Safe_ports port 80 21 443 563 70 210 1025-65535
což znamená, že spojení na cílové porty 80, 21, 443, 563, 70, 210, 1025, 1026,
..., 65534, 65535 budou zahrnuty v acl Safe_ports. K zamezení přístupu na
ostatní porty můžeme např. použít
http_access deny !Safe_ports
Metoda spojení
Http podporuje několik metod spojení - get, post a connect. Get se používá pro
download, post pro zasílání informací a connect hlavně pro ssl spojení.
Typickým příkladem použití je blokovat metodu connect pro jiná než ssl
spojení. Tato metoda totiž umožňuje posílat data v obou směrech v libovolném
čase, takže pokud máte nesprávně zkonfigurovanou proxy, může být zneužita ke
spojení např. na vzdálený telnet server z proxy serveru a tím obejít paketové
filtry. Můžete použít tento příklad
acl connect_method method CONNECT
acl SSL_PORTS port 443 563
http_access deny connect_method !SSL_PORTS
To by bylo asi vše o acl třídách, v příštím díle budu pokračovat s acl operátory.
Verze pro tisk
|
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|