ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Polipo

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Polipo {en} ist ein cachender Webproxy ähnlich wie Privoxy. Im Vergleich zu diesem ist Polipo kleiner und schneller, besitzt aber nicht die selben Fähigkeiten wenn es um das Blocken von Werbung oder Cookies und generelle Header-Manipulation geht.

Wer diese Aufgaben aber eh nicht mit Privoxy sondern mit seinem Browser regelt und ausschließlich einen Webproxy braucht um zum Beispiel als Schnittstelle für Tor zu dienen, für den stellt Polipo eine schlanke Alternative dar.

Installation

Das Programm kann aus den Paketquellen von Ubuntu über das Paket

  • polipo (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install polipo 

sudo aptitude install polipo 

installiert [1] werden.

Benutzung

Nach der Installation wird der Polipo-Dienst automatisch gestartet. Will man dass Polipo nicht automatisch beim Booten gestartet wird muss man es aus den Runleveln löschen [3].

Polipo im Browser aktivieren

Damit man über Polipo surfen kann muss man in seinem Browser in den jeweiligen Netzwerk-Einstellungen Polipo als Proxy eintragen. Als Server- oder Hostadresse gibt man localhost bzw. 127.0.0.1 an und als Port, den Port an welchem Polipo lauscht (standardmäßig 8123).

Konfiguration

Die Konfigurationsdatei von Polipo liegt in /etc/polipo/config und kann mit einem Editor [4] mit Root-Rechten [5] verändert werden. Wenn man Einstellungen an Polipo vornimmt muss man den Dienst neustarten [6] damit die Einstellungen aktiviert werden. Zum Neustarten gibt man folgenden Befehl ein:

sudo /etc/init.d/polipo restart

Weiterleitung einrichten

Möchte man Polipo auf einen Socks-Proxy (wie zum Beispiel Tor) weiterleiten lassen muss man in der Konfigurationsdatei das Kommentar-Zeichen (#) vor diesen zwei Zeilen entfernen und der Adresse : Port-Kombination und der Art des Socks-Proxys füllen. Wenn die Zeilen nicht existieren, muss man sie neu hinzufügen. Für einen Socks5-Proxy der am lokalen Rechner an Port 9050 lauscht sehen sie so aus :

socksParentProxy = "127.0.0.1:9050"
socksProxyType = socks5

Zu Beachten: Der "localhost" funktioniert hierbei als socksParentProxy nicht, Polipo resigniert mit einer "Host not Found" Fehlermeldung im Browser.

Caching deaktivieren

Soll Polipo nicht cachen, also keine Webinhalte zum schnelleren Zugriff auf der Festplatte zwischenspeichern muss man in der Konfigurationsdatei das Kommentar-Zeichen (#) vor dieser Zeile entfernen:

# diskCacheRoot = ""

Privatsphäre

Einige der wenigen Optionen die Polipo zum Schutz der Privatsphäre bietet können in der Konfigurationdatei festgelegt werden. Dazu erstellt man in dieser Datei eine Zeile:

censoredHeaders = OPTION1,OPTION2,OPTION3,...

Mögliche Optionen sind: from,Accept-Language,User-Agent die den jeweiligen Part aus den zu versendenen Headern der HTTP-Requests rauslöscht. Außerdem kann man die Zeile:

censorReferer = true|false|maybe

erstellen, wobei true bedeutet, dass kein Referrer versand wird, false, dass einer versandt wird und maybe, dass ein Referrer nur versandt wird, wenn er von der gleichen Seite stammt die man besucht.

Will man zum Beispiel den Accept-Language- und den User-Agent-Header entfernen und den Referer permanent unterdrücken würden die beiden Zeilen so aussehen:

censoredHeaders = Accept-Language,User-Agent
censorReferer = true

URLs blocken

Polio bietet auch eine rudimentäre ganz-oder-garnicht Funktion zum Blocken von Webseiten an, unterstützt dabei aber auch reguläre Ausdrücke. Diese ist in der Datei /etc/polipo/forbidden und kann mit einem Editor [4] mit Root-Rechten [5] verändert werden. Standardmäßig enthält die Datei schon einige auskommentierte Beispiele die die Funktionsweise verdeutlichen.

Logging deaktivieren

Standardmäßig ist das Ubuntu/Debian-Paket von Polipo so eingestellt, dass es eine Logfile erstellt in der bisweilen bei Fehlern auch URL's gespeichert werden. Der Standardpfad für die Logdateien ist /var/log/polipo/.

Um das Loggen zu deaktivieren öffnet man mit einem Editor [4] mit Root-Rechten [5] die Datei /usr/lib/polipo/polipo-control und entfernt in Zeile 19:

DAEMON_OPTS="-c $CONFIG_FILE pidFile=$PIDFILE daemonise=true LogFile=$LOGFILE"

die Option LogFile=$LOGFILE. Nun muss man in der Datei /etc/polipo/config die folgenden zwei Zeilen einfügen:

logSyslog = false
logFile = "/dev/null"

Nach einem Neustart wird Polipo nun keine Logfiles mehr anlegen.

Fehlerbehebung

Object not in Cache..

Bekommt man so oder eine so ähnliche Meldung im Browser, wenn man versucht durch Polipo zu surfen sollte man mal im Terminal den folgenden Befehl ausführen:

ps aux | grep polipo | grep -v "grep" 

Die Ausgabe kann in etwas so aussehen:

proxy     6001  0.0  0.3   4852  3520 ?        Ss   17:55   0:00 /usr/bin/polipo -c 
/etc/polipo/config pidFile=/var/run/polipo/polipo.pid daemonise=true logFile=/var/log/polipo/polipo.log
forbiddenFile=/etc/polipo/forbidden proxyOffline=true

Entscheiden ist die letzte Option proxyOffline. Steht diese auf true bedeutet dies, dass Polipo nur im Offline-Betrieb arbeitet. Das kann zwei Ursachen haben. Entweder man hat in der /etc/polipo/config die Option proxyOffline = true gesetzt oder man leidet unter einem momentanen Bug {en} in Polipo.

Das Problem entsteht, weil Polipo gestartet wird bevor eine Netzwerkverbindung besteht und deswegen automatisch in den Offline-Modus versetzt wird. Um das Problem zu beheben fügt man erstmal in der Datei /etc/polipo/config die Zeile:

proxyOffline = false

ein. Danach öffnet man die Datei /usr/lib/polipo/polipo-control und ersetzt ungefähr in Zeile 24 den folgenden Text:

if /sbin/route -n | grep  ^0.0.0.0 > /dev/null; then

durch diesen:

if  [ `grep -v "#" /etc/polipo/config | grep proxyOffline | sed s/" "//g | sed s/proxyOffline=//` = "false" ] || /sbin/route -n | grep  ^0.0.0.0 > /dev/null;then

Nach einem Neustart des Rechners sollte das Problem behoben sein.

ubuntuusers.local › WikiPolipo