Portál AbcLinuxu, 9. května 2025 06:04

Privoxy - 3 (řízení přístupu)

19. 6. 2007 | Jiří Poláček
Články - Privoxy - 3 (řízení přístupu)  

V závěrečném díle popisujícím Privoxy se seznámíme s řízením přístupu klientů k serverům, směrováním požadavků nadřazeným proxy-serverům a s webovým uživatelským rozhraním.

Řízení přístupu na základě rozsahu IP adres

Nadešel čas seznámit se s dalšími dvěma direktivami primárního konfiguračního souboru – permit-access a deny-access – které, jak již názvy napovídají, povolují nebo naopak zakazují přístup. Obě direktivy mají stejné parametry – zdrojovou a (nepovinnou) cílovou adresu. Ty se zadávají číselně nebo pomocí doménového jména, nepovinná maska (jakožto počet bitů) následuje za lomítkem. Nuže mějme příklad:

permit-access  192.168.0.0/24
deny-access    192.168.0.7     www.zakazane-ovoce.cz

Privoxy čte konfiguraci následovně: komukoliv z domácí sítě (tj. v podsíti 192.168.0.x) je povolen přístup kamkoliv (chybějící cílová adresa značí žádné omezení), výjimkou je počítač s IP adresou 192.168.0.7, který má zakázaný přístup na web www.zakazane-ovoce.cz. Jiný příklad:

permit-access  10.0.0.0/8
deny-access    10.1.0.0/16
permit-access  10.1.2.0/24
permit-access  10.1.2.64/26    www.muni.cz/16
deny-access    10.1.2.100      www.muni.cz

Komukoliv z privátní sítě třídy A (10.x.x.x) je povolen přístup kamkoliv s výjimkou podsítě třídy B (10.1.x.x), odkud je naopak zamezen přístup kamkoliv. Zde však platí další výjimka pro podsíť třídy C (10.1.2.x), odkud je opět povolen přístup kamkoliv, pouze v 26bitové podsíti (10.1.2.64–127) je přístup povolen pouze do sítě třídy B, ve které se nachází server www.muni.cz (což v reálu znamená libovolný počítač v doméně Masarykovy univerzity). I zde však platí ještě jedna výjimka – počítač s IP 10.1.2.100 může přistupovat k libovolnému počítači MU s výjimkou univerzitního webového serveru.

Tento vyumělkovaný příklad demonstruje možnost vícenásobného používání direktiv permit-access a deny-access a zároveň ukazuje způsob jejich vyhodnocování: Dokud není žádná direktiva řízení přístupu použita, je přístup k proxy-serveru omezen pouze parametrem listen-address. V případě použití (byť jediné) direktivy řízení přístupu je náhle vše zakázáno a Privoxy komunikuje pouze s těmi klienty, jejichž adresa vyhovuje alespoň jednomu pravidlu permit-access a zároveň již nevyhovuje žádnému následujícímu pravidlu deny-access (jinými slovy poslední shoda vyhrává).

Potěšující je, že změny v řízení přístupu lze aplikovat za běhu Privoxy, bez restartu programu. Díky tomu jsem mohl v naší instituci připravit proxy-server, který obslouží jen autentizované klienty. Uživatelé zadají své přihlašovací údaje na zabezpečené webové stránce, ty jsou ověřeny vůči LDAP-serveru a v kladném případě je přidán do konfiguračního souboru Privoxy řádek permit-access s uživatelovou IP adresou. Od tohoto okamžiku mohou uživatelé začít proxy-server využívat.

Směrování požadavků

Vybrané požadavky klienta lze v Privoxy též přesměrovat nadřazenému proxy-serveru, který se může starat o kešování stránek, skrývání identity uživatele či prostě jen o přístup k Internetu. Směrování požadavků lze v základním konfiguračním souboru definovat direktivou forward:

forward   /      anon-proxy.example.org:8080
forward   :443   .

Příklad zkopírovaný z dokumentace snad nemůže být názornější – prvním parametrem je vzorek cíle, na který se má směrování uplatnit, druhým pak adresa a port nadřazeného proxy-serveru – tečka značí přímé připojení k požadovanému serveru.

