IP Adressen in Apache Logfiles anonymisieren

Bei Apache auf einem Ubuntu Server wird in der Standardeinstellung von jedem Besucher die vollständige IP Adresse in den Logfiles gespeichert und erst nach einem Jahr gelöscht.
Wenn man IP Adressen speichert befindet man sich nach wie vor in einer rechtlichen Grauzone (BGH bestätigt: Webserver-Logfiles nicht nach § 100 Abs. 1 TKG erlaubt) Aber schon aus Rücksicht vor der Privatsphäre der eigenen Besucher sollten deren IP Adressen nicht komplett gespeichert werden. Außerdem gilt wie immer: Je weniger sensible Daten man vorhält desto weniger können einem auch abhanden kommen.
Man kann nun die Logfiles komplett deaktivieren, die IP Adressen von Apache entfernen lassen oder mithilfe eines Skripts die IP Adressen zu anonymisieren. Apache selbst biete nur die Möglichkeit eine IP Adresse komplett durch Nullen zu ersetzen. Die Möglichkeit die Adresse nur zu anonymisieren indem ein Teil der IP Adresse durch Nullen ersetzt wird gibt es nicht.

Diese Möglichkeit bietet ein Skript der Swiss Privacy Foundation, welches hier heruntergeladen werden kann: Anonip ist ein Tool zur Anonymisierung von IP-Adressen in Logdateien

Im Gegensatz zu vielen anderen Methoden die ich im Internet gefunden habe funktioniert diese Skript zuverlässig sowohl mit IPv4 als auch mit IPv6 Adressen.

Das Skript kann an beliebiger Stelle gespeichert werden. Anschließend muss nur in der Virtual Host Datei von Apache der Eintrag für die Logfiles angepasst werden, so dass alle Einträge in das Log durch das Skript geleitet werden.

Häufig findet sich in der Config des Virtual Hosts ein Eintrag wie:

CustomLog ${APACHE_LOG_DIR}/access.log combined

Das Skript bietet viele Konfigurationsmöglichkeiten, die auf der Homepage des Projekts nachzulesen sind.
Eine Möglichkeit wäre die oben erwähnten Zeile durch folgende zu ersetzen:

CustomLog "|/pfad/zum/anon-skript.py --ipv4mask 8 --ipv6mask 64 --output /var/log/apache2/techgrub.log" combined

Hier wird bei einer IPv4 Adresse der letzte Block immer durch eine Null ersetzt, also 209.173.53.167 wird zu 209.173.53.0. 20.173.53.210 wird ebenfalls zu 209.173.53.0
Eine IPv6 Adresse wie fde6:a650:e370:1497:12a3:d4b7:e1c9:9b67 wird zu fde6:a650:e370:1497::

Werden die Zeilen durch folgenden Eintrag ersetzt wird je ein weiterer Block anonymisiert:

CustomLog "|/pfad/zum/anon-skript.py --ipv4mask 12 --ipv6mask 64 --output /var/log/apache2/techgrub.log" combined

Aus 209.173.53.167 wird also 209.173.0.0. Eine IPv6 Adresse wie fde6:a650:e370:1497:12a3:d4b7:e1c9:9b67 wird zu fde6:a650:e370::

Wer der Ansicht ist auf das speichern der kompletten IP Adresse der Webseitenbesucher verzichten zu können findet mit diesem Skript eine bequeme Methode zum anonymisieren der Logfiles.

Das Skript bietet außerdem auch die Möglichkeit Logfiles nachträglich zu anonymisieren. So kann z.B. zur Nutzung von Fail2Ban zuerst die komplette IP Adresse gespeichert werden, dann aber einmal täglich oder z.B. nach vor einem Logrotate das Logfile anonymisiert werden mit

cat /pfad/zu/orig_log | /pfad/zu/anonip.py [OPTIONEN] --output /pfad/zu/log


88x31_CC_by
Dieser Artikel ist lizensiert unter einer Creative Commons Namensnennung 4.0 International Lizenz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.