R3s1stanc3

Ich bin root, ich darf das!

Non-logging Apache Auf Einem Linux Server

In mancen Fällen will man nicht, dass die IP Adressen seiner Besucher gespeichert werden. Aber ein einfaches “Anti-Logging-Plugin” für das benutzte CMS bringt nichts, wenn der Webserver weiter loggt.
Hier ein paar Möglichkeiten, um das Logging unter Apache2 zu deaktivieren.

Apache-Modul removeip:

sudo apt-get install libapache2-mod-removeip
sudo a2enmod removeip
/etc/init.d/apache2 force-reload
Dadurch wird anstatt der richtigen IP für jeden Clienten die IP 127.0.0.1 in die Logs geschrieben

Keine IP Adressen in die access.log schreiben :

/etc/apache2/apache2.conf
In den Zeilen, die mit “LogFormat” beginnen, jedes “%h” löschen, da “%h” die IP Adresse des Clients speichert
/etc/init.d/apache2 force-reload

Gar keine access.log schreiben :

/etc/apache2/sites-available/*
(für JEDE Datei in diesem Ordner)
“CustomLog ${APACHE_LOG_DIR}/access.log combined” ersetzen durch:
“CustomLog /dev/null combined”
Dadurch werden die Logs nach /dev/null geschrieben, sprich gelöscht
/etc/init.d/apache2 force-reload

error.log deaktivieren:

Für die error.log gibt es keine Möglichkeit, nur die IP Adressen vom Logging auszuschließen.
Man muss also die kompletten Logs wieder nach /dev/null schreiben lassen:
/etc/apache2/sites-available/*
(wieder für ALLE Dateien in diesem Ordner)
/etc/apache2/apache2.conf
“ErrorLog ${APACHE_LOG_DIR}/error.log” ersetzen durch:
“ErrorLog /dev/null”
/etc/init.d/apache2 force-reload
Man könnte evtl ein Script in Perl, Python oder so schreiben, dass die IP Adressen aus den error.log’s löscht
oder durch 127.0.0.1 ersetzt und per Cronjob ausgeführt wird, aber dazu hatte ich keine Zeit. Kommt vllt aber noch ;)