LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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 23327×

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

pridej.cz

 

DISKUZE

Squid 23.6.2004 15:16 Petr Zajíc
  L Re: Squid 23.6.2004 18:36 Petr Houštěk




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.5.2017 23:50 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).


Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

15.6.2017 9:34 / Ondřej Havlas
php,

10.6.2017 10:39 / Temple
sell home for cash

11.5.2017 23:32 / lelo
Re: Problém se správcem balíčků

11.5.2017 5:45 / davd mašek
Re: Problém se správcem balíčků

10.5.2017 22:54 / lelo
Re: Problém se správcem balíčků

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze