Start
Hintergrund / FAQ
Das Gütesiegel
Mitmachen
Anleitungen
Forum
Über uns
Kontakt
Squid Drucken E-Mail

So konfiguriert man den verbreiteten Open Source Proxy "Squid" als anonymen Proxy:

Logging anonymisieren

Das ist relativ einfach, wenn man es weiss (und eine einigermaßen aktuelle squid-Version, d.h. ab 2.5, verwendet), es genügt eine Zeile in der Konfigurationsdatei (überlicherweise squid.conf, meist in /etc oder /etc/squid, evtl. aber auch z.B. in /usr/local/etc):

client_netmask 255.255.255.0

z.B. wenn man ein Subnetz 192.168.0.x oder 172.20.20.x für die zu schützenden IPs persönlich zuordenbarer clients verwendet. Das Ergebnis im Log: die letzte Stelle, die für die Zuordnung alleine maßgeblich ist, wird für alle clients auf 0 gesetzt, d.h. anonymisiert.

Anmerkung 1: angenommen, die privaten clients befinden sich z.B. in 192.168.0.n, d.h. haben Adressen von 192.168.0.1 bis 192.168.0.255 o.ä., und man hat weitere Adressen wie z.B. 192.168.1.x o.ä. in der DMZ, in der i.a. nur von admins updates via proxy eingespielt werden, dann beschränkt obige Anonymisierung gezielt nur die schützenswerten Adressen, man kann durchaus noch sehen, ob in der DMZ irgendwelchen nicht von den Admins gewünschten http-Kommunikationen laufen (z.B. XSS auf Webservern o.ä.).

Anmerkung 2: die Versionen bis 2.4, die sich genauso konfigurieren lassen, hatten ein (eher geringes) information leak in Bezug auf Logging zusätzlicher Informationen in Extra-Logs (z.B. die oft durchaus interessanten user agents, gibt dies doch ein Bild von der Nutzung diverser Browser). Dort wurden nämlich die IPs nicht maskiert! Zwar werden die timestamps im normalen und z.B. agent log unterschiedlich geschrieben und bei mehreren Usern zur gleichen Zeit ist so auch keine Zuordnung möglich, was aber bei einzelnen Usern doch die Anonymisierung aufhebt.

Informationsleck zu besuchten Seiten abdichten

Mindestens ebenso unerwünscht wie das interne Default-IP-Logging ist die Zurückverfolgbarkeit von besuchten Websites aus auf ursprüngliche, interne IP-Adressen von (von dort gesehen) "hinter" dem Proxy.

Das lässt sich ab squid V2.5 (bis V2.4 hieß die Direktive anonymize_headers mit etwas verkürzter Syntax) so in der obigen Konfigurationsdatei erreichen:

visible_hostname proxy.example.com

wenn proxy der hostname und example.com der (interne oder auch nicht) DNS-Eintrag des Proxy Servers ist. Außerdem sind folgende Regeln für den Header Zugriff erforderlich bzw. empfehlenswert:

header_access X-Forwarded-For deny all

header_access Via deny all

verbieten IP-Informationen im Header, aus denen Rückschlüsse über die beteiligten internen IPs möglich sind.

header_access From deny all

header_access Server deny all

header_access WWW-Authenticate deny all

header_access Link deny all

unterbinden weitere information leaks: in verschiedenen Abfragen ergänzt squid nämlich sonst weitere interne IP Adressen im Header, z.B. für links etc. Das braucht die besuchte Seite nicht zu wissen und wird daher ebenfalls unterdrückt.

Wer möchte kann noch eine Agent Anonymisierung einbauen, die verhindert, dass die Site den konkreten Browsertyp ermitteln kann (nur http, vor JS sei hier ausdrücklich gewarnt! s.u.), vor Kollateralschäden bei MSIE only sites sowie evtl. fehlerhafter ECMAscript ("JavaScript" oder JS) Ausführung aufgrund der evtl. falsch gestellten Browserweiche sei aber ausdrücklich gewarnt (von der Verwendung des MSIE ist ohnehin aufgrund seiner klaffenden Sicherheitslöcher dringend abzuraten):

header_replace User-agent Mozilla 5./0 (compatible) Opera or Gecko

ist z.B. eine nicht existierende, sozusagen den kleinsten gemeinsamen Nenner der Gecko-basierten Browser (Firefox, SeaMonkey/Mozilla etc.) sowie von Opera bildende Agent Maske. Sie wirkt aber nur, wenn zusätzlich (vgl.o.) die Regel

header_access User-agent deny all

angegeben wird!

Anmerkung 1: es gibt nicht nur aus Sicherheitsgründen (overflows/exploits bzw. XSS=cross site scripting) den Zwang, Internetbrowser aktuell zu halten, teils sind es ebenfalls Informationslecks zu besuchten Seiten, die mit solchen Updates behoben werden! Außerdem empfiehlt sich stets die default-Abschaltung von Cookies, JavaScript und IFrames, die oft neben Sicherheitslöchern auch unerwünschte Informationen abfragen lassen, was in Opera sehr einfach möglich ist, indem sich diese gezielt auf bestimmten, vertrauenswürdigen Seiten wieder einschalten lassen, obwohl es generell für alle anderen aktiviert bleibt. Bei Firefox sind dazu Add-ons nötig. Auch Flash Inhalte sind hier gefährlich, denn sie können ebenfalls JS (2) ausführen! (Flashblock für Firefox ist hier sinnvoll, evtl. in Opera den plugin gar nicht erst installieren)

Anmerkung 2: auch wenn man squid so sorgfältig als anonymen Proxy konfiguriert hat, hängt der Grad der Anonymität nicht unwesentlich von der Zahl der Nutzer ab — mehr Nutzer zur selben Zeit sind hier besser, haben aber natürlich andererseits einen negativen Effekt auf die Latenz und Übertragungsrate pro User. Zum Nulltarif ist dies eben nicht zu haben.

Quelle