ubuntuusers.de

Polipo

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/service.png Polipo 🇬🇧 ist ein HTTP-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, Cookies oder generelle Header-Manipulation geht.

Wer diese Aufgaben aber sowieso über einen Werbeblocker im Browser regelt und ausschließlich einen Webproxy braucht, der zum Beispiel als Schnittstelle für Tor dient, für den stellt Polipo eine schlanke Alternative dar.

Die Weiterentwicklung wurde zwischenzeitlich eingestellt, da laut Programmautor heute die meisten Datenströme verschlüsselt sind, was die Filterung über einen einfachen Webproxy wie polipo unmöglich macht.

Installation

Das Programm kann aus den offiziellen Paketquellen installiert [1] werden:

  • polipo (universe)

Paketliste zum Kopieren:

sudo apt-get install polipo 

Oder mit apturl installieren, Link: apt://polipo

Benutzung

Nach der Installation wird Polipo als Dienst automatisch gestartet.

Polipo im Browser aktivieren

Damit man über Polipo surfen kann, muss man im Browser Polipo als Proxy eintragen (siehe auch Proxyserver). Als Server- oder Hostadresse gibt man localhost bzw. 127.0.0.1 an. Der Port, an welchem Polipo lauscht, ist standardmäßig 8123.

Konfiguration

Die Konfigurationsdatei von Polipo liegt in /etc/polipo/config und kann mit einem Editor [2] mit Root-Rechten [3] verändert werden. Wenn man Änderungen vorgenommen hat, muss man den Dienst neu starten, damit die Einstellungen aktiviert werden:

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 zwei Zeilen entfernen und die Kombination IP-ADRESSE:PORT und die Art des Socks-Proxys ergänzen. Wenn die Zeilen nicht existieren, kann man sie einfach 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: localhost funktioniert hierbei als socksParentProxy nicht, Polipo reagiert mit der Fehlermeldung Host not Found, die statt der gewünschten URL im Browser auftaucht.

Caching deaktivieren

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

# diskCacheRoot = ""

und den entsprechenden Pfad eintragen.

Privatsphäre

Einige der wenigen Optionen, die Polipo zum Schutz der Privatsphäre bietet, erfolgen über folgende Zeile:

censoredHeaders = OPTION1,OPTION2,OPTION3,...

Mögliche Optionen sind: from, Accept-Language oder User-Agent, um den jeweiligen Abschnitt aus den Headern der HTTP-Requests zu löschen. Außerdem kann man die Zeile:

censorReferer = true|false|maybe

erstellen, wobei true bedeutet, dass kein Referrer gesendet 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 Referrer permanent unterdrücken, würden die beiden Zeilen so aussehen:

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

URLs blocken

Polio bietet eine rudimentäre Funktion zum Blocken von Webseiten an (ganz oder gar nicht), unterstützt dabei aber auch reguläre Ausdrücke. Welche Webseiten blockiert werden, steht in der Datei /etc/polipo/forbidden. Diese kann mit einem Editor und Root-Rechten angepasst werden. Standardmäßig enthält die Datei schon einige auskommentierte Beispiele, die die Funktionsweise verdeutlichen.

Logging deaktivieren

Das Ubuntu-/Debian-Paket von Polipo so vorkonfiguriert, dass ein Protokoll erstellt wird, in dem bisweilen (bei Fehlern) auch URLs gespeichert werden. Der Standardpfad für die Logdateien ist /var/log/polipo/. Um das Loggen zu deaktivieren, öffnet man mit einem Editor mit Root-Rechten die Datei /usr/lib/polipo/polipo-control und entfernt in Zeile 19:

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

am Ende die Option LogFile=$LOGFILE. Anschließend 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.

Problembehebung

Object not in Cache

Erhält man diese oder eine ähnliche Meldung im Browser, wenn man versucht, über Polipo zu surfen, sollte man mal im Terminal den folgenden Befehl ausführen:

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

Die Ausgabe kann z.B. 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

Entscheidend ist die letzte Option proxyOffline. Steht diese auf true, bedeutet dies, dass Polipo nur im Offline-Betrieb arbeitet. Das kann zwei Ursachen haben. Entweder hat man in der Datei /etc/polipo/config die Option proxyOffline = true gesetzt oder man ist von einem Fehler 🇬🇧 in Polipo betroffen.

Das Problem entsteht, weil Polipo unter Umständen gestartet wird, bevor eine Netzwerkverbindung besteht und deswegen automatisch den Offline-Modus aktiviert. Um das Problem zu beheben, fügt man zuerst 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.

Diese Revision wurde am 30. Januar 2020 21:06 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Anonymität, Proxy, Internet, Server, Netzwerk