Portál AbcLinuxu, 20. dubna 2024 12:35

Privoxy - 1 (blokování přístupu)

21. 5. 2007 | Jiří Poláček
Články - Privoxy - 1 (blokování přístupu)  

Existuje nespočet užitečných programů, o kterých se moc neví. Jedním z nich je i Privoxy – šikovný proxy-server s mnohostranným využitím, který, ač je primárně zamýšlen jako osobní proxy, úspěšně nasazuji na servery již skoro šest let (pokud počítám i jeho předchůdce jménem Junkbuster). Třeba se bude líbit i vám.

Co tedy Privoxy umí?

Původním posláním Junkbusteru bylo, jak již název napovídá, blokování nežádoucích (z hlediska uživatele) reklamních bannerů a jiného podobného webového „smetí“. Postupem času – zejména po přerodu v Privoxy – se však z něj vyvinul více komplexní nástroj, jehož schopnosti by se obecně daly shrnout následovně:

Než se podíváme dále, co jednotlivé vlastnosti obnáší konkrétně, bude vhodné se maličko seznámit s instalací a způsobem konfigurace Privoxy.

Konfigurační soubory Privoxy

Pomineme-li šablony pro webové rozhraní, konfiguruje se Privoxy pomocí čtyř typů souborů umístěných ve stejném adresáři:

soubor config
Výchozí název základního konfiguračního souboru, mimo jiného zde specifikujeme síťové záležitosti, řízení přístupu a názvy ostatních konfiguračních souborů. Soubor se základní konfigurací lze zadat při spouštění proxy-serveru.
soubor s akcemi
Direktiva actionsfile v základním konfiguračním souboru – zde přiřazujeme vybraným webovým stránkám/doménám jednotlivé akce typu blokování či filtrování obsahu. Souborů s akcemi může být definováno více, uplatní se všechny.
soubor s filtry
Direktiva filterfile v základním konfiguračním souboru. Obsahuje soupis změn, které se mají s načítanou webovou stránkou provádět, souborů s filtry opět může být více.
soubor s důvěryhodnými weby
direktiva trustfile v základním konfiguračním souboru, obsahuje seznam webových stránek či domén, ke kterým je povolen přístup.

Konfigurační soubory Privoxy mají dvě příjemné vlastnosti – jsou nad poměry dobře dokumentovány a většina změn v nich se aplikuje ihned, bez nutnosti restartu programu, čehož se dá dobře využívat při dynamických změnách nastavení.

Instalace a spuštění

Privoxy zajisté najdete v repozitářích své distribuce, po instalaci byste ji měli hledat v prvé řadě mezi službami. Aktuální verze proxy-serveru nese označení 3.0.6, většina dále popisovaných funkcí je však přístupná již od (dva a půl roku staré) verze 3.0.3. Pro základní běh proxy-serveru může být základní konfigurační soubor relativně strohý:

confdir /etc
logdir /var/log/privoxy
actionsfile moje-akce
filterfile moje-filtry
logfile privoxy-log
jarfile cookies-prison
debug 512
listen-address 127.0.0.1:8118

Parametr confdir udává, kde se mají hledat další konfigurační soubory definované direktivami actionsfile, filterfile a (v ukázce nepoužitý) trustfile (viz minulý odstavec). Podobně logdir je cesta k adresáři s logovacím souborem (logfile) a volitelně s úložištěm zadržených cookies (jarfile). Parametr debug specifikuje činnosti, které se budou do logovacího souboru zaznamenávat; hodnota 512 znamená použití CLF (Common Log Format). Konečně listen-address udává rozhraní a port, na kterém proxy-server bude naslouchat požadavkům. Hodnota 127.0.0.1:8118 z příkladu je výchozí, tj. použije se i v případě, že tento parametr vůbec nebude zadán. Pokud bude zadán pouze port, Privoxy bude naslouchat na všech dostupných rozhraních.

