Unterschiede zwischen den Revisionen 20 und 21
Revision 20 vom 2019-01-11 09:16:58
Größe: 7014
Autor: anonym
Kommentar: Hinweis Anmeldeinformationen
Revision 21 vom 2019-01-11 09:17:30
Größe: 6950
Autor: anonym
Kommentar: Quatsch, sind ja binäre Dateien
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 97: Zeile 97:
Zudem enthalten unter {{{/var/log}}} die binären Dateien {{{wtmp, btmp, lastlog}}} die vollständigen Anmeldeinformationen. Ein kurze Test mit den Tools {{{last, lastb, lastlog}}} zeigt dir den Umfang. Diese Dateien kannst du ebenfalls per Cron, bspw. mit einem einfachen {{{echo > /var/log/last}}}, leeren. Alternativ kannst du auch mit sed die IP-Adresse anonymisieren. Zudem enthalten unter {{{/var/log}}} die binären Dateien {{{wtmp, btmp, lastlog}}} die vollständigen Anmeldeinformationen. Ein kurze Test mit den Tools {{{last, lastb, lastlog}}} zeigt dir den Umfang. Diese Dateien kannst du ebenfalls per Cron, bspw. mit einem einfachen {{{echo > /var/log/last}}}, leeren.

Diese Seite beschreibt die Konfiguration verschiedener Webdienste mit dem Blick auf die Privatsphäre der jeweiligen Nutzer*innen. Pfadangaben und änhliches beziehen sich auf eine Debian-Jessie-Installation.

Transportwegverschlüsselung

Mittlerweile gibt es mit Let's Encrypt eine ziemlich einfache Möglichkeit, Zertifikate zu Erstellen, die für verschlüsselte Verbindungen benötigt werden. Im Internet gibt es dazu zahlreichen Anleitungen, die das genaue vorgehen für den jeweiligen Dienst beschreiben.

ejabberd

Ejabberd ist ein häufig genutzter Jabber/XMPP-Server. Seit Version 15.06 lässt sich das Logging so einstellen, dass keine sensiblen Daten erhoben werden. Dazu /etc/ejabberd/ejabberd.yml bearbeiten:

hide_sensitive_log_data: true

Horde

Jeder ausgehenden Mail fügt Horde einen Header-Eintrag mit der aktuellen IP-Adresse hinzu, die die Horde-Session gestartet hat. Dies kann recht einfach geändert werden - siehe

nginx

access.log anonymisieren

Nginx legt standardmäßig die Datei /var/log/nginx/access.log an, in der alle Anfragen inkl. der jeweiligen IP gespeichert werden. Nun gibt es mehrere Möglichkeiten, das Verhalten zu beeinflussen - dazu muss jeweils die Datei /etc/nginx/nginx.conf im Abschnitt http bearbeitet werden:

  • Logging deaktivieren:

    access_log off;
  • IP-Adresse durch Platzhalten [ip-addr] ersetzen1:

    log_format noip '[ip-addr] - $remote_user [$time_local]  '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
    
    access_log /var/log/nginx/access.log noip;

error.log anonymisieren

Das Format der Datei /var/log/nginx/error.log kann nicht beeinflusst werden. Sofern der error-Log nicht deaktiviert werden soll2, lassen sich die IP-Adressen per sed anonymisieren. Ein cron-Job mit dem folgenden Kommando könnte diese Aufgabe regelmäßig übernehmen:

sed 's/\([0-9]\{1,3\}\.\)\{3,3\}[0-9]\{1,3\}/x.x.x.x/g' -i /var/log/nginx/error.log

Es ist auch möglich, nginx entsprechend zu patchen.

Redmine

Redmine schreibt seine Logdaten in der Standardkonfiguration nach /var/log/redmine/default/production.log. Die IP-Adresse kann ähnlich wie bei nginx anonymisiert werden.

Postfix

Mailheader

Die Header von ausgehenden Mails geben gewöhnlich viele Infos über die Einsenderin preis (bpsw. aktuelle IP-Adresse, benutzer Mailclient etc.). Diese Header lassen sich heraus filtern. Dazu /etc/postfix/master.cf bearbeiten und für die Einlieferung per Client auf dem Submission-Port einen weiteren Service definieren:

submission inet n       -       -       -       -       smtpd
  -o cleanup_service_name=subclean

...

subclean  unix  n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/header_treatment

Die Datei /etc/postfix/header_treatment wird nun entsprechend gefüllt. Die mit IGNORE markierten Header werden dabei entfernt und die IP-Adresse ersetzt3:

/^Mail-System-Version:/ IGNORE
/^Mailer:/ IGNORE
/^Originating-Client:/ IGNORE
/^User-Agent:/ IGNORE
/^X-Enigmail-Version:/ IGNORE
/^X-Mailer:/ IGNORE
/^X-MimeOLE:/ IGNORE
/^X-Newsreader:/ IGNORE
/^X-Originating-IP:/ IGNORE
/^X-Sender:/ IGNORE
/^Received:.*\(Postfix/ IGNORE

/^Received:.* with (E?SMTPS?A?) id ([a-zA-Z0-9]+)/ REPLACE Received: by mail.example.org (Postfix) with $1 id $2
/^\s*(Received: from)[^\n]*(.*)/ REPLACE $1 [127.0.0.1] (localhost [127.0.0.1])

Logging

Unter Debian loggt Postfix über rsyslog nach /var/log/mail.*. Mit dem Modul mmanon lassen sich die IP-Adressen anonymisieren. Dazu in /etc/rsyslog/rsyslog.conf folgenden Eintrag ergänzen:

$ModLoad mmanon
...
mail.*              action(type="mmanon")
mail.*              -/var/log/mail.log

Üblicherweise werden die Mail-Logdateien mehrere Wochen gespeichert und mittels logrotate rotiert. Anpassen lässt sich das Verhalten etwas versteckt in der Datei /etc/logrotate.d/rsyslog.

Seafile

Seafile speichert in der aktuellen Version einige Daten zu den Nutzer*innen wie Plattform, Version des Seafile-Clients, Name des Geräts und IP-Adresse. Abrufbar sind diese über die Admin-Oberfläche und sollen die Fehlersuche vereinfachen. Mögen einige dieser Informationen dazu ganz brauchbar sein, sind andere zu sensibel, bspw. Name des Geräts (= Hostname) oder die IP-Adresse.

Eine einfache Möglichkeit, diese Daten loszuwerden, ist mittels eines cron-Jobs die entsprechenden Daten aus den Datenbank-Tabellen zu entfernen. Dazu kann ein sql-Skript erstellt werden. In unserem Beispiel heißt das Skript clear_seafile_data.sql. Die zu löschenden Daten befinden sich in der Seahub-mysql-Datenbank:

use seahub-db;
update `api2_tokenv2` set `device_name` = 'device';
update `api2_tokenv2` set `last_login_ip` = '0.0.0.0';

Das Skript kann per cron mit der Zeile mysql < clear_seafile_data.sql aufgerufen werden.

SSH

Die IP-Adressen der sich einloggenden Clients werden unter /var/log/auth.log protokolliert. Unter Debian ist rsyslog dafür zuständig, dass durch das Modul mmanon die IP-Adressen anonymisieren kann. Das Verhindern von Brute-Force-Angriffe mit fail2ban würde so allerdings nicht funktionieren - dafür werden die vollständigen IP-Adressen in der Logdatei benötigt.

Eine Möglichkeit ist, die IP-Adressen mit sed per Cron zu anonymisieren. Der Cron-Job sollte seltener laufen, als die im jeweiligen Jail definierte findtime.

Zudem enthalten unter /var/log die binären Dateien wtmp, btmp, lastlog die vollständigen Anmeldeinformationen. Ein kurze Test mit den Tools last, lastb, lastlog zeigt dir den Umfang. Diese Dateien kannst du ebenfalls per Cron, bspw. mit einem einfachen echo > /var/log/last, leeren.


Fussnoten, Hinweise

  1. Quelle: https://thomas-leister.de/internet/nginx-access-logs-ip-adressen-entfernen-oder-logs-abschalten/ (1)

  2. Abschalten per nginx.conf durch error_log off; (2)

  3. Diese Zeile muss sicher auf dein Mailsystem angepasst werden (3)

Webdienste und Privatsphäre (zuletzt geändert am 2019-01-11 09:17:30 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.