Proxychains durch Squid: CONNECT-Einschränkungen auf Port 80
Unterscheiden Sie gewöhnliche HTTP-Proxy-Anfragen von proxychains HTTP-CONNECT-Tunneln, wenn der Zielport 80 verweigert wird.
Der Browser lädt eine HTTP-Seite über Squid. Dasselbe Ziel schlägt unter proxychains fehl. Das heißt nicht zwangsläufig, dass eines der beiden Programme die falsche Proxy-IP gewählt hat.
Ein gewöhnlicher HTTP-fähiger Client kann die Webanfrage in HTTP-Proxy-Form an den Forward-Proxy senden. Ein generischer Socket-Wrapper braucht dagegen einen Bytetunnel für die Verbindung, die die Anwendung öffnen wollte. Für einen HTTP-Proxy in seiner Kette verwendet proxychains CONNECT.
Das bedeutet, dass eine Klartext-Website auf Port 80 eine CONNECT-Anfrage für Port 80 erzeugen kann. Eine Squid-Richtlinie, die CONNECT nur zu ihrer freigegebenen TLS-Portliste erlaubt, kann diesen Tunnel ablehnen, obwohl normale HTTP-Anfragen an Port 80 erlaubt sind.
Vergleichen Sie Anfragen, nicht nur Hostnamen
Die Dokumentation von proxychains-ng beschreibt dessen HTTP-CONNECT-Unterstützung. Squids Zugriffsregeln können Methode und Zielport unterscheiden. Das sind unterschiedliche Anfragewege zur selben Website.
Lesen Sie die Ablehnung und die beabsichtigte Richtlinie, bevor Sie sie ändern. CONNECT-Zugriff auf jeden Port auszuweiten ist eine erhebliche Änderung; es sollte nicht die Standardreaktion auf eine Wrapper-Unstimmigkeit sein.
Wenn die Anwendung native HTTP-Proxy-Unterstützung hat, kann deren Nutzung einen unnötigen generischen Tunnel für Klartext-HTTP vermeiden. Wenn sie wirklich einen rohen TCP-Tunnel braucht, wählen Sie ein freigegebenes Proxy-Protokoll und eine Portrichtlinie, die einen bereitstellen.
Eine erfolgreiche Browseranfrage ist ein nützlicher Beleg für die Erreichbarkeit des Proxys und für einen unterstützten Anfragemodus. Sie beweist nicht, dass jede Tunnelmethode, jeder Zielport oder jedes Anwendungsprotokoll durch diesen Proxy erlaubt ist.