LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

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

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ů

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 ...

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