Squid 3.3 Transparenter IPv4- und IPv6-Proxy mit TPROXY
3880
James White
Ich versuche, mein transparentes Squid-Setup zu ändern, indem ich generisches NAT, das nur auf IPv4 beschränkt ist, und für die Unterstützung von IPv6 auf TPROXY umstellt. Ich habe Schwierigkeiten, transparente Clients für die Arbeit unter dem neuen Setup zu erhalten. Alle Anforderungen werden jedoch mit Squid erfüllt, wobei bei allen Anfragen der folgende Fehler ausgegeben wird:
"Die angeforderte URL konnte nicht aufgerufen werden"
Anscheinend gibt es irgendwo ein Routing-Problem, aber ich bin mir nicht sicher, was falsch ist.
Ich benutze iptablesund ip6tablesauf meinem DD-WRT-Router und Squid-Proxy iproute2, um die Routing-Teile auf beiden Seiten auszuführen.
Standardmäßig wird das ip6table_mangleModul standardmäßig nicht in DD-WRT geladen, es wurde jedoch in den Build auf meinem Router kompiliert:
eno1ist die Haupt-Ethernet-Schnittstelle, die ich auch loohne Erfolg ausprobiert habe.
Der Datenverkehr wird an die Squid-Box weitergeleitet, sodass der Router anscheinend seine Aufgabe erfüllt. Es ist der Zeitpunkt, an dem der Verkehr bei der Squid-Box endet und dort scheinbar ein Fehler auftritt. Alle Anforderungen werden protokolliert, es werden jedoch 500 Fehler zurückgegeben.
Soweit mir bekannt ist, unterstützt mein Setup TPROXY:
CentOS 7
Tintenfisch 3.3.8 (EPEL)
iptables / ip6tables 1.4.21
Linux-Kernel 3.10
libcap 2.22
Ich habe diese Quellen als Anleitung verwendet, bekomme aber kein funktionierendes Setup.
Irgendwelche Ratschläge, was könnte das Problem sein oder weiter zu debuggen?
1 Antwort auf die Frage
1
James White
Es stellte sich heraus, dass alles korrekt eingerichtet wurde. Das eigentliche Problem war meine cache_peer-Direktive für Privoxy. Der Fehler ist tatsächlich Squid, der besagt, dass er den Datenverkehr nicht an Privoxy weitergeben kann. Dies liegt daran, dass das tproxy-Setup dies verwirrt.
Um dies zu vermeiden, müssen Sie no-tproxydie cache_peer-Zeile hinzufügen