Warum fügt der Squid-Proxy die X-Forwarded-For- und Via-Header nicht wie vorgesehen hinzu?

Warum fügt der Squid-Proxy die X-Forwarded-For- und Via-Header nicht wie vorgesehen hinzu?

Laut der Squid-Proxy-DokumentationÜberUndWeitergeleitet fürHeader sollten standardmäßig festgelegt sein, werden in meiner Konfiguration jedoch nicht angezeigt.

Ich habe eine neue Instanz von Squid installiert und der Einfachheit halber nur http_access allow alldie Konfiguration ergänzt (nicht empfohlen, da unsicher). Aber es funktioniert immer noch nicht.

Ich habe Squid Version 3.5 auf Ubuntu 18.04 und Squid Version 5.2 auf Ubuntu 22.04 ausprobiert. Ich habe es http://httpbin.org/headersim Browser getestet (die ausgedruckten Ergebnisse stammen von Version 3.5):

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate, br", 
    "Accept-Language": "de,en-US;q=0.7,en;q=0.3", 
    "Host": "httpbin.org", 
    "Sec-Fetch-Dest": "document", 
    "Sec-Fetch-Mode": "navigate", 
    "Sec-Fetch-Site": "none", 
    "Sec-Fetch-User": "?1", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0", 
    "X-Amzn-Trace-Id": "Root=1-65d92b79-4f5d01607a3b091342c4e694"
  }
}

Ich habe meine öffentliche IP auch http://icanhazip.comim Browser überprüft. Dieser hat die IP des Proxys zurückgegeben, die Verbindung funktioniert also.

Gibt es Umstände, die ich berücksichtigen muss?

Antwort1

Durch Ausführen eines einfachen Python-Webservers konnte ich feststellen, dass die Header tatsächlich entsprechend gesetzt sind.

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: image/avif,image/webp,*/*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://<web-serverip>:<web-server-port>/
Host: <web-serverip>:<web-server-port>
Via: 1.1 <proxy_name> (squid/5.2)
X-Forwarded-For: <Client-IP>
Cache-Control: max-age=259200
Connection: keep-alive

Es scheint der /headersEndpunkt vonhttp-binhat eine Art Vorverarbeitung, die möglicherweise einige Header entfernt. Das Problem lag also nicht bei Squid selbst, sondern eher beim Mechanismus, der zur Überprüfung seiner Funktionalität verwendet wurde.

verwandte Informationen