Privoxy und Webcleaner im Test

Aus LinuxUser 08/2005

Privoxy und Webcleaner im Test

Torwächter

Bild: A.25.04.819 Normalerweise hat ein Nutzer kaum Kontrolle darüber, welche Daten über den Browser auf seinen Rechner ein- und ausgehen. Content-Filter helfen, sowohl die Privatsphäre des Surfers zu wahren als auch die Werbeflut einzudämmen.

Content-Filter bieten dem oft ungezügelten Datenverkehr zwischen Browser und Webserver Einhalt und übermitteln nur die Inhalte, die der Anwender auch übertragen möchte. Das gilt sowohl für eingehenden Traffic, den ein Content-Filter von Werbung, Webbugs, Cookies, ungewolltem Javascript und sonstigem Ungemach befreit, als auch für ausgehende Daten, die der Filter auf das gewünschte Maß reduziert.

Als positiver Nebeneffekt erhöht sich mit dem Verwenden von Content-Filtern bei richtiger Konfiguration auch der Schutz vor Sicherheitslöchern in Browsern, die nach wie vor in leidiger Regelmässigkeit auftreten.

Im folgenden besprechen wir Privoxy [1] und Webcleaner [2]. Beide arbeiten als Content-Filter, jedoch mit unterschiedlichen Intentionen: Während sich Privoxy auf das Filtern von Web-Inhalten beschränkt, verfügt Webcleaner über diverse Zusatzfunktionen wie Virenfilter und Image-Kompressor.

Funktionsweise

Content-Filter arbeiten wie Proxy-Server als Vermittlungseinheit zwischen Browser und Web-Server. Um sie zu nutzen, leiten Sie den Webzugriff des Browsers auf die Adresse den Content-Filters um, indem Sie in den Verbindungseinstellungen Ihres Browsers die IP-Adresse und den Port des Content-Filters eintragen. Arbeitet der Filter auf dem lokalen Rechner, handelt es sich hier um die Adresse 127.0.0.1 (“localhost”).

Privoxy

Der auf Junkbuster basierende Privacy Enhancing Proxy – kurz Privoxy – arbeitet als reiner Content-Filter ohne Zwischenspeicherung (Caching). Anders als ein reiner URL-Filter prüft das Programm den gesamten Inhalt einer Webseite anhand vordefinierter Regeln.

Installation

Privoxy steht für alle gängigen Distributionen als fertiges RPM-oder DEB-Paket zur Verfügung. Aktivieren Sie unter Debian das Repository Universe und installieren Sie Privoxy mit dem Befehl apt-get install privoxy. Unter Suse 9.3 richten Sie das Programm mittels Yast von Ihrem Installationsmedium ein. Beachten Sie, dass Yast das Programm in einer Chroot-Umgebung installiert. Der Pfad zu den Konfigurations- und Log-Dateien lautet /var/lib/privoxy/.

Abbildung 1: Auf das wesentliche reduziert präsentiert sich der Startbildschirm von Privoxy.

Abbildung 1: Auf das wesentliche reduziert präsentiert sich der Startbildschirm von Privoxy.

Konfiguration

In der Grundeinstellung bindet sich Privoxy an den Localhost (127.0.0.1). Soll der Content-Filter auch für andere Rechner erreichbar sein, ändern Sie in der Konfigurationsdatei /etc/privoxy/config den voreingestellten Wert listen-address 127.0.0.1:8118 auf die Adresse des LAN-Interfaces, zum Beispiel 192.168.0.1. Fehlt die IP-Adresse, bindet sich der Dienst an alle Netzwerkschnittstellen, was speziell bei Rechnern mit direktem Zugang zum Internet nicht zu empfehlen ist.

