<html> <h2 id=„privoxy-proxy“>Privoxy Proxy</h2> <h3 id=„vorstellung“>Vorstellung</h3> <div class=„level3“ readability=„40“> <p><a href=„https://www.privoxy.org/“ class=„urlextern“ title=„https://www.privoxy.org/“>Privoxy</a> (<a href=„http://jvauzb4sb3bwlsnc.onion/“ class=„urlextern“ title=„http://jvauzb4sb3bwlsnc.onion/“>Tor Onion Service</a>) ist der Nachfolger des in den 90er Jahren bekannten <a href=„https://en.wikipedia.org/wiki/Internet%20Junkbuster“ class=„interwiki iw_wpen“ title=„https://en.wikipedia.org/wiki/Internet Junkbuster“>Junkbuster</a> Filter-Proxy. Anders als z. B. der <a href=„https://de.wikipedia.org/wiki/Squid“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Squid“>Squid</a> oder <a href=„https://de.wikipedia.org/wiki/Polipo“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Polipo“>Polipo</a> Proxy ist Privoxy kein Proxy mit <a href=„https://de.wikipedia.org/wiki/HTTP%20Caching“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/HTTP Caching“>HTTP Caching</a>, der in einem Cache bereits abgerufene Inhalte zwischenspeichert. Privoxy verfügt dafür wie die erwähnten Proxys ebenfalls über Merkmale und Funktionen, die Absicherung und Anonymisierung von Internetanwendungen unterstützen, die das unverschlüsselte HTTP- und das verschlüsselte HTTPS-Protokoll verwenden oder Schnittstellen zur Verwendung von HTTP/HTTPS Proxys aufweisen:</p> <ul readability=„16“><li class=„level1“ readability=„14“> <p>Weiterleitung des Datenverkehrs von Internetanwendungen an HTTP/HTTPS und <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet03#das-socks-protokoll“ class=„wikilink1“ title=„open:anon:netzwerk:anet03“>SOCKS</a> Proxys und damit an Anon-Netze und -Anwendungen, die SOCKS- oder HTTP-Schnittstellen aufweisen. Zusätzlich mit optionaler Anweisung an diese Anwendungen, den Datenverkehr an einen nachgeschalteten HTTP-Proxy weiterzuleiten.</p> </li> <li class=„level1“ readability=„4“> <p>Steuerung und Manipulation der ausgesendeten Anfrage-Kopfzeilen der Internetanwendungen (Clients) und der empfangenen Antwort-Kopfzeilen der Server.</p> </li> <li class=„level1“ readability=„9“> <p>Filterung und Blockierung des Empfangs und Versands von Daten und Inhalten aus unverschlüsselten HTTP-Datenströmen. Da Privoxy kein <a href=„https://pinboard.in/u:kraven/t:%C3%BCberwachung_internet_ssl_proxy“ class=„interwiki iw_pinboard“ title=„https://pinboard.in/u:kraven/t:überwachung_internet_ssl_proxy“>HTTPS/SSL Proxy</a> mit <a href=„https://de.wikipedia.org/wiki/Man-in-the-middle-Angriff“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Man-in-the-middle-Angriff“>MITM</a> Funktionen ist, trifft das nicht auf verschlüsselte HTTPS-Datenströme zu.</p> </li> <li class=„level1“ readability=„8“> <p>Regelwerk aus Aktionen und Filtern mit Unterstützung von <a href=„https://de.wikipedia.org/wiki/Wildcard%20(Informatik)“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Wildcard (Informatik)“>Wildcards</a> und Perl-kompatiblen <a href=„https://de.wikipedia.org/wiki/Regul%C3%A4rer%20Ausdruck“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Regulärer Ausdruck“>Regulären Ausdrücken</a> (<a href=„https://de.wikipedia.org/wiki/Perl%20Compatible%20Regular%20Expressions“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Perl Compatible Regular Expressions“>PCRE</a>), mit dem obige Funktionen allgemein oder spezifisch ausgeführt bzw. angewendet werden können.</p> </li> </ul><p>Wie für <a href=„https://de.wikipedia.org/wiki/Proxy%20(Rechnernetz)“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Proxy (Rechnernetz)“>Proxys</a> typisch, wird Privoxy dafür als lokal installierter Proxy-Server zwischen die Internetanwendungen und die SOCKS- oder HTTP-Schnittstelle des verwendeten Anon-Netzes geschaltet. In der Beschreibung des Privoxy Pakets wird Privoxy so charakterisiert:</p> <p>„HTTP-Proxy zur Verbesserung der Privatsphäre. Privoxy ist ein Web-Proxy mit fortschrittlichen Filterfähigkeiten zum Schutz der Privatsphäre, Filterung von Webinhalten, Cookieverwaltung, Zugriffskontrolle und Entfernung von Werbung, Bannern, Pop-ups und anderem unbeliebten Internet-Müll. Privoxy ist sehr flexibel konfigurierbar und kann an individuelle Bedürfnisse und den eigenen Geschmack angepasst werden. Privoxy kann sowohl in eigenständigen Systemen als auch in Mehrbenutzernetzwerken angewendet werden.“<br/></p> </div> <h2 id=„installation-und-start“>Installation und Start</h2> <h3 id=„per-apt-repository“>per APT-Repository</h3> <div class=„level3“ readability=„6“> <pre class=„code console“> sudo aptitude install privoxy </pre></div> <h3 id=„kompilierung“>Kompilierung</h3> <div class=„level3“ readability=„39“> <p>Wer Privoxy selbst kompiliert kann folgende Konfigurationsoptionen übergeben, um die Funktionen zu erweitern und Privoxy abzusichern:</p> <p> <table class=„inline c4“ readability=„7“><col class=„c2“/><col class=„c3“/><tr class=„row0“ readability=„1“><td class=„col0“>–disable-toggle</td> <td class=„col1“>Privoxys Filter- und Blockierfunktionen können nicht deaktiviert werden.</td> </tr><tr class=„row1“ readability=„2“><td class=„col0“>–disable-force</td> <td class=„col1 leftalign“>Privoxys Filter- und Blockierfunktionen können nicht für einzelne Seiten durch den Benutzer umgangen werden.</td> </tr><tr class=„row2“ readability=„1“><td class=„col0“>–disable-editor</td> <td class=„col1“>Die Konfiguration der Filter und Aktionen per Browser im <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#privoxy-webeditor“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>Webeditor</a> ist deaktiviert.</td> </tr><tr class=„row3“ readability=„2“><td class=„col0“>–disable-graceful-termination</td> <td class=„col1“>Privoxy kann nicht per Weboberfläche beendet werden.</td> </tr><tr class=„row4“ readability=„5“><td class=„col0“>–enable-compression</td> <td class=„col1“>gepufferte Inhalte werden vor Auslieferung an Clients komprimiert.<br/>Die Kompression kann mit der <em>enable-compression</em> Option ein- oder ausgeschaltet und der Kompressionsgrad mit der <em>compression-level</em> Option bestimmt werden.</td> </tr><tr class=„row5“ readability=„3“><td class=„col0“>–enable-extended-host-patterns</td> <td class=„col1“>PCRE auch für die <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#domainnamen“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>Domain/Hostnamen Muster</a>.<br/>Mit dem tools/url-pattern-translator.pl Perlskript lassen sich einmalig Wildcard Muster in Aktionsdateien in PCRE Muster umwandeln.</td> </tr><tr class=„row6“ readability=„2“><td class=„col0“>–enable-external-filters</td> <td class=„col1“>Inhalte können mit externen Skripten und Anwendungen gefiltert werden.</td> </tr></table></p> <p>Mit den drei ersten Konfigurationsoptionen entfallen später die <em>toggle</em>, <em>enforce-blocks</em> und <em>enable-edit-actions</em> Optionen in der Privoxy <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#zugangskontrolle-und-sicherheit“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>Konfigurationsdatei</a>.</p> <p>Nach dem <a href=„https://www.privoxy.org/“ class=„urlextern“ title=„https://www.privoxy.org/“>Download</a> des Quellcodearchivs, der GnuPG Signaturdatei und des <a href=„https://www.fabiankeil.de/autor.html“ class=„urlextern“ title=„https://www.fabiankeil.de/autor.html“>GnuPG Schlüssels</a>:</p> <pre class=„code console“> cd /downloadverzeichnis gpg –import fk-id.asc gpg –verify privoxy-version-stable-src.tar.gz.asc tar -xzf privoxy-version-stable-src.tar.gz sudo apt-get build-dep -y privoxy sudo adduser –quiet –system –home /etc/privoxy –no-create-home –ingroup nogroup –disabled-password privoxy sudo mkdir /etc/privoxy /var/log/privoxy sudo chown privoxy:adm /var/log/privoxy sudo chmod 750 /var/log/privoxy cd privoxy-version-stable autoheader autoconf ./configure –sbindir=/usr/local/bin –disable-toggle –disable-force –disable-editor –enable-compression -enable-extended-host-patterns –disable-graceful-termination –enable-external-filters make sudo make install USER=privoxy GROUP=nogroup </pre> <p>Nach der Installation wird Privoxy als Daemon über das <em>/etc/init.d/privoxy</em> Init-Skript automatisch mit dem <em>privoxy</em> Systembenutzer und der <em>nogroup</em> Systemgruppe gestartet. Standardmäßig lauscht der Privoxy Daemon an 127.0.0.1 und Port 8118 auf Verbindungsanfragen der Internetanwendungen.</p> <p>Neben Privoxy wird das <em>privoxy-log-parser</em> Perl-Skript installiert, mit dem sich die Ausgabe der Privoxy Logdatei verändern lässt.</p> </div> <div class=„level3“ readability=„22“> <p>Vom Privoxy Daemon werden folgende Verzeichnisse und Dateien genutzt:</p> <p> <table class=„inline c4“ readability=„9“><col class=„c5“/><col class=„c6“/><tr class=„row0“><td class=„col0“>/etc/init.d/privoxy</td> <td class=„col1“>Privoxy Init-Skript</td> </tr><tr class=„row1“ readability=„1“><td class=„col0“>/etc/privoxy/</td> <td class=„col1“>Konfigurations- und Heimatverzeichnis des Privoxy Daemon</td> </tr><tr class=„row2“ readability=„2“><td class=„col0“>/etc/privoxy/templates/</td> <td class=„col1“>enthält Vorlagen für den webbasierten Editor zur Privoxy Konfiguration</td> </tr><tr class=„row3“ readability=„1“><td class=„col0“>/etc/privoxy/config</td> <td class=„col1“>Privoxy Konfigurationsdatei</td> </tr><tr class=„row4“ readability=„1“><td class=„col0“>/etc/privoxy/default.action</td> <td class=„col1“>eingebaute Aktionen</td> </tr><tr class=„row5“ readability=„1“><td class=„col0“>/etc/privoxy/default.filter</td> <td class=„col1“>eingebaute Filter</td> </tr><tr class=„row6“ readability=„3“><td class=„col0“>/etc/privoxy/match-all.action</td> <td class=„col1“>Standard Aktionen, die durch die eingebauten und benutzerdefinierten Aktionen überschrieben werden</td> </tr><tr class=„row7“ readability=„2“><td class=„col0“>/etc/privoxy/user.action</td> <td class=„col1“>benutzerdefinierte Aktionen</td> </tr><tr class=„row8“ readability=„2“><td class=„col0“>/etc/privoxy/user.filter</td> <td class=„col1“>benutzerdefinierte Filter</td> </tr><tr class=„row9“ readability=„2“><td class=„col0“>/etc/privoxy/trust</td> <td class=„col1“>optional zu verwendende Whitelist aus Ziel- und Referrer-Adressen. Nur Anfragen von Referrer- oder Anfragen zu Ziel-Adressen sind erlaubt.</td> </tr><tr class=„row10“ readability=„2“><td class=„col0“>/var/log/privoxy/</td> <td class=„col1“>Verzeichnis, in dem die <em>errorfile</em> und die <em>logfile</em> Logdateien gespeichert werden</td> </tr><tr class=„row11“ readability=„2“><td class=„col0“>/var/run/privoxy.pid</td> <td class=„col1“>PID-Datei des Privoxy Daemon</td> </tr></table></p> </div> <h3 id=„dokumentation“>Dokumentation</h3> <div class=„level3“ readability=„13“> <p>Um alle Möglichkeiten auszuschöpfen, ist ein genaues Studium des Benutzerhandbuchs nötig. Privoxy enthält bereits ab Installation einen umfassenden Satz an Filtern und Aktionen, der viele Bereiche abdeckt. Von Fabian Keil gibt es die <a href=„http://www.fabiankeil.de/privoxy-anleitung/“ class=„urlextern“ title=„http://www.fabiankeil.de/privoxy-anleitung/“>Anleitung zum werbefreien und spurenarmen Surfen mit Privoxy</a>, die ebenfalls auf die Filterkonfiguration eingeht. Die Privoxy eigene Dokumentation kann man online im Web <a href=„https://www.privoxy.org/user-manual/“ class=„urlextern“ title=„https://www.privoxy.org/user-manual/“>einsehen</a> oder lokal über die Startseite des Privoxy Webeditors <a href=„http://config.privoxy.org/user-manual/“ class=„urlextern“ title=„http://config.privoxy.org/user-manual/“>aufrufen</a>.</p> </div> <h3 id=„verwendung-und-einbindung“>Verwendung und Einbindung</h3> <h4 id=„systemweit“>systemweit</h4> <div class=„level4“ readability=„17“> <p>Für Internetanwendungen, die immer Privoxy verwenden sollen und Proxy Umgebungsvariablen auswerten, kann man die Verwendung von Privoxy durch das Setzen der Umgebungsvariablen automatisieren. Dazu setzt man systemweit oder in die .profile Datei des Benutzers:</p> <pre class=„code“> export http_proxy=„http://127.0.0.1:8118/“ export https_proxy=„http://127.0.0.1:8118/“ export ftp_proxy=„http://127.0.0.1:8118/“ </pre> <p>Da Privoxy kein FTP-Proxy ist, werden mit Setzen und Auswerten der ftp_proxy Variable alle Verbindungen zu FTP-Servern blockiert.</p> <p>Mit der <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#zugangskontrolle-und-sicherheit“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>accept-intercepted-requests Option</a> und entsprechenden iptables Regeln kann der ausgehende HTTP-Datenverkehr auch generell auf Privoxy umgeleitet werden.</p> </div> <h4 id=„anwendungsbezogen“>anwendungsbezogen</h4> <div class=„level4“ readability=„16“> <p>Für einzelne Internetanwendungen wird die Verwendung von Privoxy aktiviert, indem 127.0.0.1:8118 als Adresse und Port den entsprechdenden Optionen bzw. Einstellungsfeldern der Internetanwendung übergeben wird. Für Firefox beispielsweise in den <a href=„https://wiki.kairaven.de/open/app/firefox#netzwerk“ class=„wikilink1“ title=„open:app:firefox“>Verbindungs-Einstellungen</a> und für andere Anwendungen per Option oder Skript:</p> <pre class=„code console“> curl –proto https,http -x 127.0.0.1:8118 gpg –keyserver-options http-proxy=http://127.0.0.1:8118/ wget -e http_proxy=http://127.0.0.1:8118/ -e https_proxy=http://127.0.0.1:8118/ youtube-dl –proxy http://127.0.0.1:8118/ </pre> <pre class=„code bash“> #!/bin/sh
export http_proxy=„http://127.0.0.1:8118/“ export https_proxy=„http://127.0.0.1:8118/“ export ftp_proxy=„http://127.0.0.1:8118/“
/usr/bin/calibre
exit 0 </pre></div> <h2 id=„konfiguration“>Konfiguration</h2> <h3 id=„privoxy-webeditor“>Privoxy Webeditor</h3> <div class=„level3“ readability=„25“> <p>Die Konfiguration von Privoxy kann über eine Oberfläche im Browser durchgeführt werden, die man mit der Adresse <a href=„http://config.privoxy.org/“ class=„urlextern“ title=„http://config.privoxy.org/“>http://config.privoxy.org/</a> oder <a href=„http://p.p/“ class=„urlextern“ title=„http://p.p/“>http://p.p/</a> aufruft:</p> <p><img src=„https://wiki.kairaven.de/_media/open/img/anon/privoxy01.png“ class=„mediacenter“ alt=„“/></p> <p>Startseite der Privoxy Weboberfläche. Über den ersten Menüpunkt <em>View & change the current configuration</em> (Anzeige und Änderung der aktuellen Konfiguration) gelangt man in die Konfiguration von Privoxy:</p> <p><img src=„https://wiki.kairaven.de/_media/open/img/anon/privoxy02.png“ class=„mediacenter“ alt=„“/></p> <p>Über das Anklicken der <em>Edit</em> Buttons gelangt man in eine Unterseite, die eine Übersicht aller Aktionsgruppen mit den zugeordneten Aktionen enthält. Eigene Änderungen sollten nach Möglichkeit in der <em>user.action</em> Datei durchgeführt werden.</p> <p>Da zum Konfigurieren und Anlegen von Aktionen und Filtern das Studium des Benutzerhandbuchs nötig ist, dem manuellen Editieren der Konfigurationsdateien der Vorzug gegeben wird und zur Absicherung von Privoxy selbst alle Webeditor-Funktionen mit Schreibberechtigungen deaktiviert sind, wird nicht näher auf den Webeditor eingegangen.</p> </div> <h3 id=„privoxy-individuell-und-manuell-konfigurieren“>Privoxy individuell und manuell konfigurieren</h3> <div class=„level3“ readability=„19“> <p>Wenn Privoxy nur mit den Optionen und Funktionen betrieben werden soll, die für die Nutzung von Tor (oder anderen Proxys) relevant sind und die eine Anonymisierung unterstützen, kann man an Stelle der vorgegebenen Filter- und Aktionsdateien, die man über die obige Weboberfläche einstellt, eine eigene Konfiguration verwenden. Das kann u. a. sinnvoll sein, wenn man die Filterung unerwünschter Inhalte, Verwendung aktiver Inhalte usw. lieber über die Konfiguration der bevorzugten Internetanwendung regelt und nicht über einen Filterproxy. Die <em>default.action</em> und <em>default.filter</em> Dateien können trotzdem als „Repositories“ dienen, aus denen man Aktionen und Filter für die eigenen Dateien übernimmt.</p> </div> <h3 id=„hauptkonfiguration“>Hauptkonfiguration</h3> <div class=„level3“ readability=„6“> <p>Die Hauptkonfiguration wird durch das Editieren der <em>/etc/privoxy/config</em> Datei durchgeführt.</p> </div> <h4 id=„systempfade“>Systempfade</h4> <div class=„level4“ readability=„8“> <p>Die folgenden Optionen am Anfang der <em>/etc/privoxy/config</em> Datei bleiben unangetastet:</p> <pre class=„code“> user-manual /usr/share/doc/privoxy/user-manual confdir /etc/privoxy templdir /etc/privoxy/templates logdir /var/log/privoxy </pre></div> <div class=„level4“ readability=„8“> <p>Privoxy wird zukünftig nur die user.action und user.filter Datei verwenden:</p> <pre class=„code“> # actionsfile match-all.action # actionsfile default.action actionsfile user.action # filterfile default.filter filterfile user.filter </pre></div> <div class=„level4“ readability=„26“> <p>Mit den <em>debug</em> Optionen können der Umfang und die Inhalte der Logdatei-Ausgaben gesteuert werden. Um bestimmte debug Optionen zu aktivieren, muss das # Kommetarzeichen vor den entsprechenden debug Zeilen entfernt werden. Hier ein paar Beispiele:</p> <p> <table class=„inline c4“ readability=„4“><col class=„c5“/><col class=„c6“/><thead><tr class=„row0“><th class=„col0“>Option</th> <th class=„col1“>Erklärung</th> </tr></thead><tr class=„row1“ readability=„2“><td class=„col0“>debug 1</td> <td class=„col1“>Ziele, zu denen Privoxy Verbindungen durchlässt/weiterleitet</td> </tr><tr class=„row2“ readability=„1“><td class=„col0“>debug 8</td> <td class=„col1“>Auswertung der Kopfzeilen</td> </tr><tr class=„row3“ readability=„1“><td class=„col0“>debug 64</td> <td class=„col1“>Anwendung von Regulären Ausdrücken in Filtern</td> </tr><tr class=„row4“ readability=„1“><td class=„col0“>debug 128</td> <td class=„col1“>Umleitungen auf andere Websites und Webseiten</td> </tr><tr class=„row5“ readability=„2“><td class=„col0“>debug 1024</td> <td class=„col1“>Ziele, zu denen Privoxy Verbindungen blockiert mit Nennung der Gründe</td> </tr><tr class=„row6“ readability=„1“><td class=„col0“>debug 4096</td> <td class=„col1“>Start- und Warn-Meldungen</td> </tr><tr class=„row7“><td class=„col0“>debug 8192</td> <td class=„col1“>Fehler-Meldungen</td> </tr><tr class=„row8“ readability=„1“><td class=„col0“>debug 65536</td> <td class=„col1“>Anwendung aller Aktionen auf eine Anfrage</td> </tr></table></p> </div> <div class=„level5“ readability=„11“> <p>Mit dem <em>privoxy-log-parser</em> Skript kann man die Anzeige der aktuellen Ausgaben in die Privoxy Logdatei oder die Ausgabe einer archivierten Logdatei verändern. Zum Beispiel kann man sich mit dem folgenden Kommando die aktuellen Ausgaben in die Logdatei anzeigen lassen:</p> <pre class=„code console“> sudo tail -f -n 20 /var/log/privoxy/logfile | sudo privoxy-log-parser –shorten-thread-ids –show-ineffective-filters </pre> <p><img src=„https://wiki.kairaven.de/_media/open/img/anon/privoxy03.png“ class=„media“ alt=„“/></p> </div> <h4 id=„zugangskontrolle-und-sicherheit“>Zugangskontrolle und Sicherheit</h4> <p> <table class=„inline c4“ readability=„14“><col class=„c2“/><col class=„c7“/><col class=„c8“/><thead><tr class=„row0“><th class=„col0“>Option</th> <th class=„col1“>Wert</th> <th class=„col2“>Erklärung</th> </tr></thead><tr class=„row1“ readability=„6“><td class=„col0“>listen-address</td> <td class=„col1“>IP-Adresse:8118<br/>127.0.0.1:8118<br/>Hostname:8118</td> <td class=„col2“>Adresse(n) und Port(s), an denen Privoxy auf eingehende Verbindungsanfragen lauscht. Kann mehrmalig verwendet werden. Bei Angabe von Hostnamen sollte ihre korrekte lokale Namensauflösung sichergestellt sein.</td> </tr><tr class=„row2“ readability=„3“><td class=„col0“>toggle</td> <td class=„col1“>1</td> <td class=„col2“>Blockier- und Filtermodus aktiviert. Mit 0 wird Privoxy zum transparenten, inhaltsneutralen Web-Proxy.</td> </tr><tr class=„row3“ readability=„2“><td class=„col0“>enable-remote-toggle</td> <td class=„col1“>0</td> <td class=„col2“>webbasiertes Abschalten des Blockier- und Filtermodus deaktiviert.</td> </tr><tr class=„row4“ readability=„2“><td class=„col0“>enable-remote-http-toggle</td> <td class=„col1“>0</td> <td class=„col2“>Abschalten des Filtermodus per <em>X-Filter: No</em> Kopfzeile deaktiviert.</td> </tr><tr class=„row5“ readability=„1“><td class=„col0“>enable-edit-actions</td> <td class=„col1“>0</td> <td class=„col2“>Verwendung des Privoxy-Webeditors zur Konfiguration der user.action deaktiviert.</td> </tr><tr class=„row6“ readability=„1“><td class=„col0“>enforce-blocks</td> <td class=„col1“>1</td> <td class=„col2“>Umgehung von Blockierungen durch Benutzer deaktiviert.</td> </tr><tr class=„row7“ readability=„5“><td class=„col0“>permit-access</td> <td class=„col1“>IP-Adresse<br/>127.0.0.1<br/>Hostname<br/>Netzwerkadresse/CDIR</td> <td class=„col2“>Nur von den angegebenen IP-Adressen bzw. IP-Adressen der angegebenen Netzwerkadressen oder Hostnamen werden Verbindungsanfragen entgegengenommen und vom Rest verweigert. Kann mehrmalig verwendet werden. Bei Angabe von Hostnamen sollte ihre korrekte lokale Namensauflösung sichergestellt sein.</td> </tr><tr class=„row8“ readability=„2“><td class=„col0“>buffer-limit</td> <td class=„col1“>n</td> <td class=„col2“>jeder Privoxy Thread verwendet max. <em>n</em> KB RAM zur Pufferung der Inhalte zwecks Filtern des Inhalts (Standard: 4096 KB/4 MB).</td> </tr><tr class=„row9“ readability=„4“><td class=„col0“>accept-intercepted-requests</td> <td class=„col1“>0|1</td> <td class=„col2“>1, wenn HTTP/HTTPS Datenverkehr generell für alle Internetanwendungen per iptables auf Privoxy umgeleitet wird.</td> </tr><tr class=„row10“ readability=„2“><td class=„col0“>allow-cgi-request-crunching</td> <td class=„col1“>1</td> <td class=„col2“>Anfragen zu Privoxys CGI-Seiten werden blockiert oder umgeleitet.</td> </tr><tr class=„row11“ readability=„2“><td class=„col0“>max-client-connections</td> <td class=„col1“>n</td> <td class=„col2“>Privoxy bedient maximal <em>n</em> gleichzeitige Verbindungen der Internetanwendungen (Standard: 128).</td> </tr></table></p> <h4 id=„verbindungen“>Verbindungen</h4> <div class=„level4“ readability=„63“> <p> <table class=„inline c4“ readability=„14“><col class=„c2“/><col class=„c7“/><col class=„c8“/><thead><tr class=„row0“><th class=„col0“>Option</th> <th class=„col1“>Wert</th> <th class=„col2“>Erklärung</th> </tr></thead><tr class=„row1“ readability=„16“><td class=„col0“>client-header-order Host User-Agent Accept Accept-Language Accept-Encoding DNT Referer Cookie Connection Pragma Cache-Control Content-Type Content-Length</td> <td class=„col1“>Liste</td> <td class=„col2“>die mit Leerzeichen getrennten aufgeführten Kopfzeilen werden zuerst in der angegebenen Reihenfolge sortiert und dann an die Server ausgeliefert. Die Kopfzeilen, die eine Anwendung zusätzlich verwendet, aber nicht in der Liste aufgeführt sind, werden danach angeführt. Um z. B. alle Webanwendungen authentisch als Firefox auftreten zu lassen, müssen anwendungsspezifische Kopfzeilen zuerst mit einem <em>client-header-filter</em> Filter gelöscht und alle möglichen Kopfzeilen, die Firefox unterstützt, aufgeführt werden. Die richtige Reihenfolge erschwert das Browser-Fingerprinting, eine falsche oder mit Lücken behaftete Liste befördert das Browser-Fingerprinting.</td> </tr><tr class=„row2“ readability=„4“><td class=„col0“>keep-alive-timeout</td> <td class=„col1“>n</td> <td class=„col2“>Verbindungen der Internetanwendungen zu Privoxy und von Privoxy zu den Servern – falls vom Server unterstützt – werden <em>n</em> Sekunden offen gehalten und für weitere Verbindungsanfragen genutzt (Standard: 5 Sekunden).</td> </tr><tr class=„row3“ readability=„1“><td class=„col0“>tolerate-pipelining</td> <td class=„col1“>1</td> <td class=„col2“>die gebündelte Übertragung von Anfragen per <a href=„http://kb.mozillazine.org/Network.http.pipelining“ class=„urlextern“ title=„http://kb.mozillazine.org/Network.http.pipelining“>HTTP/1.1 Pipelining</a> werden von Privoxy bedient.</td> </tr><tr class=„row4“ readability=„6“><td class=„col0“>default-server-timeout</td> <td class=„col1“>n</td> <td class=„col2“>angenommener Schwellenwert der Zeitüberschreitung für Server in <em>n</em> Sekunden für offen gehaltene Verbindungen, wenn die Server selbst keinen Schwellenwert übermitteln. Nur in Verbindung mit deaktivierter <em>connecton-sharing</em> Option und einem Wert < keep-alive-timeout sinnvoll (Standard: deaktiviert).</td> </tr><tr class=„row5“ readability=„3“><td class=„col0“>connection-sharing</td> <td class=„col1“>n</td> <td class=„col2“>mit <em>n</em> = 1 kann eine offen gehaltene Verbindung zu einem Server von mehreren Internetanwendungen parallel für ihre Verbindungen zum gleichen Server verwendet werden (Standard: deaktiviert).</td> </tr><tr class=„row6“ readability=„2“><td class=„col0“>socket-timeout</td> <td class=„col1“>n</td> <td class=„col2“>Schwellenwert der Zeitüberschreitung für Verbindungen über SOCKS-Proxys (wie z. B. Tor) in <em>n</em> Sekunden (Standard: 300 Sekunden).</td> </tr></table></p> <p>Der Wert für <em>keep-alive-timeout</em> und <em>default-server-timeout</em> richtet sich z. B. danach, ob im Firefox <a href=„http://kb.mozillazine.org/Network.http.keep-alive“ class=„urlextern“ title=„http://kb.mozillazine.org/Network.http.keep-alive“>network.http.keep-alive</a> aktiviert (Standard: true) ist und wie hoch der Schwellenwert für <a href=„http://kb.mozillazine.org/Network.http.keep-alive.timeout“ class=„urlextern“ title=„http://kb.mozillazine.org/Network.http.keep-alive.timeout“>network.http.keep-alive.timeout</a> ist. Liegt der Schwellenwert z. B. bei 30 Sekunden, kann <em>default-server-timeout</em> den gleichen Wert erhalten und <em>keep-alive-timeout</em> > 30.</p> <p>Wenn man davon ausgeht, dass Datenströme verschiedener Internetanwendungen, Protokolle, Zieladressen usw. möglichst auf viele unterschiedliche Tor Verbindungsketten verteilt werden sollten (siehe multiple SOCKSPorts und Isolierungsmarker in der <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet05#tor-als-onion-proxy“ class=„wikilink1“ title=„open:anon:netzwerk:anet05“>Tor Konfiguration</a>), um mögliche „Identitäts-Korrelationen“ zu vermeiden, sollte <em>connection-sharing</em> deaktiviert bleiben.</p> <p>Für <em>socket-timeout</em> richtet sich der Wert z. B. für Tor nach der <em>CircuitStreamTimeout</em> Option und – unter der Annahme, dass für eine Weiterleitungsanfrage von Privoxy zu Tor erst eine Tor-Kette geschaltet werden müsste – der <em>CircuitBuildTimeout</em> bzw. <em>LearnCircuitBuildTimeout</em> Option in der <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet05#tor-als-onion-proxy“ class=„wikilink1“ title=„open:anon:netzwerk:anet05“>Tor Konfiguration</a>. Standardmäßig verwendet Tor überhaupt keine festen Schwellenwerte mehr, sondern interne, selbstregulierende Funktionen zur dynamischen Schwellenwertermittlung, sofern keine statischen Wert vom Benutzer vorgegeben werden. Da für beide Optionen die statischen Werte bei 60 Sekunden lagen und meistens maximale Schwellenwerte von 60 - 75 Sekunden von Tor ermittelt werden, kann man den Wert z. B. auf 120 Sekunden setzen.</p> </div> <h3 id=„weiterleitungen“>Weiterleitungen</h3> <div class=„level3“ readability=„30“> <p>Mit Regeln zur Weiterleitung in der <em>/etc/privoxy/config</em> Konfigurationsdatei werden Verbindungen der Internetanwendungen von Privoxy an einen lokalen HTTP-Proxy, SOCKS-Proxy, SOCKS-Proxy + entfernten HTTP-Proxy weitergeleitet, die dann die Verbindung über Anon-Dienste oder -Netzwerke zum Server herstellen oder direkt zu Servern umgeleitet. Für Internetanwendungen, Anon-Dienste und -Netzwerke mit HTTP oder SOCKS-Proxy Schnittstelle können damit Verbindungen der Internetanwendungen anonymisiert werden. Andererseits kann man für Zieladressen, zu denen bewußt keine anonymisierte Verbindungen aufgenommen werden sollen, Ausnahme-Regeln definieren.</p> <p>Auf die direkte Weiterleitung von Verbindungen über einfache, offen gehaltene HTTP- und SOCKS-Proxys, die man über diverse Proxy-Listen im Web findet, wird nicht eingegangen, da Verschlüsselung, Anonymisierung und Unbeobachtbarkeit nicht gewährleistet sind. Solche Maßnahmen sind <em>Anonymity by Obscurity</em>. Sie werden nur als Ausnahme herangezogen, wenn Ausgang-Netzknoten verwendeter Anon-Dienste oder -Netzwerke von Betreibern der Zieladressen blockiert werden.</p> </div> <h4 id=„ziel-muster“>Ziel-Muster</h4> <div class=„level4“ readability=„24“> <p>Für die Definition der Zieladressen, die von Weiterleitungsregeln erfasst werden sollen, können generelle oder spezifische Muster zur Erfassung von Domainnamen und/oder Pfaden herangezogen werden:</p> <p> <table class=„inline“ readability=„5“><thead><tr class=„row0“><th class=„col0“>Muster</th> <th class=„col1“>erfasst:</th> </tr></thead><tr class=„row1“ readability=„1“><td class=„col0“>/</td> <td class=„col1“>generell alle Zieladressen (Domainnamen)</td> </tr><tr class=„row2“ readability=„2“><td class=„col0“>:Port/</td> <td class=„col1“>generell alle Zieladressen (Domainnamen), deren Server auf bestimmten Portnummern lauschen</td> </tr><tr class=„row3“ readability=„2“><td class=„col0“>subdomain.domain.tld[:Port]</td> <td class=„col1“>bestimmte Domainnamen – optional: deren Server auf bestimmten Portnummern lauschen</td> </tr><tr class=„row4“ readability=„2“><td class=„col0“>subdomain.domain.tld/pfad</td> <td class=„col1“>bestimmte Domainnamen mit bestimmten Pfadangaben</td> </tr><tr class=„row5“ readability=„3“><td class=„col0“>subdomain.domain.tld:Port/pfad</td> <td class=„col1“>bestimmte Domainnamen mit bestimmten Pfadangaben, deren Server auf bestimmten Portnummern lauschen</td> </tr><tr class=„row6“ readability=„1“><td class=„col0“>/pfad</td> <td class=„col1“>bestimmte Pfade unabhängig von Domainnamen</td> </tr></table></p> </div> <h4 id=„domainnamen“>Domainnamen</h4> <div class=„level4“ readability=„25“> <p>Domainnamen können komplett oder anteilig angegben werden, wobei Anteile und Namensbestandteile durch die <a href=„https://de.wikipedia.org/wiki/Wildcard%20(Informatik)“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Wildcard (Informatik)“>Wildcards</a> * für 0 oder beliebig viele Zeichen, <strong>?</strong> für ein beliebiges Zeichen oder <strong>[Zeichenklasse(n)]</strong> für ein beliebiges Zeichen aus der angegebenen Zeichenklasse ersetzt werden können. Wird Privoxy mit der <em>–enable-extended-host-patterns</em> Konfigurationsoption selbst kompiliert, können auch Perl-kompatible <a href=„https://de.wikipedia.org/wiki/Regul%C3%A4rer%20Ausdruck“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Regulärer Ausdruck“>Reguläre Ausdrücke</a> (<a href=„https://de.wikipedia.org/wiki/Perl%20Compatible%20Regular%20Expressions“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Perl Compatible Regular Expressions“>PCRE</a>) verwendet werden.</p> <p> <table class=„inline c4“ readability=„5“><col class=„c7“/><col class=„c9“/><col class=„c10“/><thead><tr class=„row0“><th class=„col0“ colspan=„3“>Beispiele Domainnamen</th> </tr><tr class=„row1“><th class=„col0“>Muster</th> <th class=„col1“>Beispiel</th> <th class=„col2“>erfasst:</th> </tr></thead><tr class=„row2“ readability=„2“><td class=„col0“>subdomain.domain.tld</td> <td class=„col1“>www.google.com</td> <td class=„col2“>genau <strong>www.google.com</strong></td> </tr><tr class=„row3“ readability=„1“><td class=„col0“>.domain.tld</td> <td class=„col1“>.google.com</td> <td class=„col2“>u. a. <strong>www|maps|news</strong>.google.com</td> </tr><tr class=„row4“ readability=„1“><td class=„col0“>.domain.</td> <td class=„col1“>.google.</td> <td class=„col2“>u. a. <strong>www|maps|news</strong>.google.<strong>com|de|us</strong></td> </tr><tr class=„row5“ readability=„1“><td class=„col0“>.tld</td> <td class=„col1“>.onion</td> <td class=„col2“>alle Tor Hostnamen der <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet06“ class=„wikilink1“ title=„open:anon:netzwerk:anet06“>Tor-Dienste</a></td> </tr><tr class=„row6“ readability=„3“><td class=„col0“>*</td> <td class=„col1“>www.paypal*.com:443</td> <td class=„col2“>u. a. www.<strong>paypal</strong>.com, www.paypal<strong>objects</strong>.com und www.paypal<strong>-deutschland</strong>.com mit verschlüsselter TLS Verbindung über Port 443</td> </tr><tr class=„row7“ readability=„1“><td class=„col0“>?</td> <td class=„col1“>www.wdr?.de</td> <td class=„col2“>u. a. www.wdr<strong>2</strong>.de bis www.wdr<strong>5</strong>.de</td> </tr><tr class=„row8“ readability=„1“><td class=„col0“>[Zeichenklasse(n)]</td> <td class=„col1“>www.wdr[2-5].de</td> <td class=„col2“>genau www.wdr<strong>2</strong>.de bis www.wdr<strong>5</strong>.de</td> </tr><tr class=„row9“ readability=„1“><td class=„col0“>/</td> <td class=„col1“/> <td class=„col2“><strong>alle</strong> Domain-/Hostnamen</td> </tr></table></p> </div> <h4 id=„pfade“>Pfade</h4> <div class=„level4“ readability=„58“> <p>In Pfadangaben können und müssen Perl-kompatible <a href=„https://de.wikipedia.org/wiki/Regul%C3%A4rer%20Ausdruck“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Regulärer Ausdruck“>Reguläre Ausdrücke</a> (<a href=„https://de.wikipedia.org/wiki/Perl%20Compatible%20Regular%20Expressions“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Perl Compatible Regular Expressions“>PCRE</a>) verwendet werden. Da das Thema Reguläre Ausdrücke komplex und umfangreich ist, wird auf Beispiele verzichtet. In den Wikipedia Artikeln und über die darin enthaltenen Links erhält man ausreichend Informationen, um die Verwendung Regulärer Ausdrücke zu erlernen und zu testen. Zusätzlich sind in den mitgelieferten Aktions- und Filterdateien von Privoxy genügend Beispiele enthalten und im Privoxy Handbuch wird in den Kapiteln <a href=„https://www.privoxy.org/user-manual/actions-file.html#AEN3074“ class=„urlextern“ title=„https://www.privoxy.org/user-manual/actions-file.html#AEN3074“>The Path Pattern</a> und <a href=„https://www.privoxy.org/user-manual/appendix.html#REGEX“ class=„urlextern“ title=„https://www.privoxy.org/user-manual/appendix.html#REGEX“>Regular Expressions</a> in Reguläre Ausdrücke eingeführt.</p> <p>Für eine erste Abgrenzung der obigen Wildcards von Regulären Ausdrücken:</p> <p> <table class=„inline c4“ readability=„9“><col class=„c7“/><col class=„c9“/><col class=„c10“/><thead><tr class=„row0“><th class=„col0“>Zeichen</th> <th class=„col1“>Wildcard (in Domainnamen)</th> <th class=„col2“>RegEx (in Pfaden)</th> </tr></thead><tr class=„row1“ readability=„2“><td class=„col0“>*</td> <td class=„col1“>steht für 0 oder beliebig viele Zeichen</td> <td class=„col2“>das * vorangestellte RegEx-Muster – RegEx* – trifft nullmal oder beliebig oft zu</td> </tr><tr class=„row2“ readability=„2“><td class=„col0“>?</td> <td class=„col1“>steht für ein beliebiges Zeichen</td> <td class=„col2“>das ? vorangestellte RegEx-Muster – RegEx? – trifft null- oder einmal zu</td> </tr><tr class=„row3“ readability=„1“><td class=„col0“>.</td> <td class=„col1“>keine Bedeutung</td> <td class=„col2“>ein beliebiges Zeichen</td> </tr><tr class=„row4“ readability=„5“><td class=„col0“>[Z-Klasse(n)]</td> <td class=„col1“>ein Zeichen aus den angegebenen Zeichenklassen</td> <td class=„col2“>ähnlich, als RegEx-Muster mit optional angefügten *, ?, + <a href=„https://de.wikipedia.org/wiki/Quantor“ class=„interwiki iw_wpde“ title=„https://de.wikipedia.org/wiki/Quantor“>Quantoren</a> – z. B. [Z-Klasse(n)]+</td> </tr><tr class=„row5“ readability=„1“><td class=„col0“>+</td> <td class=„col1“>keine Bedeutung</td> <td class=„col2“>das + vorangestellte RegEx-Muster – RegEx+ – trifft ein- oder mehrmalig zu</td> </tr><tr class=„row6“ readability=„8“><td class=„col0“>(Ausdruck)<br/>(Ausdruck1|AusdruckN)</td> <td class=„col1“>keine Bedeutung</td> <td class=„col2“>Zusammenfassung/Gruppierung mehrer RegEx-Muster bzw. RegEx-Teilmuster – (RegEx1RegexN) bzw. (RegEx-Teil1|RegEx-TeilN), wobei „|“ für „oder“ steht, der man die *, ?, + Quantoren anfügen kann</td> </tr></table></p> <p>Will man die *, ?, ., +, [, ], (, ) u. a. Zeichen in den Pfadangaben nicht als Metazeichen Regulärer Ausdrücke, d. h. mit ihrer Bedeutung für Reguläre Ausdrücke verwenden, sondern direkt in ihrer Eigenschaft der jeweiligen Zeichenklasse, müssen sie mit einem vorangestellten „<strong>\</strong>“ maskiert werden – <strong>\?</strong> hebt z. B. die Bedeutung von ? als RegEx-Quantor auf und ? wird als Fragezeichen erfasst.</p> </div> <h4 id=„regel-syntax“>Regel-Syntax</h4> <h5 id=„reihenfolge“>Reihenfolge</h5> <div class=„level5“ readability=„36“> <p>Für die Anordnung der Weiterleitungsregeln gilt: „der letzte Treffer zählt“. Bei einer Verbindungsanfrage einer Internetanwendung geht Privoxy alle Weiterleitungsregeln durch. Die letzte Weiterleitungsregel, deren Zieladressen-Muster auf die Zieladresse in der Verbindungsanfrage passt, wird dann auf die Verbindung angewendet. Deshalb sollte man sich angewöhnen, Weiterleitungsregeln wie folgt anzuordnen:</p> <p> <table class=„inline“ readability=„5“><thead><tr class=„row0“><th class=„col0“>Position</th> <th class=„col1“>Weiterleitungsregeln</th> </tr></thead><tr class=„row1“ readability=„2“><th class=„col0“>1</th> <td class=„col1“>Generelle Regel für das Anon-Netzwerk, das hauptsächlich für alle Verbindungen verwendet wird</td> </tr><tr class=„row2“ readability=„2“><th class=„col0“>2</th> <td class=„col1“>Regeln für Verbindungen zu Zieladressen, die über andere Anon-Netzwerke weitergeleitet werden</td> </tr><tr class=„row3“ readability=„3“><th class=„col0“>3</th> <td class=„col1“>Regeln für Verbindungen zu Zieladressen, die über Anon-Netzwerke mit zusätzlicher Weiterleitung an einen HTTP-Proxy weitergeleitet werden</td> </tr><tr class=„row4“ readability=„4“><th class=„col0“>4</th> <td class=„col1“>Regeln für Verbindungen zu Zieladressen, die über kein Anon-Netzwerk weitergeleitet, sondern – als Ausnahmen – den Servern direkt zugestellt werden</td> </tr></table></p> </div> <h5 id=„lokale-socks-proxy-weiterleitung“>Lokale SOCKS-Proxy Weiterleitung</h5> <div class=„level5“ readability=„23“> <p>Mit der Regel werden Verbindungen zur Zieladresse an den lokalen SOCKS-Proxy der Anonymisierungs-Anwendung weitergeleitet, der sie über das Anon-Netzwerk zum Server der Zieladresse weiterleitet. Alle Anon-Dienste und -Netzwerke, deren lokale Anwendungen als SOCKS-Proxy arbeiten, werden über die Regel bedient.</p> <dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=8“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Syntax</a></dt> <dd readability=„1“> <pre class=„code h“> forward-socks5 Zieladresse SOCKS-Proxy:Port . </pre></dd> </dl><dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=9“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Beispiele</a></dt> <dd readability=„1“> <pre class=„code h“> forward-socks5 / localhost:9050 . forward-socks5 / localhost:4001 . </pre></dd> </dl><p>Die erste Regel leitet alle Verbindungen an den lokalen Tor Onion Proxy, der an der lokalen Schnittstelle auf Port 9050 lauscht, für das Tor Anon-Netzwerk weiter. Mit forward-socks5<strong>t</strong> verwendet Privoxy Tor-spezifische Erweiterungen des SOCKS-Protokolls wie z. B. <a href=„https://thunk.cs.uwaterloo.ca/optimistic-data-pets2010-rump.pdf“ class=„urlextern“ title=„https://thunk.cs.uwaterloo.ca/optimistic-data-pets2010-rump.pdf“>OptimisticData</a>. Die zweite Regel leitet alle Verbindungen an den lokalen JonDo Proxy für den <a href=„https://anonymous-proxy-servers.net/“ class=„urlextern“ title=„https://anonymous-proxy-servers.net/“>JonDonym</a> Anon-Dienst weiter, wenn man die kostenpflichtigen JonDonym Mix-Kaskaden nutzt, deren Mix-Netzwerkknoten SOCKS unterstützen.</p> </div> <h5 id=„lokale-http-proxy-weiterleitung“>Lokale HTTP-Proxy Weiterleitung</h5> <div class=„level5“ readability=„22“> <p>Mit der Regel werden Verbindungen zur Zieladresse an den lokalen HTTP-Proxy der Anonymisierungs-Anwendung weitergeleitet, der sie über das Anon-Netzwerk zum Server der Zieladresse weiterleitet. Alle Anon-Dienste und -Netzwerke, deren lokale Anwendungen als HTTP-Proxy arbeiten, werden über die Regel bedient.</p> <dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=10“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Syntax</a></dt> <dd readability=„1“> <pre class=„code h“> forward Zieladresse HTTP-Proxy[:Port] </pre></dd> </dl><dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=11“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Beispiele</a></dt> <dd readability=„1“> <pre class=„code h“> forward .i2p localhost:4444 forward / localhost:4001 forward .domain.tld localhost:4001 </pre></dd> </dl><p>Die erste Regel dient der Weiterleitung der Verbindungen durch I2P Tunnels zu Eepsites des <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet08“ class=„wikilink1“ title=„open:anon:netzwerk:anet08“>I2P Anon-Netzwerks</a> über die lokale HTTP-Proxy Schnittstelle der I2P Anwendung. Die zweite Regel leitet alle Verbindungen an den lokalen JonDo Proxy des JonDonym Anon-Dienstes weiter, wenn man die kostenlosen JonDonym Mix-Kaskaden nutzt, für deren Mix-Netzwerkknoten SOCKS nicht verfügbar ist, während die dritte Regel nur Verbindungen zu ausgewählten Domainnamen über die kostenlosen JonDonym Mix-Kaskaden weiterleitet.</p> </div> <h5 id=„lokale-socks-proxy-http-proxy-weiterleitung“>Lokale SOCKS-Proxy -> HTTP-Proxy Weiterleitung</h5> <div class=„level5“ readability=„29“> <p>Mit der Regel werden die Verbindungen zur Zieladresse zuerst an den SOCKS-Proxy der Anonymisierungs-Anwendung weitergeleitet, der sie über das Anon-Netzwerk zum Ausgang-Netzknoten des Anon-Netzwerks weiterleitet. Vom Ausgang-Netzknoten wird die Verbindung über den angegebenen HTTP-Proxy an den Server der Zieladresse weitergeleitet.</p> <p>Die Regel eignet sich dazu, anonymisierte Verbindungen zu Servern herzustellen, die Verbindungen von Ausgang-Netzknoten der Anon-Dienste und -Netzwerke ablehnen bzw. blockieren oder um einen weiteren Dienst zusätzlich anonymisiert zu nutzen, der über HTTP-Proxys angesprochen wird.</p> <dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=12“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Syntax</a></dt> <dd readability=„1“> <pre class=„code h“> forward-socks5[t] Zieladresse SOCKS-Proxy:Port HTTP-Proxy[:Port] </pre></dd> </dl><dl class=„code“ readability=„1“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=13“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Beispiele</a></dt> <dd readability=„3“> <pre class=„code h“> forward-socks5 europa.eu localhost:9050 IP-Adresse:Port forward-socks5 .bit localhost:9050 178.32.31.43:8888 forward-socks5 translate.google.com localhost:9050 googlesharing.riseup.net:80 forward-socks5 encrypted.google.com localhost:9050 gs.netsend.nl:81 </pre></dd> </dl><p>Für die erste Regel sucht man sich einen offenen HTTPS-Proxy bei einem Proxy-Listen Anbieter wie z. B. <a href=„https://www.hidemyass.com/proxy-list/“ class=„urlextern“ title=„https://www.hidemyass.com/proxy-list/“>Hide My Ass!</a> und setzt dessen IP-Adresse und Port ein, um die Blockierung von Verbindungen zur Europäischen Kommission zu umgehen, die per Tor anonymisiert wurden. Die zweite Regel anonymisiert Verbindungen zum Proxy des <a href=„https://dot-bit.org/“ class=„urlextern“ title=„https://dot-bit.org/“>Dot-Bit Projekts</a> per Tor, um sich zu <a href=„https://dot-bit.org/Websites“ class=„urlextern“ title=„https://dot-bit.org/Websites“>Dot-Bit Websites</a> (*.bit) zu verbinden. Die beiden letzten Regeln anonymisieren die Verbindungen zu Googlesharing Proxys (z. B. von <a href=„https://help.riseup.net/en/googlesharing“ class=„urlextern“ title=„https://help.riseup.net/en/googlesharing“>Riseup</a>), die man für Google Dienste benutzen kann, womit sich nebenbei der Cookie- und Captcha-Zwang reduzieren lässt.</p> </div> <h5 id=„direkte-weiterleitung“>Direkte Weiterleitung</h5> <div class=„level5“ readability=„10“> <p>Mit der Regel werden die Verbindungen zur Zieladresse direkt zum Server der Zieladresse weitergeleitet. Die Regel eignet sich für die Definition von Ausnahmen für Verbindungen zu Zieladressen, die nicht anonymsiert bzw. über ein Anon-Netzwerk geleitet werden sollen.</p> <dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=14“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Syntax</a></dt> <dd readability=„1“> <pre class=„code h“> forward Zieladresse . </pre></dd> </dl><dl class=„code“ readability=„2“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=15“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Regel Beispiele</a></dt> <dd readability=„4“> <pre class=„code h“> forward 192.168.*.*/ . forward meine.lokaledomain.local/ . forward 127.*.*.*/ . forward localhost/ . forward .meine-bank.tld:443 . forward .domain.tld:443/login/ . forward downloads.sourceforge.net/project/(.*/)+.*&use_mirror=[a-z0-9]+$ . forward .dl.sourceforge.net/project/(.*/)+[a-z\-\._0-9]+\.(asc|bz2|deb|gz|sig|zip)$ . </pre></dd> </dl></div> <h3 id=„aliase-aktionen-und-filter“>Aliase, Aktionen und Filter</h3> <div class=„level3“ readability=„41“> <p>Aktionen und Aliase werden in der <em>/etc/privoxy/user.action</em> Datei definiert. Aktionen wenden eingebaute Funktionen und definierte Filter an, die der Blockierung und Manipulation dienen:</p> <ul readability=„5“><li class=„level1“> <p>von URLs</p> </li> <li class=„level1“ readability=„2“> <p>von unverschlüsselt übertragenen Webseiteninhalten</p> </li> <li class=„level1“ readability=„4“> <p>von markierten Kopfzeilen, die von Internetanwendungen ausgesendet werden</p> </li> <li class=„level1“ readability=„4“> <p>von markierten Kopfzeilen, die Server zu Internetanwendungen übertragen.</p> </li> </ul><p>Aktionen zielen wie die Weiterleitungsregeln auf alle oder spezifische Domainnamen und Pfade, alle oder spezifische Internetanwendungen und Server-Kopfzeilen. Für die Definition der Domainnamen und Pfade kann man in gleicher Weise wie in den Weiterleitungsregeln Wildcards bzw. Reguläre Ausdrücke einsetzen.</p> <p>Mehrere Aktionen und Filter können miteinander kombiniert und als Alias oder in „Aktionscontainern“ gebündelt werden, um sie allgemein oder auf bestimmte Ziele und markierte Kopfzeilen anzuwenden.</p> <p>Für die Anordnung der Aktionscontainer gilt: für jede Anfrage werden alle Aktionscontainer bzw. die darin enthaltenen Aktionen und Filter von oben nach unten durchgegangen und auf Übereinstimmung mit den Zielmustern und Markierungen überprüft. Alle Aktionen und Filter, die auf verschiedene Aktionscontainer verteilt sind und wo die Übereinstimmung mit den Zielmustern und Markierungen gilt, werden summiert, wobei zuletzt definierte Aktionen und Filter vom gleichen Typ/Zweck vorangehende Aktionen und Filter überschreiben. Deshalb gilt für ihre Anordnung das gleiche <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#schema“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>Schema</a> wie für Weiterleitungsregeln.</p> <p>Bei ihrem Einsatz muss man überlegen, für welche Internetanwendungen die Aktionen und Filter – neben der Verwendung von Privoxy an sich – in Frage kommen. Außerdem muss man abwägen, ob und welchem Umfang Filtermaßnahmen, Blockierungen und Manipulationen zentral über Privoxy durchgeührt werden oder über die Interetanwendung und ihre Plugins, Erweiterungen usw. selbst. Zum Beispiel erübrigen sich für den Firefox Webbrowser viele Aktionen und Filter, wenn man entsprechende <a href=„https://wiki.kairaven.de/open/app/firefox#liste“ class=„wikilink1“ title=„open:app:firefox“>Erweiterungen</a> einsetzt.</p> </div> <h4 id=„aliase-und-aktionen“>Aliase und Aktionen</h4> <div class=„level4“ readability=„27“> <p>Ein Alias ist ein Sammelname für die Zusammenstellung mehrerer Aktionen und Filter. Ist ein Alias definiert, kann er später an anderer Stelle der user.action Datei als {Anker} verwendet werden, um die Eingabe von Kombinationen aus Aktionen und Filtern abzukürzen. Wenn man Aliase nutzen will, müssen sie an erster Stelle in der user.action Datei definiert werden. Der (erste) Abschnitt in der user.action Datei, in der die Aliase stehen, wird mit alias eingeleitet.</p> <dl class=„code“ readability=„1“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=16“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Alias Syntax</a></dt> <dd readability=„2“> <pre class=„code h“> alias aliasname1 = -/+aktionsname1 -/+filter2 usw. aliasname2 = -/+aktionsname4 -/+filter5 usw.
{aliasname1} Ziele oder TAG: </pre></dd> </dl><dl class=„code“ readability=„2“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=17“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Alias Beispiel</a></dt> <dd readability=„4“> <pre class=„code h“> alias
allow-all = -block -filter -hide-referer -crunch-incoming-cookies -crunch-outgoing-cookies \ -add-header -hide-if-modified-since -overwrite-last-modified -crunch-if-none-match \ -server-header-filter +forward-override{forward .} -fast-redirects
{allow-all} wiki.kairaven.de localhost:port </pre></dd> </dl><p>Aktionen und in ihnen referenzierte Filter werden nach den definierten Aliase in der user.action Datei eingetragen. Aktivierte Aktionen und Filter werden mit +, nicht anzuwendende Aktionen und Filter mit - Präfix angegeben. In einem {Aktionscontainer} können folgende Aktionen und Filter als Bestandteile angegeben werden:</p> <dl class=„code“ readability=„1“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=18“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Aktionscontainer Syntax</a></dt> <dd readability=„3“> <pre class=„code h“> { \ -/+aktionsname \ -/+aktionsname{parameter} \ -/+filter{filtername} \ -/+client-header-filter{filtername} \ -/+client-header-tagger{name} \ -/+server-header-filter{filtername} \ -/+server-header-tagger{name} \ } Ziele oder TAG: </pre></dd> </dl><p>Wenn man nur eine oder wenige Aktionen und Filter für Ziele miteinander kombiniert, kann man für einen Aktionscontainer auch Einzeiler verwenden:</p> <dl class=„code“ readability=„1“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=19“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Einzeiler Syntax</a></dt> <dd readability=„2“> <pre class=„code h“> { -/+aktionsname{parameter} -/+filter{filtername} -/+-client-header-filter{filtername} } Ziele oder TAG: </pre></dd> </dl><div class=„table sectionedit10“> <table class=„inline c4“ readability=„28“><col class=„c11“/><col class=„c11“/><col class=„c5“/><thead><tr class=„row0“><th class=„col0“>Bestandteil</th> <th class=„col1“>Beispiel</th> <th class=„col2“>Erklärung</th> </tr></thead><tr class=„row1“ readability=„5“><td class=„col0“>aktionsname</td> <td class=„col1“>crunch-incoming-cookies</td> <td class=„col2“ readability=„5“>Eingebaute Aktion. <p>Beispiel: löscht die <em>Set-Cookie:</em> Antwort-Kopfzeile der Server, sprich eingehende Cookies.</p> </td> </tr><tr class=„row2“ readability=„8“><td class=„col0“>aktionsname{parameter}</td> <td class=„col1“>hide-referrer{forge}</td> <td class=„col2 leftalign“ readability=„5“>Eingebaute Aktion mit zusätzlichem Parameter, der die Aktion näher bestimmt. <p>Beispiel: fälscht die Ursprungsadresse in der <em>Referer:</em> Anfrage-Kopfzeile immer auf die Stammadresse der aufgerufenen Website.</p> </td> </tr><tr class=„row3“ readability=„14“><td class=„col0“>filter{filtername}</td> <td class=„col1“>filter{webbugs}</td> <td class=„col2“ readability=„9“>Angabe des Filters mit der <em>filtername</em> Bezeichnung für Webseiteninhalte, wobei <em>filtername</em> die Verknüpfung zum gleichnamigen Filter ist, der in der <em>user.filter</em> Datei definiert wurde. <p>Beispiel: entfernt in Webseiten den HTML-Code verlinkter, 1×1 Pixel großer Bilddateien, die von fremden Websites geladen werden, um den Besucher zu verfolgen.</p> </td> </tr><tr class=„row4“ readability=„15“><td class=„col0“>client-header-filter{filtername}</td> <td class=„col1“>client-header-filter{hide-tor-exit-notation}</td> <td class=„col2“ readability=„9“>Angabe des Filters mit der <em>filtername</em> Bezeichnung für Kopfzeilen von Internetanwendungen, wobei <em>filtername</em> die Verknüpfung zum gleichnamigen Filter ist, der in der <em>user.filter</em> Datei definiert wurde. <p>Beispiel: entfernt aus der <em>Host:</em> und <em>Referer:</em> Kopfzeile den <em>or-nickname.exit</em> Anteil in URLs bei Verbindungen zu Domains, die mit der <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet05#mapaddress“ class=„wikilink1“ title=„open:anon:netzwerk:anet05“>MapAddress Tor Funktion</a> an einen bestimmten Tor Ausgang-Router gebunden werden, damit der Server korrekte Host: und Referer: Kopfzeilenwerte erhält.</p> </td> </tr><tr class=„row5“ readability=„12“><td class=„col0“>client-header-tagger{name}</td> <td class=„col1“>client-header-tagger{user-agent}</td> <td class=„col2“ readability=„7“>Angabe der Markierung mit der <em>name</em> Bezeichnung für Kopfzeilen der Internetanwendungen, wobei <em>name</em> die Verknüpfung zur gleichnamigen Markierung ist, die in der <em>user.filter</em> Datei definiert wurde. <p>Beispiel: markiert bzw. „erkennt“ in jeder Anfrage der Internetanwendungen den Inhalt der <em>User-Agent:</em> Kopfzeile und speichert sie für die späteren Zuordnung zu einem Aktionscontainer per <em>TAG:^User-Agent: UA-Name</em>.</p> </td> </tr><tr class=„row6“ readability=„8“><td class=„col0“>server-header-filter{filtername}</td> <td class=„col1“>server-header-filter{x-httpd-php-to-html}</td> <td class=„col2 leftalign“ readability=„4“>Angabe des Filters mit der <em>filtername</em> Bezeichnung für Kopfzeilen von Servern, wobei <em>filtername</em> die Verknüpfung zum gleichnamigen Filter ist, der in der <em>user.filter</em> Datei definiert wurde. <p>Beispiel: ändert den Wert <em>application/x-httpd-php</em> der <em>Content-Type:</em> Kopfzeile in <em>text/html</em>.</p> </td> </tr><tr class=„row7“ readability=„12“><td class=„col0“>server-header-tagger{name}</td> <td class=„col1“>server-header-tagger{content-type}</td> <td class=„col2“ readability=„7“>Angabe der Markierung mit der <em>name</em> Bezeichnung für Kopfzeilen der Server, wobei <em>name</em> die Verknüpfung zur gleichnamigen Markierung ist, die in der <em>user.filter</em> Datei definiert wurde. <p>Beispiel: markiert bzw. „erkennt“ in jeder Antwort der Server den Inhalt der <em>Content-Type:</em> Kopfzeile und speichert sie für die späteren Zuordnung zu einem Aktionscontainer per <em>TAG:^Content-Type: MIME Datentyp</em>.</p> </td> </tr></table></div> </div> <h4 id=„filter“>Filter</h4> <div class=„level4“ readability=„23“> <p>Filter werden in der /etc/privoxy/user.filter Datei definiert. Folgende Filtertypen können eingesetzt werden:</p> <ul readability=„5“><li class=„level1“ readability=„2“> <p>Filter für Inhalte der Webseiten (FILTER)</p> </li> <li class=„level1“ readability=„2“> <p>Filter für Kopfzeilen der Internetanwendungen (CLIENT-HEADER-FILTER)</p> </li> <li class=„level1“ readability=„2“> <p>Filter für Kopfzeilen der Servern (SERVER-HEADER-FILTER)</p> </li> <li class=„level1“ readability=„2“> <p>Filter zur Markierung von Kopfzeilen der Internetanwendungen (CLIENT-HEADER-TAGGER)</p> </li> <li class=„level1“ readability=„2“> <p>Filter zur Markierung von Kopfzeilen der Server (SERVER-HEADER-TAGGER)</p> </li> </ul><dl class=„code“ readability=„0“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=20“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Filter Syntax</a></dt> <dd readability=„1“> <pre class=„code h“> FILTER-TYP: name Beschreibung
filter-job1 filter-jobN </pre></dd> </dl><p>Nach Nennung des <em>Filtertyps</em> (z. B. CLIENT-HEADER-FILTER) folgt mit <em>name</em> die Bezeichnung des Filters (z. B. hide-tor-exit-notation). Über die gleiche Bezeichnung mit Nennung des Filtertyps (+filtertyp{name}) in der user.action Datei wird in Aktionscontainern der Filter in der user.action Datei verknüpft und aufgerufen. Zur Information folgt eine kleine, einzeilige Beschreibung des Filterzwecks. Darunter folgen ein- oder mehrmalige Filter-Jobs, die mit PCRE/PCRS Regulären Ausdrücken definiert werden.</p> <dl class=„code“ readability=„1“><dt><a href=„https://wiki.kairaven.de/_export/code/open/anon/netzwerk/anet07?codeblock=21“ title=„Schnipsel herunterladen“ class=„mediafile mf_“>Filter Beispiel</a></dt> <dd readability=„2“> <pre class=„code h“> CLIENT-HEADER-FILTER: hide-tor-exit-notation Removes the Tor exit node notation…
s@^((?:Referer|Host):\s*(?:https?:)?[^/]*)\.[^\./]*?\.exit@$1@i </pre></dd> </dl><p>Das Filter-Beispiel ist in der mitgelieferten <em>/etc/privoxy/default.filter</em> Datei enthalten, aus der man in gleicher Weise Filter in die eigene <em>user.filter</em> Datei übernehmen kann, um sie in der eigenen <em>user.action</em> Datei aufzurufen. Zur Definition eigener Filter-Jobs sind die <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet07#pfade“ title=„open:anon:netzwerk:anet07 ↵“ class=„wikilink1“>Informationen zu Regulären Ausdrücken</a> und das <a href=„https://www.privoxy.org/user-manual/filter-file.html“ class=„urlextern“ title=„https://www.privoxy.org/user-manual/filter-file.html“>Filter Files</a> Kapitel im Privoxy Handbuch heranzuziehen.</p> </div> <h3 id=„praktische-beispiele“>Praktische Beispiele</h3> <h4 id=„useraction“>user.action</h4> <div class=„level4“ readability=„21“> <pre class=„code“> ## Aliase alias allow-all = -block -filter -hide-referer -crunch-incoming-cookies -crunch-outgoing-cookies \ -add-header -hide-if-modified-since -overwrite-last-modified -crunch-if-none-match \ -server-header-filter +forward-override{forward .} -fast-redirects frame-noopt = -crunch-server-header{X-Frame-Options} -server-header-filter{x-frame-security} ## Generell { \ +client-header-tagger{user-agent} \ +change-x-forwarded-for{block} \ +hide-from-header{block} \ +filter{html-annoyances} \ +filter{webbugs} \ +filter{content-cookies} \ +filter{frameset-borders} \ +filter{no-ping} \ +filter{no-targets} \ +filter{kill-resource} \ +crunch-server-header{X-Frame-Options} \ +client-header-filter{hide-tor-exit-notation} \ +server-header-filter{x-httpd-php-to-html} \ +server-header-filter{cache-control} \ +server-header-filter{x-frame-security} \ +limit-connect{80,443,11371} \ +session-cookies-only \ +limit-cookie-lifetime{180} \ +hide-if-modified-since{-60} \ +overwrite-last-modified{randomize} \ +crunch-if-none-match \ } / ## Feedreader, Linkchecker, Download-Manager { \ +client-header-filter{crunch-headers} \ +hide-user-agent{Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0} \ +add-header{Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8} \ +add-header{Accept-Language: en-us,en;q=0.5} \ +add-header{Accept-Encoding: gzip,deflate} \ +hide-referrer{forge} \ +crunch-server-header{X-Frame-Options} \ +crunch-incoming-cookies \ +crunch-outgoing-cookies \ +fast-redirects{check-decoded-url} \ +filter{shockwave-flash} \ +filter{iframes} \ +filter{kill-resource} \ +server-header-filter{x-frame-security} \ } TAG:^User-Agent: Akregator/ TAG:^User-Agent: LinkChecker/ TAG:^User-Agent: Wget/ TAG:^User-Agent: curl/ ## HTTP -> HTTPS (wie HTTPS-Everywhere) { +redirect{s@^http://@https://@} } subdomain.domain.tld ## BREACH / HTTP chunked encoding ## https://community.qualys.com/blogs/securitylabs/2013/08/07/defending-against-the-breach-attack { \ +prevent-compression \ } :443/ ## Ausnahmen {frame-noopt} subdomain.domain.tld {allow-all} p.p config.privoxy.org 192.168.1.1:Port kairaven.de ## Blockierung { +block{Blockiert} +handle-as-empty-document } .doubleclick.net/ www.facebook.com/(extern|plugins)/(login_status|like(box)?|activity|fan)\.php /(.*/)?plugins/wp-likes/ .googleadservices. .google-analytics./ .googlesyndication. </pre></div> <h4 id=„filteraction“>filter.action</h4> <div class=„level4“ readability=„13“> <pre class=„code“> FILTER: html-annoyances Abwehr von HTML Manipulationen. s/(<a\s+href[^>]+resizable=)(['„]?)(?:no|0)\2/$1$2yes$2/igU s/(<a\s+href[^>]+location=)(['“]?)(?:no|0)\2/$1$2yes$2/igU s/(<a\s+href[^>]+status=)(['„]?)(?:no|0)\2/$1$2yes1$2/igU s/(<a\s+href[^>]+scrolling=)(['“]?)(?:no|0)\2/$1$2auto$2/igU s/(<a\s+href[^>]+menubar=)(['„]?)(?:no|0)\2/$1$2yes$2/igU s-</?(blink|marquee).*>–sigU FILTER: webbugs Löscht WebBugs (1x1px Bilddateien). s@<img[^>]*\s(?:width|height)\s*=\s*['“]?[01](?=\D)[^>]*\s(?:width|height)\s*=\s*['„]?[01](?=\D)[^>]*?>@@siUg FILTER: no-targets Filtert target Attribut. s/\starget\s*=\s*(['“]?)_?(blank|new)\1?/ /ig FILTER: shockwave-flash Löscht eingebettete Flash Objekte. s|<object [^>]*macromedia.*</object>|<!– Squished Shockwave Object –>|sigU s|<embed [^>]*(application/x-shockwave-flash\|\.swf).*>(.*</embed>)?|<!– Squished Shockwave Flash Embed –>|sigU FILTER: no-ping Löscht ping Attribute in <a> and <area> Tags. s@(<a(?:rea)?[^>]*?)\sping=(['„]?)([^“'>]+)\2([>\s]?)@\ <strong style=„color:white; background-color:red;“ title=„Privoxy removed ping target '$3'“>PING!</strong>\n$1$4@ig FILTER: frameset-borders Frames immer mit Rahmen und mit Größenveränderung s/(<frameset\s+[^>]*)framespacing=(['„]?)(no|0)\2/$1/igU s/(<frameset\s+[^>]*)frameborder=(['“]?)(no|0)\2/$1/igU s/(<frameset\s+[^>]*)border=(['„]?)(no|0)\2/$1/igU s/(<frame\s+[^>]*)noresize/$1/igU s/(<frame\s+[^>]*)frameborder=(['“]?)(no|0)\2/$1/igU s/(<frame\s+[^>]*)scrolling=(['„]?)(no|0)\2/$1/igU FILTER: iframes Removes all detected iframes. Should only be enabled for individual sites. s@<iframe.*</iframe>@<!– iframe removed by Privoxy's iframe filter –>@Uisg FILTER: kill-resource Killt resource: URIs s|src=„resource:\/\/|src=„http:\/\/|sigU s|href=„resource:\/\/|href=„http:\/\/|sigU s|(<script.*)resource:\/\/(?=.*</script>)|$1http:\/\/|sigU SERVER-HEADER-FILTER: x-httpd-php-to-html Ändert Content-Type: x-httpd-php Kopfzeile auf text/html. s@^(Content-Type:)\s*application/x-httpd-php@$1 text/html@i SERVER-HEADER-FILTER: cache-control Ändert oder löscht Cache-bezogene Server Kopfzeilen. s@^(Cache-Control:)\s.*@$1 private,max-age=3600@i s@^(?:Expires|Pragma|Telligent-Evolution|X-Varnish):.*@@i s@^(Strict-Transport-Security:)\s.*@$1 max-age=2592000 ; includeSubDomains@i SERVER-HEADER-FILTER: x-frame-security Ändert/Setzt X-Frame-Options Header immer SAMEORIGIN s@^HTTP.*@$0\r\nX-Frame-Options: SAMEORIGIN@ CLIENT-HEADER-FILTER: hide-tor-exit-notation Löscht or-nickname.exit aus Host und Referer Kopfzeilen. s@^((?:Referer|Host):\s*(?:https?:)?[^/]*)\.[^\./]*?\.exit@$1@i CLIENT-HEADER-FILTER: crunch-headers Löscht Kopfzeilen für Wechsel auf Firefox UA. s@^(?:Accept|Accept-Language|Accept-Encoding|Accept-Charset|Proxy-Connection):.*@@i CLIENT-HEADER-TAGGER: user-agent Markiert die User-Agent Kopfzeile. s@^User-Agent:.*@$0@i CLIENT-HEADER-FILTER: kill-optout-header Löscht Privacy-by-Obscurity Do-Not-Track Kopfzeilen. s@^(?:X-Behavioral-Ad-Opt-Out|X-Do-Not-Track|DNT):.*@@i </pre></div> <div class=„level2“ readability=„1“> <p><a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet“ class=„wikilink1“ title=„open:anon:netzwerk:anet“>Inhalt</a> | <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet06“ class=„wikilink1“ title=„open:anon:netzwerk:anet06“>Seite 6</a> | <a href=„https://wiki.kairaven.de/open/anon/netzwerk/anet08“ class=„wikilink1“ title=„open:anon:netzwerk:anet08“>Seite 8</a></p> </div> <h2 id=„verweise-auf-aktuelle-seite“>Verweise auf aktuelle Seite</h2> <div class=„level2“ readability=„0“> <p><a href=„https://wiki.kairaven.de/tag/anonym?do=showtag&tag=anonym“ class=„wikilink1“ title=„tag:anonym“ rel=„tag“>anonym</a>, <a href=„https://wiki.kairaven.de/tag/pseudonym?do=showtag&tag=pseudonym“ class=„wikilink1“ title=„tag:pseudonym“ rel=„tag“>pseudonym</a>, <a href=„https://wiki.kairaven.de/tag/anonymisierung?do=showtag&tag=anonymisierung“ class=„wikilink1“ title=„tag:anonymisierung“ rel=„tag“>anonymisierung</a>, <a href=„https://wiki.kairaven.de/tag/anonymitaet?do=showtag&tag=anonymität“ class=„wikilink1“ title=„tag:anonymitaet“ rel=„tag“>anonymität</a>, <a href=„https://wiki.kairaven.de/tag/proxy?do=showtag&tag=proxy“ class=„wikilink1“ title=„tag:proxy“ rel=„tag“>proxy</a>, <a href=„https://wiki.kairaven.de/tag/privoxy?do=showtag&tag=privoxy“ class=„wikilink1“ title=„tag:privoxy“ rel=„tag“>privoxy</a></p> </div> <br/> </html>