Keine IPs mehr im Apache Log

Man kann ja vieles tun um die IPs aus den Access Logs des Apaches zu anonymisieren:

1. die Logs vor dem Schreiben in ein Skript pipen http://www.zendas.de/technik/sicherheit/apache/index.html
2. via Apache Modul mod-removeip http://www.wirspeichernnicht.de/content/view/14/24/
3. Diverse Skripte via cron laufen lassen um die IPs loszuwerden
4. Logformat anpassen
5. Bestimmt noch 42 andere Moeglichkleiten

Hat alles seine Vor- und Nachteile. mod-removeip klingt ja erst einmal gut, leider funktioniert dadurch die IP basierte Zugriffskontrolle nicht mehr, aber immerhin sind auch die IPs im Errolog unkenntlich. Via log-in-Skript-pipen die letzten Ziffern anonymisieren, klingt auch nett, fuehrt nur dazu, dass pro vhost mind. ein extra Prozess laeuft. Wodurch eventuell Dinge wie ulimit -n 2048 noetig werden und es zu einer gewissen Unuebersichtlichkeit bei der Prozessliste kommen kann. Bei ein paar Vhosts sicherlich kein Problem, bei etlichen hundert leider schon. Die IPs mit Hilfe eines Skripts zu vorgegebenen Zeiten zu “saeubern”, vielleicht sogar gleich mit logrotate verbinden…auch ok, aber im “Nachhinein anonymisieren” gefaellt mir auch nicht.  Ueber das LogFormat kann man die IPs nicht so richtig anonymisieren, aber man kann einfach aus

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

machen.  Schon sind wir die IPs in den Accesslogs los. Funktioniert natuerlich keine logbasierte Zugriffsanalyse mehr und auf den Errorlog IPs sitzen wir immer noch. Errorlogs kann man natuerlich nur im Bedarfsfall aktivieren und ansonsten einfach nach /dev/null schicken.
Alles nicht so einfach. Fuehrt eigentlich zu der Einsicht: Wenn Du keine Logs brauchst, produziere keine.
Als Alternative kann man natuerlich Software wie z. B.  Piwik nutzen, natuerlich mit AnonymizeIP Plugin. Damit hat man wenigstens den Bedarf an Accesslogs erschlagen.

Leave a Reply

Your email address will not be published. Required fields are marked *