Samozřejmě, aby Privoxy bylo k užitku, je zapotřebí nakonfigurovat prohlížeč, aby používal proxy-server naslouchající na zadané adrese a portu. Používání Privoxy lze ověřit na interní adrese config.privoxy.org (zkratka: http://p.p/), což je zároveň vstup do webové administrace (o ní se více zmíníme později).

privoxy: výchozí stránka webové administrace

Blokování přístupu k vybraným webovým stránkám či doménám

Tato vlastnost Privoxy má kořeny v původním poslání proxy-serveru k blokování reklam. Vychází z předpokladu, že reklamní prvky na stránkách se stahují ze známých umístění, respektive v typicky pojmenovaných doménách či cestách jako ads.example.com či www.example.com/banner. Privoxy umožňuje v souboru s akcemi spravovat „blacklisty“ nežádoucích domén či cest, přičemž v jejich definicích jsou povoleny zástupné znaky či regulární výrazy pro elegantní podchycení nejrůznějších situací. Malá ukázka:

{+block}
ad*.
.example.net/.*\.jpg
/(.*/)?ad(/|s|v|images|cycle|rotate|mentor|click|frame)
{-block}
adsl.
www.example.net/foto.jpg

Složené závorky uvozují příkazy proxy-serveru, v ukázce +block zapíná akci blokování a -block pak zpětně povoluje výjimky. Definice domény může být „neúplná“, například vzorek .firma. vyhoví jakékoliv doméně obsahující slovo firma, a může používat klasické zástupné symboly – * pro nula a více libovolných znaků, ? pro právě jeden znak a intervaly znaků v hranatých závorkách, například [1-5a-f]. Definice cesty začíná lomítkem a může obsahovat (Perl-kompatibilní) regulární výrazy.

S instalací Privoxy získáváme poměrně rozsáhlý seznam známých reklamních serverů a obecných pravidel pro blokování reklamy, který můžeme prakticky ihned začít využívat; zejména při brouzdání na zahraničních webech je docela dobře použitelný. Nic nám však nebrání využít této funkce pro blokování jinak nežádoucích stránek, respektive neblokovat nic a použít jinou zajímavou funkci tohoto proxy-serveru.

Povolení přístupu jen k vybraným webovým stránkám či doménám

Tato metoda na to jde s blokováním z druhé strany – budováním bílých listin, whitelistů. Při použití tohoto experimentálního režimu je vše blokováno a pouze to, co je uvedeno v bílé listině, je povoleno. Seznam důvěryhodných domén je veden v samostatném souboru (definován direktivou trustfile) a na rozdíl od podobného zápisu {+block} * {-block} povolena.domena.cz má lehce jinou syntaxi s drobnou vychytávkou:

~povolena.domena.cz
+duveryhodna.domena.cz

Řádek s vlnovkou na začátku předznamenává klasické povolení definované domény či cesty (opět je možné používat zástupné znaky v definici domény a regulární výrazy v popisu cest), zatímco znak plus na začátku nejenom že dané umístění povoluje, ale navíc sděluje, že veškeré odkazy v tomto umístění jsou také povolené.

Pokud bychom například chtěli za ukázkové konfigurace navštívit server www.zakazane-ovoce.cz, budeme zablokováni. Kdyby však libovolná webová stránka na serveru duveryhodna.do­mena.cz obsahovala odkaz na www.zakazane-ovoce.cz, budeme kliknutím na tento odkaz vpuštěni, navíc Privoxy dynamicky přidá odkazovanou doménu do seznamu povolených (ovšem s vlnovkou na začátku a samozřejmě pouze v případě, že se v tomto seznamu již nenachází). Pro příště tak bude možné navštívit okusit zakázené ovoce přímo, bez přístupu skrze „důvěryhodného odkazovatele“ (trusted referrer).

privoxy: ukázka zablokování přístupu na nedůvěryhodnou stránku

Sluší se dodat, že vstup na „nedůvěryhodnou“ stránku si lze vynutit, pokud nebylo Privoxy přeloženo s parametrem --disable-force. Stačí v URL mezi doménu a cestu dopsat „vynucovací“ řetězec, obvykle privoxy-force. Zneplatní to však všechny relativní odkazy na stránce, takže lze očekávat stránku bez stylů a bez obrázků, viz obrázek.

privoxy: vynucení přístupu na nedůvěryhodnou stránku

Příště

Druhý díl povídání o Privoxy se zaměří na změny hlaviček a obsahu načítaných stránek, zmíníme též manipulaci s cookies a další drobné vychytávky tohoto proxy-serveru.

Seriál Privoxy (dílů: 3)

První díl: Privoxy - 1 (blokování přístupu), poslední díl: Privoxy - 3 (řízení přístupu).
Následující díl: Privoxy - 2 (pozměňování obsahu)

Související články

Kompletní proxy server přes modem
HTun: Strč prst skrz proxy
Čo keď nechodí sieť?
Nastavení DNS
OSPF - dynamické routování

Odkazy a zdroje

privoxy.org

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

Diskuse k tomuto článku

21.5.2007 00:23 jiri.b | skóre: 30 | blog: jirib
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Odpovědět | Sbalit | Link | Blokovat | Admin
no uz se tesim na dalsi dil, abych konecne vytunnil privoxy s tor aby nebylo poznat verzi klienta, os atd... :)
21.5.2007 08:28 zippy
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
v default.action (u mna v /etc/privoxy) staci pridat niekde na koniec: {+hide-user-agent{Internet Explorer/1.0(MS DOS 6.22 i286} }
21.5.2007 08:55 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Pouzivanim privoxy na abicku si zadelate na potize
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
21.5.2007 09:04 jiri.b | skóre: 30 | blog: jirib
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
to je teda sofistikovane :)))))))))
21.5.2007 09:11 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Není to jen otázka správného nastavení proxy?
21.5.2007 09:22 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
To je otazka na lidi, kteri jej pouzivaji. Zda se da takovata "featura" vypnout.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
Jiří Poláček avatar 21.5.2007 10:19 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Nepochybně je to otázka správné konfigurace, v tomto případě nejspíš bude na vině maskování refererů. Rozhodně však jde v Privoxy pro vybrané weby neprovádět žádné kejkle a magie, což lze pro abclinuxu.cz jen doporučit.
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
21.5.2007 10:55 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Dalibor Smolík avatar 21.5.2007 10:21 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Program tor a privoxy používám jako anonymní proxy server. Občas se to hodí :-) Program je třeba pro tento účel doinstalovat ještě jako plug-in do Firefoxu.
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
21.5.2007 13:44 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Privoxy - 1 (blokování přístupu)
Plug-in není třeba, záleží jen jestli chce mít člověk jednoduchou možnost tor s privoxy vypnout, nebo se bez ní obejde.
21.5.2007 11:03 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Účinnost
Odpovědět | Sbalit | Link | Blokovat | Admin
Poměrně úderně působí množství zablokovaných požadavků, které se na mé konfiguraci dlouhodobě drží kolem 1/4.
21.5.2007 11:06 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Syntaxe URL
Odpovědět | Sbalit | Link | Blokovat | Admin
Je dobré si pozorně pročíst dokumentaci. Syntaxe pro doménovou část a část cesty se liší. Na doménovou část se používá globing podobný tomu z shellu, na cesty se používá PCRE (je-li zakompilováno).

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.