So blockieren Sie bestimmte Domänen und URLs mithilfe von Privoxy

2428
Rerito

Ich habe Privoxy auf meinem Router mit OpenWRT eingerichtet. Der Proxy scheint gut zu funktionieren, da ich mit meinem Datenverkehr surfen kann.

Ich habe versucht, ein minimales Beispiel für das Blockieren mit nur einer Domäne in einer Blockregel festzulegen:

{+block } www.facebook.com 

Diese Regel befindet sich unter der Datei tinyblock.action, die ich in meiner Konfig einbinde /etc/config/privoxy. Die enable-blocksOption ist auf gesetzt 1. Wenn ich versuche, auf Facebook zuzugreifen, blockiert der Proxy nichts.

Eine Idee dazu?

Wie von @MariusMatutiae beantwortet, gibt es ein Problem mit der https-Filterung. Ich habe ein bisschen recherchiert und die Privoxy-Dokumentation sagt ausdrücklich:

4.15. Wie können Privoxy-sichere (HTTPS) URLs filtern?

Da sichere HTTP-Verbindungen verschlüsselte SSL-Sitzungen zwischen Ihrem Browser und der sicheren Site sind und verlässlich sicher sein sollen, kann Privoxy wenig tun, die rohen Kauderwelschdaten jedoch von einem Ende zum anderen unverarbeitet übergeben.

Die einzige Ausnahme ist das Blockieren durch Hostmuster, da der Client Privoxy den Namen des Remote-Servers mitteilen muss, damit Privoxy die Verbindung herstellen kann. Wenn dieser Name einem Host-Only-Muster entspricht, wird die Verbindung blockiert.

In Bezug auf das Blockieren von Anzeigen ist dies weniger eine Einschränkung, als es den Anschein haben mag, da Anzeigenquellen häufig anhand des Hostnamens identifiziert werden können und die Banner, die in eine verschlüsselte Seite eingefügt werden sollen, aus Effizienzgründen unverschlüsselt werden sie zur vollen Macht der Werbeblocker von Privoxy.

"Content-Cookies" (solche, die in den tatsächlichen HTML- oder JS-Seiteninhalt eingebettet sind, siehe Filter )), können in einer SSL-Transaktion unter diesen Bedingungen nicht blockiert werden. Glücklicherweise scheint dies kein sehr verbreitetes Szenario zu sein, da die meisten Cookies auf traditionelle Weise erfolgen.

Trotzdem zeige ich nie, dass Facebook in meinen Protokollen angezeigt wird ...

1
"Oft werden die Banner, die in eine verschlüsselte Seite eingefügt werden sollen, aus Effizienzgründen unverschlüsselt" ... jeder moderne Browser, den ich gesehen habe, warnt davor, da der Seitenkanalleckagen auftritt (die HTTPS-URL ist in Referer-Cookies sichtbar.) ... und das greift nicht einmal in die Probleme der Skriptinjektion über die unsicheren Elemente ein) Ben Voigt vor 8 Jahren 0
@BenVoigt Das ist nicht das Problem. Wenn ich das Dokument richtig verstanden habe, sollte die Blockierungsaktion funktionieren, obwohl der Datenverkehr in HTTPS erfolgt, da ich ein Host-Muster verwende. Rerito vor 8 Jahren 0
Nein, das ist nur ein Kommentar zur technischen Ungenauigkeit der von Ihnen zitierten Dokumentation. Ihr tatsächliches Problem ist wahrscheinlich, dass Ihr System nicht so konfiguriert ist, dass es HTTPS-Verkehr an den Proxy sendet. Verwenden Sie eine explizite Proxy-Konfiguration (im Browser) oder eine transparente Weiterleitung über iptables-Regeln? Ben Voigt vor 8 Jahren 0
@BenVoigt Eine Chance, die Sie gefragt haben ... Bis jetzt bin ich gerade in einem Test-Setup, also wende ich Proxy-Einstellungen auf meinem Computer an. Sobald ich das gewünschte Verhalten überprüft habe, setze ich iptables-Regeln auf dem Router, um den Verkehr durch den Proxy umzuleiten. Ich habe nach der Überprüfung festgestellt, dass ich den https-Proxy nicht eingerichtet habe. Wenn ich dies jedoch tue, bekomme ich den `ERR_TUNNEL_CONNECTION_FAILED` von Chrome Rerito vor 8 Jahren 0
@BenVoigt Nach dieser letzten Bemerkung habe ich versucht, über https auf andere Seiten zuzugreifen, und alles lief gut. Daraus schlussfolgere ich, dass das Privileg es tut. Es wird einfach nicht die übliche blockierte Seite angezeigt (möglicherweise, weil der Anforderungsinhalt nicht bearbeitet werden kann, da er verschlüsselt ist). Ich würde mich freuen, eine Antwort von Ihrem Kommentar zu akzeptieren, da Sie mich auf meinen Fehler aufmerksam gemacht haben :) Rerito vor 8 Jahren 0
Sie können auch kein Leerzeichen zwischen {+ Block und dem Kommentaranfang { Matthew Lock vor 8 Jahren 0

1 Antwort auf die Frage

2
Ben Voigt

Die Proxy-Konfiguration muss so geändert werden, dass HTTPS enthalten ist. Im Browser ist normalerweise eine separate Einstellung für HTTPS-Proxy vorhanden. Wenn Sie einen transparenten Proxy verwenden, benötigen Sie eine zusätzliche Umleitungsregel für iptables für TCP-Port 443.

Wenn Sie diesen Konfigurationsschritt nicht durchführen, stellt Ihr Browser eine direkte Verbindung mit dem HTTPS-Server her, nicht mit Privoxy.

Zum Beispiel die Einstellung in Firefox:

enter image description here

Ich frage mich, ob "SSL-Proxy" bedeutet, dass TLS nicht enthalten ist? Sicherlich nicht, da der Browser meiner Meinung nach nicht wissen kann, ob eine bestimmte Site SSL oder TLS ist, bis eine Verbindung hergestellt wird.