[[apache:tutorials:x-forwarded-for-ip-loggen]]

Apache X-Forwarded-For-IP loggen


Proxies schicken hin und wieder auch X-Forwarded-For mit. Um das zu filtern habe ich folgende Einstellung:

Das Regelwerk:

  1. gibt es ein X-Forwarded-For-Feld, die X-Forwarded-For-IP loggen (proxy)
  2. ist diese IP jedoch eine interne (zb: 192.168.1.90), nicht loggen (!proxy)
  3. ist kein X-Forwarded-For-Feld vorhanden, die Standard-IP loggen (→LogFormat %a)

Die Konfiguration:


SetEnvIfNoCase X-Forwarded-For ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$ proxy
SetEnvIfNoCase X-Forwarded-For ^10\.([0-9]+)\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.16\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.17\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.18\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.19\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.20\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.21\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.22\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.23\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.24\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.25\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.26\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.27\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.28\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.29\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.30\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.31\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.32\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^172\.33\.([0-9]+)\.([0-9]+)$ !proxy
SetEnvIfNoCase X-Forwarded-For ^192\.168\.([0-9]+)\.([0-9]+)$ !proxy

LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#
# und schliesslich die Logformate fuer X-Forwarded-For
#
# combined_proxy: normales access-logging
# combined_allproxy: eigener proxy-log zur Kontrolle
#
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined_proxy
LogFormat "%{X-Forwarded-For}i via %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined_allproxy

<Virt.Host>
...
CustomLog "|/usr/bin/cronolog /var/www/example.com/logs/access_log.%Y%m%d" combined env=!proxy
CustomLog "|/usr/bin/cronolog /var/www/example.com/logs/access_log.%Y%m%d" combined_proxy
env=proxy
CustomLog "|/usr/bin/cronolog /var/www/example.com/logs/proxy_log.%Y%m%d" combined_allproxy
env=proxy
LogFormat combined
ErrorLog "|/usr/bin/cronolog /var/www/example.com/logs/error_log.%Y%m%d"
...
</Virt.Host>

apache/tutorials/x-forwarded-for-ip-loggen.txt · Zuletzt geändert: 22.12.2010 17:05 von housedog
 

Guestbook