Apache access logs Anonymisieren

ClemensBW

Registered User
Hallo,...

wieder mal ein Problem :)

Ich würde gerne die letzten 3 Stellen der IPs in den Access logs durch Nullen ersetzten, damit die IP keinem User mehr zuzuordnen ist. Leider ist google da nicht sehr Hilfreich. Hat vill. jemand von euch eine Idee?
 
Danke erstmal :)
Code:
perl -p -e 's/^(\d+)\.(\d+)\.(\d+)\.\d+ /\1.\2.\3.000/' /var/log/apache/access.log > /var/log/apache/iptest.log
brachte den erfolg, dass lass ich jetzt erstmal alle paar Stunden per crontab drüberlaufen und bau mir jetzt mal ein script :)

edit:

bin fertig, die howto ist hier zu finden.
 
Last edited by a moderator:
Ich kritisiere dein howto mal hier damit der andere Thread "sauber" bleibt:
Viele User benutzten [man]logrotate[/man], das wird auch per cron gestartet und durch Wechselwirkung der beiden Programme sollte es vorkommen das IPs nicht Anonymisiert werden. Ohne Logrotate können die Logdateien schnell so groß werden das Perl sehr/zu lange braucht.
Du solltest Apache "graceful" neu starten damit er auf jeden Fall die neue INode Nummer der Logdatei mit bekommt.

Ich verweise noch mal auf Log Files - Apache HTTP Server , würden die Logs in Echtzeit anonymisiert werden. Nachteil ist das Perl bzw. sed ständig im Hintergrund läuft, bei Perl sind das 3 MB Arbeitsspeicher"verbrauch", bei sed sollte es weniger sein.
 
Hallo,
generell findec ich den Ansatz sehr gut.
Nun habe ich aber das Problem das ich explizit eine Statistik brauche.
Somit kann webalizer und awstats mit immer den gleichen ips im log nichts anfangen.

Hat jemand ein ähnliches Problem und schon eine Lösung oder Lösungsansatz gefunden?

Viele Grüße dr_dbox
:)
 
Was willst du den genau erreichen?
Wenn du die IPs nur verschleiern willst ohne das sie ihre Eindeutigkeit verlieren reicht im einfachsten Fall ein(bzw. vier) XORs aus das du in den obigen regulären Ausdruck einbaust aus. Wenn du ein sicheres Abbildungsverfahren brauchst solltest du einen Blick in CPAN werfen.
 
Back
Top