Vícenásobné použití volby forward je povoleno s tím, že poslední shoda vyhrává, proto dle uvedeného příkladu budou všechny požadavky směrovány na anonymizující proxy-server s výjimkou zabezpečených spojení (SSL na standardním portu 443), které jsou směrovány přímo. Pro úplnost – pro směrování požadavků přes SOCKS-proxy lze použít direktivy forward-socks4 a forward-socks4a, podrobnosti viz dokumentace.

K řízení přístupu a směrování požadavků v Privoxy je vhodné poznamenat následující:

Webové rozhraní

Jak již bylo řečeno, Privoxy volitelně disponuje webovým rozhraním pro uživatelsky pohodlnější konfiguraci. Rozhraní je přístupné na adrese config.privoxy­.org (též lze použít zkratku p.p) a globálně umožňuje následující úkony:

Vypínání provádění akcí a editace konfiguračních souborů přes webové rozhraní nemusí být žádoucí v případě, že Privoxy neslouží jako osobní proxy-server jen jednomu uživateli. Proto lze v hlavním konfiguračním souboru nastavením parametrů enable-remote-toggle a enable-edit-actions na nulu tyto funkce vypnout, případně Privoxy kompilovat s volbami --disable-toggle a --disable-editor.

Šablony webových stránek

Webové rozhraní nejde vypnout (respektive nevypátral jsem jak), nicméně je možné jej sprovodit ze světa hrubou silou – smazat. V adresáři specifikovaném direktivou confdir se nachází podadresář templates obsahující desítky šablon webových stránek, které se používají jak pro webovou administraci (výchozí je šablona default), tak pro generování chybových stránek při přístupu na blokovanou (šablona blocked) či nedůvěryhodnou (šablona untrusted) stránku apod. Při nahlédnutí do zdrojových textů si lze ověřit, že se jedná o HTML doplněné o speciální makra a proměnné, které jsou v šablonách dobře zdokumentovány. Nic nám tedy nebrání v úpravách, šablony si můžeme lokalizovat, přizpůsobit jejich vzhled atd.

Se šablonami také souvisí doposud nezmíněné volby základního konfiguračního souboru:

user-manual
Lze specifikovat umístění manuálu k Privoxy, například pokud dáváte k dispozici lokalizovanou verzi. Výchozí hodnota samozřejmě směřuje k manuálu na webových stránkách Privoxy a používá se v šablonách k webové administraci.
trust-info-url
Odkaz, který se (mimo jiného) zobrazí při pokusu vstoupit na nedůvěryhodnou stránku. Může například vést na stránku s vysvětlením, proč se blokuje a co je dovoleno.
admin-address
Kontaktní e-mailová adresa správce proxy-serveru, která se zobrazuje na chybových stránkách.
proxy-info-url
Podobně jako v předchozím případě jsou šablony připraveny poskytovat tuto adresu na chybových stránkách s tím, že zde by měl klient nalézt informace o lokální instalaci Privoxy, pravidlech používání apod.

Nechť dobře slouží

Tímto je téma Privoxy prakticky vyčerpáno. Více informací lze najít v dobře dokumentovaných konfiguračních souborech a pak samozřejmě na webových stránkách tohoto proxy-serveru – www.privoxy.org.

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

První díl: Privoxy - 1 (blokování přístupu), poslední díl: Privoxy - 3 (řízení přístupu).
Předchozí 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

V sobotu se uskuteční konference CryptoFest
Pozor na androidové aplikace
Silent Circle představil bezpečný smartphone Blackphone 2
Android je bezpečnější, řada hrozeb však stále přetrvává
Avast varuje před nebezpečnými aplikacemi v Google Play

Diskuse k tomuto článku

19.6.2007 10:01 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše IPv6
Odpovědět | Sbalit | Link | Blokovat | Admin
Na SF existuje již několik let táhnoucí se vlákno ohledně podpory IPv6. V principu podpora je přichystaná, jen je POSIX-cetrická, takže ji správce nechce začlenit, protože by nebylo možné privoxy přeložit i pro kdejaký topinkovač :|

Jediný problém na který jsem narazil je listen-address, kde již nestačí uvést jen port :8118, ale je nutné určit celou adresu [::]:8118.

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