Die Konfiguration der Filtereinstellungen erfolgt über das Webinterface, das Sie über die Adresse http://privoxy.org/config erreichen. Zuvor müssen Sie jedoch Privoxy in Ihrem Browser als Proxy eintragen. Für Debian-basierte Systeme gilt es diese Funktion jedoch zuerst zu aktivieren. Suchen Sie dazu in der Konfigurationsdatei /etc/privoxy/config nach den Einträgen enable-remote-toggle und enable-edit-actions und setzen Sie die Werte jeweils auf 1. Im Anschluss an die Änderungen starten Sie das Programm mit dem Aufruf /etc/init.d/privoxy restart neu. Da Privoxy nicht über eine Benutzerauthentifizierung verfügt, darf in dieser Einstellung jeder User die Filtereinstellungen verändern, der Zugriff auf den Content-Filter hat.

Filter

Privoxy unterscheidet zwischen Filter- und Action-Files. Der Filter umfasst Regeln wie beispielsweise das Löschen von Bannern bestimmter Größe. Die Action-Files stellen eine Zuordnung zwischen Regeln und Adressen her. Letztere reichen von einfachen URLs bis hin Ersetzungen, welche ganze Kategorien wie Adressfragmente von Advertising-Seiten umfassen. ad*.example.com betrifft zum Beispiel alle Subdomain-Namen der Domain example.com, in denen ad gefolgt von einer beliebigen Zeichenkette vorkommt.

Hasta la vista, Baby

Die Standard-Filterdatei (/etc/privoxy/default.filter) umfasst bereits eine grosse Anzahl von Regeln. Änderungen sollten Sie nur vornehmen, wenn Sie im Umgang mit mit Regular Expressions vertraut sind. Eine Einführung dazu lesen Sie im aktuellen Heft auf Seite 90. Da Privoxy kein Frontend zum Editieren der Filter-Files vorsieht, nehmen Sie Änderungen mit einem Texteditor Ihrer Wahl vor. Das folgende Beispiel erdeutlict den Aufbau der Filterregeln:

FILTER: LinuxUser Beispiel einer Regel
s/regen(?!.com)/Sonne/ig

FILTER: definiert eine neue Klasse, gefolgt vom Filternamen (LinuxUser) und dem Beschreibungstext (Beispiel einer Regel). Die Web-GUI von Privacy zeigt den Filter mit diesen Angaben an. Die zweite Zeile enthält die eigentliche Regel. In diesem Fall ersetzt sie alle Zeichenketten namens regen durch Sonne. Eine Klasse kann aus beliebig vielen solcher Regeln bestehen, welche Sie im Webfrontend über einen einfachen Mausklick aktivieren. Einige fertige Filterlisten stehen im Internet zum Download [4] bereit.

Abbildung 2: Erstellte Regeln bindet Privoxy im Webfrontend ein.

Abbildung 2: Erstellte Regeln bindet Privoxy im Webfrontend ein.

Und … Action!

Die beste Regel hilft nichts, wenn kein Ziel vorhanden ist, um sie anzuwenden. Hier kommen die Action-Files ins Spiel. Sie bestehen aus den Dateien user.action und default.action. Beide editieren Sie über Privoxys Web-GUI, das Sie über die Adresse http://config.privoxy/show-status erreichen. Im Aufbau identisch, unterscheiden die beiden Dateien sich in ihrer Intention. Während die default.action globale Verhaltensweisen vorgibt, legen Sie in der user.action spezifische Anwendungsfälle fest.

Die Datei default.action umfasst Regularien, die immer dann zutreffen, wenn zuvor keine anderen Regeln greifen. Für Einsteiger bietet Privoxy drei vordefinierte Policies, über welche Sie per Mausklick die Wirkung des Filters von “vorsichtig” (Cautious) bis “abenteuerlich” (Adventuresome) einstellen.

Die nachfolgenden Sektionen beinhalten Policies für die Behandlung von Adressen und Adressfragmenten. Sie beschreiben beispielsweise den Umgang mit Werbung und Ads anhand von URL-Mustern wie ad*. oder *banner*.. Die Konfiguration der globalen Einstellungen beschränkt sich für Sie im wesentlichen darauf, eine der Default-Policies zu bestimmen.

