Leiten Sie den gesamten Webdatenverkehr (einschließlich https) über den Proxy-Server um

2074
ropstah

Ich möchte einen Filtermechanismus für bestimmte von mir verwendete Websites einrichten, einschließlich der Websites, auf die verwiesen wird https.

Privoxy bietet diese Funktionalität jedoch nur über http.

Ich bin ziemlich vertraut mit Programmieren und Systemmanagement, aber wenn es um Hardcore-Networking geht, fehlen meinem Wissen und meiner Erfahrung etwas.

Ich habe diese Frage / Antwort gefunden, die das httpsProblem durch das Tunneln des Verkehrs mit STunnel zu lösen scheint .

Ich habe Probleme, einige der Konzepte zu platzieren, die ins Spiel kommen. Ist es möglich, dies auf einem einzigen Windows- Computer festzulegen (dh "die Möglichkeit schaffen, einen benutzerdefinierten Privoxy-Filter zu erstellen (nicht nur das Blockieren, wirklich Ändern des Inhalts) für HTTPS-Datenverkehr) , sondern als STunnel-Client zu fungieren ? / server und der Privoxy-Proxyserver?

Jede Anleitung wäre sehr dankbar!

1
Ich habe Nginx schon vorher als Web-Proxy verwendet. Die Konfiguration ist einfach und ich denke an eine Frage in stackoverflow, obwohl ich vergessen habe wo. Richten Sie das SSL-Zertifikat auf nginx ein, senden Sie alle Anforderungen an den Server und hosten Sie es lokal, wo Nginx es zurückkehren kann. Sie können die Client-IP oder was auch immer Sie möchten aus den Anforderungen zu den Kopfzeilen hinzufügen und den Inhalt auf dem Server ändern. ytpillai vor 6 Jahren 1
@ytpillai - Ich verstehe das nicht ... Nehmen wir an, ich setze "nginx" in einem Docker-Container auf meinem lokalen Rechner ein. Soll ich dann den lokalen Computer so konfigurieren, dass er den freigelegten Endpunkt / Port der Docker-Maschine (der auf nginx zeigt) als Proxyserver verwendet? Wo kommt `Privoxy` hier ins Spiel? ropstah vor 6 Jahren 0

2 Antworten auf die Frage

2
ytpillai

Ich denke, Nginx ist deine Antwort. http://nginx.org/de/docs/windows.html

Dort können Sie Ihr SSL-Zertifikat einrichten und alle Clients können eine Verbindung herstellen. Dann müssen Sie die Anforderung nur an den lokalen Host umkehren (hier ist keine SSL-Anforderung erforderlich, da sie nur lokal ist), und der lokalen Anforderung werden Clientheader hinzugefügt.

Clients können in nginx tunneln (dies ist technisch gesehen ein Webserver), und nginx wird ggf. Proxy-Domains oder ips umkehren.

Dann können Sie https://github.com/justcoding121/Titanium-Web-Proxy als Interceptor für den Datenverkehr verwenden und den gesamten Datenverkehr dorthin senden.

Ich habe nur einen Kommentar hinzugefügt, ich kann auch "nginx" für Windows installieren. Aber was dann? Wo kommt `Privoxy` hier ins Spiel? Was muss ich in meiner Windows-Netzwerkkonfiguration als Proxyserver festlegen? ropstah vor 6 Jahren 0
Denken Sie nicht, dass Sie hier Privoxy benötigen, da nginx selbst als Reverse-Proxy fungieren kann. Anscheinend ist es das Beste, bestimmte Protokolle und Websites auf die Whitelist-Liste zu setzen. Sie können also Ihre Reverse-Proxy-Regeln so festlegen, dass nur bestimmte Speicherorte und Protokolle zugelassen werden und alles andere verweigert wird (Standardregelkonfiguration entspricht Standardeinstellung: Alle ablehnen). Es ist nicht erforderlich, einen separaten Proxy-Server zu haben, es sei denn, Sie möchten auch den ausgehenden Datenverkehr filtern. Dann können Sie eine physische Pfsense-Firewall als Brücke für Ihr Netzwerk zu Ihrem Computer einrichten und diese zum Proxy-Server machen. ytpillai vor 6 Jahren 1
Nginx kann eine Anfrage und eine Antwort an einen angegebenen Ort übergeben, und dies scheint das zu sein, was Sie angefordert haben. Und ja, lest einfach den anderen Kommentar, nur Nginx sollte offengelegt werden. Beachten Sie, dass die sicherste Lösung immer eine physische Firewall ist, wenn Sie sich auch über den von Malware befallenen Datenverkehr Sorgen machen, da diese speziell für diesen Zweck entwickelt wurden. ytpillai vor 6 Jahren 1
Die Sache ist, dass `Privoxy` die Funktionalität bietet, bestimmte Hosts / URLs durch Muster abzugleichen und Filter (Perl-Skript-Regex-Ersetzungen) auf die Antworten anzuwenden, die es zurückgibt. Sie scheinen viel mehr mit Networking zu tun zu haben als ich, also gehe ich davon aus, dass "Nginx" entweder Antworten von einer "https" -Verbindung "umwandeln" kann oder diese erneut an "Privoxy" weiterleitet, um die Umwandlung durchzuführen. Hoffentlich spricht die Konfiguration für jeden dieser "Services" für sich (bezüglich der Anforderungspipeline), da ich wirklich keine Ahnung habe, warum dies funktioniert und warum Privoxy 'https'-Transformationen nicht unterstützt. ropstah vor 6 Jahren 0
Nur um sicher zu gehen, ist das, was los ist: `Nginx` leitet eingehende` https'-Anfragen weiter und gibt diese als `http`-Antworten zurück. ropstah vor 6 Jahren 0
Im Wesentlichen fungiert nginx als Brücke zwischen dem Client und dem Server. Der Client stellt über https eine Verbindung zu nginx her, wobei nginx dieselbe Anfrage klont und diese an den lokalen Server sendet, wenn Reverse-Proxying über http erfolgt. Anschließend wird die Antwort über http empfangen und über https an den Client gesendet. Ich empfehle es als Alternative zu Privoxy, da es alle von Ihnen erwähnten Funktionen unterstützt. Für übereinstimmende Hosts und URLs verfügt nginx beispielsweise über eine Suchsyntax in der Location-Eigenschaft einer Regel. ytpillai vor 6 Jahren 0
Wenn Sie nur eine normale index.HTML- oder php-Datei bereitstellen möchten, geben Sie den Stammordner und den Dateinamen des Einstiegspunkts ein. Dies sollte https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms helfen ytpillai vor 6 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/70404/discussion-between-ropstah-and-ytpillai). ropstah vor 6 Jahren 0
Nur um sicher zu gehen: Ich möchte keine Dateien oder Daten "servieren", sondern nur Proxy. Wenn ich mit einem Browser eine Anfrage anstelle, z. B. "https: // google.com", sollte diese umgewandelt werden, bevor sie an den Browser zurückgesendet wird. ropstah vor 6 Jahren 0
Wie im Chat erörtert, ist "nginx" nicht unbedingt die Lösung, aber Ihr Hinweis auf "https: // github.com / justcoding121 / Titanium-Web-Proxy" hilft mir, ein wenig weiter zu kommen. Fortsetzung folgt! ropstah vor 6 Jahren 0
0
cstanke

Privoxy kann SSL (https) nach einer Art und Weise filtern. Siehe Privoxy-FAQ zu SSL .

Willkommen bei Super User! Während der Link eine Antwort auf die Frage liefern kann, ist es [bevorzugt] (// meta.stackoverflow.com/q/8259), die wesentlichen Informationen für die Antwort hier anzugeben und den Link als Referenz bereitzustellen. Vielen Dank! bertieb vor 6 Jahren 1