Portál AbcLinuxu, 14. května 2024 08:32

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)

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