Benutzerdefinierte Regeln erstellen Sie im Abschnitt user.action. Blockt Privoxy bestimmte Inhalte Ihrer Lieblingsseite, prüfen Sie über den Link http://config.privoxy.org/show-url-info, welche Filter dafür verantwortlich sind. Erstellen Sie nun im Abschnitt user.action mit einem Klick auf den Button Insert new Section at top eine neue Sektion und fügen Sie darin mit einem Klick auf den Button Add die URL der betreffenden Webseite ein. Edit zeigt alle in der Datei default.filter hinterlegten Regeln, welche auf diesen speziellen Fall zutreffen. In der Grundeinstellung stehen diese auf No Change – also keine Veränderung. Alle in diesem Abschnitt gewählten Einstellungen haben Vorrang vor den Default-Policies.

Abbildung 3: Hat der User einmal das Prinzip verstanden, ist das erstellen eigener Aktionen ein Kinderspiel.

Abbildung 3: Hat der User einmal das Prinzip verstanden, ist das erstellen eigener Aktionen ein Kinderspiel.

Work in Progress

Im täglichen Gebrauch fällt Privoxy kaum auf. Die Ladezeit verringert sich auch bei umfangreicheren Webseiten kaum. Generell gilt es jedoch darauf zu achten, dass der Rechner, auf dem Privoxy läuft, nicht zu schwach dimensioniert ist. Das untere Limit liegt bei einer mit 500 MHz getakteten CPU und 256 MByte Hauptspeicher.

Die meisten Webseiten stellt das Programm auch mit der Filtereinstellung Cautious korrekt dar. Ist dies nicht der Fall, steht ein URL-Prüfer zur Verfügung, der Aufschluß darüber gibt, welche Regeln für die Seite zutreffen. Er ist jedoch nicht wirklich übersichtlich strukturiert. So hat der User nach wie vor das Problem, aus dem Wust an Regeln jene herauszufinden, welche letztendlich für die unkorrekte Darstellung verwantwortlich zeichnet.

Wird eine Seite komplett geblockt, bietet Privoxy den Alternativlink go there anyway an. Dieser deaktiviert den Content-Filter temporär für die aufgerufene Seite. Zum schnellen Ein-und Ausschalten stellt das Programm so genannte Bookmarklets bereit. Diese öffnen Sie, in dem auf der Startseite http://config.privoxy.org den Link Privoxy - Toggle Privoxy anklicken. Es erscheint ein kleines Popup, über welches Sie Privoxy bequem ein- und ausschalten.

Privoxy: Fazit

Ein großes Lob gebührt den Entwicklern für die vorbildiche Dokumentation. Sie beschreibt jedes Feature des Programms im Detail und leicht verständlich. Die Kombination aus Filter-und Action-Files erscheint zwar auf den ersten Blick verwirrend, erweist sich bei näherer Betrachtung jedoch als sehr gute Lösung.

Insgesamt hinterlässt Privoxy einen ausgereiften und durchdachten Eindruck. Im Test läuft es ohne Fehl und Tadel. Seine Aufgabe, die angezeigten Webseiten von Werbung zu befreien und die Privatsphäre des Users zu schützen erfüllt das Programm auch in der Grundeinstellung nahezu perfekt.

Webcleaner

Der zweite Kandidat im Test ist Webcleaner, das mit einer nahezu unglaublichen Feature-Liste aufwarten kann. Neben Content-Filterung werben die Entwickler noch mit Fähiggkeiten wie Komprimierung und Größenanpassung von Bildern, Virenfilter sowie Erkennung und Korrektur bekannter HTML-Fehler.

Installation

Da Webcleaner in erster Linie für Debian entwickelt wurde, gestaltet sich die Installation auf Systemen wie Ubuntu am einfachsten. Das Programm lässt sich grundsätzlich auch auf anderen Distributionen einrichten, was jedoch – speziell unter Suse Linux – mit erheblich mehr Aufwand verbunden ist.

