EsPresto.org
Logs nachtraeglich anonymisieren unter Beibehaltung des Datums
Das Problem: Webserver-Logfiles der letzten 6 Jahre mit IP-Adressen und ein schlechtes Gewissen. Die IP-Adressen müssen raus. Weiterhin soll aber das Datum (mtime) der Logfiles erhalten bleiben, da andere Skripte davon abhängen. Und natürlich liegen die Logs gepackt (gzip) vor.
Im Folgenden das Skript um IP-Adressen in gzippten Dateien nachträglich unter Beibehaltung des Datums zu anonymisieren.
- Timestamp merken im Format, welches touch akzeptiert.
- Entpacken in ein temporäres Verzeichnis.
- IP kürzen mit sed.
- Timestamp wiederherstellen mit touch.
- Packen und zurückschieben.
#!/bin/bash
# Anonymize Logfiles
# @author Frank Schubert
TMPDIR=/var/tmp/_anonymize
test -d $TMPDIR || mkdir $TMPDIR
# - file-timestamp merken (spaeter wiederherstellen)
# - entpacken in tempdir
# - anonymisieren
# - orig file timestamp wiederherstellen
# - packen und zurückschieben
# naechstes Element nach Umbruch, statt Leerzeichen
IFS=$'\n'
for param in "$@"; do
# lese timestamp der aktuellen datei + merken
TIMESTAMP=$(date --reference=$param +"%Y%m%d%H%M.%S")
cp $param $TMPDIR
gunzip $TMPDIR/$(basename $param)
# dateiname der entpackten datei; ohne ".gz"
unzipped_filename=$TMPDIR/$(basename $param .gz)
if [ -e $unzipped_filename ]; then
# ip nullen
sed --in-place -e 's/\([0-9]\{1,3\}\.[0-9]\{1,3\}\)\.[0-9]\{1,3\}\.[0-9]\{1,3\}/\1.0.0/g' $unzipped_filename
# timestamp wiederherstellen
touch -t $TIMESTAMP $unzipped_filename
gzip $unzipped_filename
mv ${unzipped_filename}.gz $param
fi
done
Nachtrag Um Logs, die gzippt in verschiedenen Ordnern liegen vom Skript bearbeiten zu lassen hilft *find*:
find . -name "*.gz" -print0 |xargs -n100 -0 ~/anonymize.sh
16:17 04.04.2011 | Permalink | Frank Schubert | Administration | Kommentare[0] | Tags: anonymisieren ip logs anonymize anon apache gzip
Einer unserer Kunden wollte als CMS unbedingt Joomla haben. Nun hat Joomla nicht unbedingt den besten Ruf im Bereich Sicherheit, also musste fastCGI her.
Im Grunde ist die Umsetzung auch recht einfach. Unter Debian müssen nur folgende Pakete zusätzlich zu Apache2 und PHP5 installiert werden: "php-xml-parser, php5-xcache, apache2-suexec, libapache2-mod-fastcgi, libapache2-mod-fcgid, php5-cgi, apache2-mpm-prefork"
Als nächstes müssen wir die php.ini unter /etc/php5/cgi/php.ini noch ein wenig anpassen. Zum einen wird mit open_basedir der Zugriff auf das Verzeichnis wo Joomla installiert werden soll begrenzt, zB /var/www/joomla. Anschließend kann man noch den safe_mode aktivieren und mit disable_functions = system, passthru, phpinfo, show_source,exec, shell_exec, popen, proc_open gesetzt einige Funktionen von PHP deaktivieren.
In der Directory Directive des zu benutzenden Verzeichnisses muss folgender Inhalf eingefügt bzw geändert werden:
FCGIWrapper In der Directory Directive des zu benutzenden Verzeichnisses:
FCGIWrapper /var/www/fcgi_php .php
AddHandler fcgid-script .php
Options Indexes FollowSymLinks MultiViews ExecCGI
/var/www/fcgi_php .php sieht wie folgt aus:
#!/bin/sh
export PHPRC="/etc/php5/cgi"
export PHP_FCGI_CHILDREN=2
export PHP_FCGI_MAX_REQUESTS=500
exec /usr/bin/php5-cgi
Der Eigentümer der PHP Dateien muss ein User mit einer UID <1000 sein.
14:51 10.06.2009 | Permalink | Sven Winkelmann | Administration | Kommentare[0] | Tags: joomla apache
Steckdosenleiste mit Webserver
Jetzt noch in meiner Hand, demnächst in einem unserer Serverschränke: die wahrscheinlich teuerste Steckdosenleiste der Welt:

Wenn ich mich nicht irre kann man Steckdosenleisten mit 8 Steckplätzen bereits für 3-5 Euro bekommen, aber bei denen muss man beim steckerziehen auch die Hände benutzen. Wenn man dieser Steckdosenleiste eine IP-Adresse zugewiesen hat, kann man jeden einzelnen Stecker per Browser „herausziehen“. Und wenn man gerne möchte, dass man der einzige bleibt der die Stecker per Browser schaltet, sichert man die Verbindung zum Steckdosenleistenwebserver mit SSL. Kostet dann insgesamt so um die 1100 Euro.|
Mit einem Webserver der kein SSL beherrscht, bekommt man diese fernsteuerbaren Steckdosenleisten bereits ab knapp 400 Euro.
16:31 26.01.2009 | Permalink | Felix Schwenzel | Administration | Kommentare[0] | Tags: ssl webserver schwenzel apache serverschrank