Mittwoch, 11. November 2009

WebTrends SDC und die Client-IP

Nach der FAQ "Der SDC Server wird über Load Balancer oder ReverseProxy verwendet und speichert daher immer die IP vom Load Balancer oder Proxy Server. Wie kann trotzdem die IP vom jeweiligen Client erfasst werden?" hatten wir einige Anfragen zu dem Thema und haben das Problem noch intensiver analysiert.

Die beschriebene Konstellation in der FAQ hat einige Probleme. Der Report "Top Visitors" hat nämlich viele Einträge, deren Anfang relativ identisch ist: Die IP vom reverse Proxy. Allerdings ist dieser Report auch bei optimalen Bedingungen nur wenig anders. Die IP-Adresse wäre anders (der Anfang vom String), der Schlussteil ist weiterhin automatisiert generiert und eineindeutig. Ich bin mir daher nicht ganz sicher, was der Vorteil von diesem Report ist (zumindest in dieser Form). Idealerweise würde man diese IDs einem Text wie Vor- und Zuname (sofern vorhanden) zuordnen.

Zum anderen hat die aktuelle Konstellation das Problem mit dem X-FORWARD-FOR-Header. In diesem ist, wie in anderen Supportfällen bereits festgestellt, eine kommagetrennte Liste mit IP-Adressen vorhanden. Für die Spalte CLIENT-IP wird allerdings nur eine einzelne IP benötigt. Die kommagetrennte Liste kann in manchen Fällen auch leer sein. Hier ist die Vermutung, dass das Reporting negativ verfälscht wird.
Wir haben außerdem festgestellt, das in seltenen Fällen eine falsche IP-Adresse als Client-IP protokolliert wurde. Dies hängt damit zusammen, das der X-FORWARD-FOR-Header leer war, aber nicht leer protokolliert wurde, sondern - vermutlich - eine IP der letzten Zugriffe.

Wir haben daher zwei Lösungsansätze für dieses Problem:

Der erste wäre, der SDC wird nicht mehr hinter der Firewall/dem Proxy betrieben, sondern in einen öffentlichen Bereich (was eventuell sicherheitstechnisch nicht geht bzw. nicht erlaubt ist) oder Sie setzen sich mit dem Hersteller des Proxys in Verbindung, damit der Proxy die tatsächliche IP übermittelt. Dies würde sowohl den X-FORWARD-FOR-Header ersetzen, als auch den Top-Visitor-Report korrigieren.

Update: In einem anderen Blog-Eintrag werden noch zwei Beispiele genannt:
Akamai CDN:
[logserver]
enableheaderparams=true
headerparamslist=True-Client-IP:DCS_CLIENTIP
Apache als reverse proxy:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} (.*)
RewriteRule .* - [E=REMOTE_ADDR:%1]
RequestHeader set True-Client-IP %{REMOTE_ADDR}e
RewriteRule ^/(dcs.*)$ http://SDCSERVER:SDCPORT/$1 [P,QSA,L]

Welche Erfahrungen haben Sie mit dem SDC gemacht? Verwenden Sie die aktuelle TagBuilder-Version?
0 Kommentare:
Kommentar veröffentlichen