Als Basis benötigt Webcleaner runit sowie den Python-Interpreter in der Version 2.4 inklusive der Entwickler-Pakete. Zum Kompilieren aus den Quelldateien benötigen Sie daneben einen C-Compiler wie gcc.

Um den vollen Funktionsumfang des Webcleaners zu nutzen, müssen Sie zudem im Vorfeld einige weitere weiterer Programme und Libraries installieren. Dies betrifft:

  • PIL (Python Image Libraries) – für die Komprimierung und Größenänderung von Bildern
  • Open-SSL und Python-openssl – um den Content-Filter auch auf SSL-verschlüsselte Webseiten anzuwenden
  • Clamav (clamd) – zur Nutzung des des Virenfilters

Optional können Sie auch die Python-Erweiterung psyco installieren. Sie führt laut Angaben der Programmierer zu einer Performance-Verbesserung bei der Übersetzung von Python-Skripten um den Faktor 2 bis 100. Allerdings weist sie einen hohen Speicherbedarf auf.

Unter Debian installieren Sie die notwendigen Pakete über apt-get oder das Frontend Synaptic. Unter Suse 9.3 müssen Sie runit, psyco und PIL von Hand einrichten; die restlichen Pakete finden Sie auf dem Suse-Installationsmedium.

Installation

Entpacken Sie den Tarball mit dem Befehl tar xfvz webcleaner-2.29.tar.gz und wechseln Sie in das neue entstandene Verzeichnis. Starten Sie nun den Kompiliervorgang mit dem Befehl ./configure && make. Speziell unter Debian kann es vorkommen, dass das Skript wegen fehlender Libraries (/lib/cpp) abbricht. Installieren Sie in diesem Fall das Paket openC++ und wiederholen sie den Aufruf.

Im Anschluss kompilieren Sie die Python Dateien mit dem Befehl python setup.py build. Die Eingabe von python setup.yp install richtet den fertig kompilierten Webcleaner auf Ihrem Rechner ein.

Möchten Sie die Filterfunktion des Proxies auch für verschlüsselte Webseiten nutzen, installieren Sie die dafür notwendigen Zertifikate mit dem Befehl webcleaner-certificates install. Abschließend richten Sie mit dem Befehl make installservice den Webcleaner als Daemon ein, welcher von runit überwacht wird und direkt im Anschluss startet. Erstellen Sie unter Suse zuerst das Verzeichnis /var/service/, bevor Sie das Skript starten.

Konfiguration

Webcleaner lässt sich sowohl direkt oder als so genannter Parent Proxy über Squid ansprechen. Letzteres erreichen Sie am einfachsten, indem Sie die auf der Heft-CD enthaltene Datei squid.conf in das Verzeichnis /etc/squid/ kopieren. Die Verbindungskette verläuft dann vom Browser über Squid zum Webcleaner und von dort ins Internet. Möchten Sie diese Variante nutzen, tragen Sie in Ihrem Browser 3128 als Verbindungsport zum Proxy ein. Beachten Sie, dass die Konfigurationsdatei der Heft-CD nur Zugriffe vom lokalen Rechner auf Squid zulässt. Möchten Sie diesen auch von anderen Rechnern aus erreichen, erweitern Sie die Konfiguration um folgende Einträge:

…
060 acl localnet src 192.168.0.0/255.255.0.0
…
097 http_access allow localnet
…

Auf direktem Weg erreichen Sie Webcleaner über Port 8080, welchen Sie in die Verbindungseinstellungen Ihres Browsers eintragen. Die Konfiguration von Webcleaner erfolgt über ein Web-Frontend, das Sie über die Adresse http://127.0.0.1:8080 erreichen. Vor dem ersten Aufruf ist es notwendig, ein von Webcleaner generiertes Passwort in die Konfigurationsdatei einzutragen. Kopieren Sie dazu das generierte MD5-Passwort im Konfigurationsskript /usr/share/webcleaner/config/webcleaner.config hinter den Eintrag adminpass= und starten Sie Webcleaner mit dem Aufruf kill -HUP Prozess-ID neu. Im Anschluss melden Sie sich mit dem Usernamen admin und dem Plaintext-Passwort, welches unter dem MD5-Passwort angezeigt wird, erneut an der Webseite an.

