Durch einen aktuellen Artikel in der C'T über die rechtlichen Probleme mit dem Datenschutz und dem Staatsanwalt, bin ich zur Einsicht gelangt, meine Apache Logs zu anonymisieren. Eine andere Quelle zu dem Thema ist das Datenschutzzentrum.
Ganz einfach kann man das Problem beseitigen, in dem man in der Apache Konfiguration das Loggen der Ip-Adressen abschaltet. Das ist ganz einfach und schnell erledigt. Es gibt auch das mod_removeip, welches den gleichen Zweck erfüllt und aber die Struktur der Logs erhält
Normalerweise sollte man ja gar keinen Grund haben die Zugriffe auf einem Apache zu loggen. Aber für diverse Statistik Tools ist es unverzichtbar das Apache Log auszuwerten. Zum Beispiel möchte der Admin wissen, ob unliebsame Scripte auf seine Webs zugreifen, oder ob Bilder von fremden Seiten eingebunden werden und dergleichen mehr. Doch braucht man wirklich immer die exakten IP-Adressen? Muß man die Logs wochenlang speichern? Zum erkennen der Region von wo aus der Zugriff erfolgte, oder von welchem Provider die Anfrage kommt, reichen eigentlich die ersten 3 Byte einer IPV4 Adresse.
Meine Entscheidung: Das vierte Byte wird verworfen.
Ich habe mir ein kleines Shellscript gebastelt, welches die archivierten Apache Logs der virtualen Domains auf einem Server anonymisiert. Das letzte Byte einer IP-Adresse wird auf 0 gesetzt. Damit weiß evtl. ein Tool nichts anzufangen, weil die 0 keine gültige IP-Adresse, sondern eine Broadcast Adresse ist. Aus Gründen der Performance hielt ich aber ein verwürfeln, also das generieren einer Zufallszahl zwischen 1 und 254 für nicht vertretbar und alle auf eine sagen wir 1 zu setzen war auch nicht der Weisheit letzter Schluss. Außerdem wird das aktuelle Logfile in Ruhe gelassen, der aktuelle Tag hat immer alle Informationen gespeichert. Wer meint, die Zahl zufällig zu setzen wäre besser, nun das ist kein Beinbruch. Die bash Zeile, die eine Zufallszahl zwischen 1 und 254 erzeugt sieht so aus:
$((RANDOM % 254 +1))
Man könnte das auch in einem C Programm erledigen, dann wäre das Performanceproblem obsolet.
Andererseits sind täglich wechselnde Log ja auch nicht sooo groß...
Ich werde es erstmal mit dem Script anonlog.sh und der 0 probieren, wenn es zu Problemen kommt, kann man immer noch ein Progrämmchen schreiben. Das Script funktioniert ohne Änderung nur auf einem Linux Rootserver, der mit ISPConfig V3 verwaltet wird.
Das Script muß leider als root laufen und sollte täglich als cronjob laufen. Achtung: Das ich keine Garantie, Haftung usw. dafür übernehme, sollte klar sein. Das Script ist ganz frisch bei mir installiert. Also vorsichtige Naturen mögen lieber abwarten und Tee trinken.
Eine Variante für ISPConfig V2 habe ich auch, die ist aber noch nicht getestet worden. Bei Bedarf bitte melden.
Mehr als 300mal runter geladen, aber niemand hält es für notwendig, sich mal dazu zu äussern. Verwendet es niemand ausser mir?