Grundlegende Einstellungen das Programmes finden Sie unter dem Menüpunkt Proxy Configuration. Der Kasten Proxy filter modules fasst alle zur Verfügung stehenden Filtermodule zusammen. Die wichtigsten davon sind

  • Blocker – der URL-Filter
  • compress – komprimiert übertragene Dateien
  • header – verändert, modifiziert und löscht HTTP-Header
  • Image Reducer – komprimiert Bilder in ein niedrig auflösendes und dadurch Volumen sparendes JPEG-Format.
  • Rewriter – parst HTML- und Javascript-Code und schreibt diesen um
Abbildung 4: Die Kommandozentrale des Webcleaners.

Abbildung 4: Die Kommandozentrale des Webcleaners.

Im unteren Bereich des Fensters legen Sie im Abschnitt Allowed Hosts fest, welche Rechner sich am Proxy anmelden dürfen. Unter Don't filter Hosts tragen Sie Rechner ein, die ungefilterte Inhalte empfangen dürfen.

Der Abschnitt Filter configurations umfasst Regeln, welche auf Dateien anzuwenden sind. Die Einträge in der linken Spalte stellen Verzeichnisse dar, die beim Klick in der mittleren Spalte die enthaltenen Regeln anzeigen. Ein Mausklick auf eine bestehende Regel öffnet in der rechten Spalte ein Konfigurationsmenü, über welches Sie die Regeln editieren können. Zum Erstellen einer neuen Regel klicken Sie auf den Schalter New rule. Er öffnet – abhängig vom gewählten Eintrag aus der nebenstehenden Drop-Down-Auswahl – auf der rechten Seite ein Konfigurationsmenü, in das Sie die gewünschte Aktion eintragen.

Im Abschnitt Content rating legen Sie fest, welche Webseiten wie zu bewerten sind. Im Test nahm Webcleaner hier Eingaben nur sporadisch an.

Luftschlösser

Im Test zeigt Webcleaner teils erhebliche Schwächen. Mit aktiviertem Virenfilter funktionieren Downloads entweder gar nicht oder nur sehr unzuverlässig. Der Aufruf einer präparierten Webseite, die einen aktuellen Browser-Exploit enthält, führt zum Absturz des Testrechners. Das SSL-Gateway verweigert im Test komplett den Dienst. Der Aufruf einer verschlüsselten URL liefert eine leere Seite. Das Web-Interface übernimmt einige Einträge willkürlich, andere gar nicht.

Auch die Dokumentation zu Webcleaner hilft bei solchen Problemen nicht weiter, da sie kaum echten Aufschluß über die Arbeitsweise des Programms vermittelt. In Verbindung mit der schwer verständlichen Filterkonfiguration erweist sich die Bedienung des Programmes als kompliziert. Eine Nachfrage der Redaktion zu diesen Kritikpunkten beim Initiator des Projektes blieb bis Redaktionsschluss unbeantwortet.

Einen klaren Vorteil von Webcleaner gegenüber Privoxy stellt die Benutzer-Authentifizierung dar, die sowohl den Zugriff auf das Konfigurations-Frontend als auch die Benutzung des Proxies regelt.

Webcleaner: Fazit

Webcleaner zeigt durchaus gute Ansätze, die aber in der Menge der aufgetretenen Bugs untergehen. Der größte Trumpf gegenüber anderen Programmen – der Virenfilter – versagt im praktischen Einsatz den Dienst. Andere Features, wie Image Reducer und Dateikomprimierung, kommen beim Einsatz auf dem lokalen Rechner nicht zum Tragen.

LinuxUser 08/2005 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben