Zum Inhalt springen
Recht & Compliance

Server-Logs im Shop: Wie lange IP-Adressen bleiben dürfen

Wie lange dürfen IP-Adressen in Server-Logs liegen? Was die DSGVO verlangt, was die fünf Wochen des BfDI bedeuten und wie Rotation, Kürzung und Backups wirken.

18 Min. Lesezeit DSGVOServer-LogsDatenschutz

Kurz und einfach erklärt

Ihr Server schreibt jeden Aufruf Ihres Shops in ein Protokoll. Darin steht auch die Adresse des Besuchers im Netz. Das sind persönliche Daten.

Der Beitrag erklärt, was der Datenschutz zur Dauer der Speicherung sagt. Er zeigt auch, wo solche Daten überall liegen. Zum Beispiel in Sicherungskopien.

Es geht auch darum, wie man Protokolle löscht oder Adressen kürzt.

Wir halten die Angaben dazu in Ihrem Shop aktuell. Wir gleichen sie mit den Einstellungen Ihres Servers ab.

Jede Anfrage an einen Shop hinterlässt eine Zeile im Zugriffsprotokoll: Zeitpunkt, angefragte Adresse, Statuscode, Browserkennung und die IP-Adresse des Besuchers. Der Webserver schreibt diese Zeile, ohne dass jemand sie eingerichtet hätte. nginx nutzt ohne eigene Angabe das vordefinierte Format „combined“, und dessen erstes Feld ist $remote_addr (nginx-Dokumentation). So wächst über Wochen ein Bestand personenbezogener Daten, den im Alltag kaum jemand im Blick hat. Wie lange er bleiben darf, beantwortet kein Gesetz mit einer Zahl. Die Datenschutzaufsicht des Bundes hält für eine Monatsauswertung fünf Wochen (BfDI) Speicherung mit anschließender Zusammenfassung für ausreichend, allerdings in einer Bewertung für öffentliche Stellen des Bundes. Dieser Beitrag ordnet ein, was daraus für einen Shop folgt, wie sich Sicherheitszweck und Auswertung trennen lassen und welche Wartungsaufgaben an Logrotation, gekürzten Adressen, Sicherungen und Staging-Kopien hängen.

Das Wichtigste in Kürze

  • Dynamische IP-Adressen in Server-Logs sind personenbezogene Daten: So hat der EuGH im Urteil C-582/14 vom 19. Oktober 2016 (EuGH) entschieden, sofern der Betreiber rechtliche Mittel hat, die Person mithilfe des Zugangsanbieters bestimmen zu lassen.
  • Für die Server-Logs eines Shops nennt weder die DSGVO noch ein deutsches Gesetz eine feste Speicherfrist. Art. 5 Abs. 1 lit. e DSGVO verlangt, Daten nur so lange identifizierbar zu speichern, wie der Zweck es erfordert.
  • Für Monatsauswertungen hält der BfDI fünf Wochen (BfDI) Speicherung mit anschließender Aggregation für ausreichend. Das ist eine Bewertung für Bundesbehörden und für Shops eine Orientierung, keine Vorgabe.
  • Sicherheitszweck und Statistik gehören in getrennte Logs: das Rohlog mit voller Adresse kurz und begründet, das Auswertungslog mit gekürzter Adresse bis zur Monatsauswertung, danach nur noch Zählwerte.
  • Debian liefert nginx und Apache mit täglicher Rotation und 14 (Debian) aufbewahrten Dateien aus. Das ist eine Paketeinstellung, keine begründete Frist, und gehört geprüft und im Verarbeitungsverzeichnis dokumentiert.
  • Gesicherte und auf Staging kopierte Logs behalten ihre IP-Adressen so lange wie die Sicherung oder Kopie selbst. Die Löschfrist wirkt erst, wenn auch Backups und Testsysteme sie einhalten.

Was im Zugriffsprotokoll steht

Ein Shop protokolliert an mehr Stellen, als im Betrieb sichtbar ist. Die bekannteste ist das Zugriffsprotokoll des Webservers. Bei nginx gilt ohne eigene Angabe das Format „combined“, das mit der Adresse des anfragenden Rechners beginnt (nginx-Dokumentation). Apache verhält sich gleich: Der Platzhalter %h schreibt die IP-Adresse, solange die Namensauflösung HostnameLookups ausgeschaltet ist, und das ist laut Dokumentation die Voreinstellung (Apache HTTP Server Documentation). Wer die Logkonfiguration seit der Installation nicht angepasst hat, speichert also die vollständige Adresse jedes Besuchers, jedes Suchmaschinenrobots und jedes Angreifers.

Dass diese Adressen personenbezogen sind, ist geklärt. Der Europäische Gerichtshof hat im Verfahren C-582/14, noch zur Vorgängerrichtlinie der DSGVO, entschieden, dass eine dynamische IP-Adresse für den Betreiber einer Website ein personenbezogenes Datum ist, wenn er über rechtliche Mittel verfügt, die Person mithilfe der Zusatzinformationen des Zugangsanbieters bestimmen zu lassen (EuGH). Der BfDI folgert daraus für Logfiles allgemein, dass ihre Verarbeitung als Verarbeitung personenbezogener Daten zu werten ist (BfDI). Damit gelten für jede Zeile im Zugriffsprotokoll die Grundsätze der DSGVO: Zweckbindung, Datenminimierung und Speicherbegrenzung. Wie der Webserver selbst gegen Angriffe abgesichert wird, beschreibt der Beitrag zur Server-Härtung für Shops.

Wo IP-Adressen im Shop landen

Webserver: Zugriffs- und Fehlerprotokoll. Vorgeschaltete Systeme: Firewall, Lastverteiler, Schutzschicht gegen automatisierte Angriffe. Anwendung: Protokolle des Shopsystems, Anmeldeversuche, Bestellungen mit gespeicherter Adresse. Systemdienste: das Journal des Betriebssystems, Mail- und SSH-Protokolle. Kopien: Sicherungen, Staging-Systeme und Logauszüge in Tickets. Jede dieser Stellen braucht eine eigene Antwort auf die Frage nach der Frist, denn jede hat ihre eigene Rotation.

Warum kein Gesetz eine Zahl nennt

Die DSGVO regelt Speicherdauern über einen Grundsatz, nicht über Tage. Nach Art. 5 Abs. 1 lit. e DSGVO dürfen personenbezogene Daten nur so lange in einer Form gespeichert werden, die die Identifizierung ermöglicht, wie es für die Zwecke erforderlich ist (DSGVO). Erwägungsgrund 39 wird konkreter: Damit Daten nicht länger als nötig gespeichert werden, soll der Verantwortliche Fristen für ihre Löschung oder regelmäßige Überprüfung vorsehen (DSGVO). Eine Frist festzulegen, ist damit Aufgabe des Verantwortlichen. Ihre Länge bestimmt der Shopbetreiber, und er muss sie begründen können.

Rechtsgrundlage für Server-Logs ist im Shop in der Regel Art. 6 Abs. 1 lit. f DSGVO, das berechtigte Interesse. Die Datenschutzkonferenz beschreibt die Prüfung in drei Stufen (Datenschutzkonferenz): ein berechtigtes Interesse, die Erforderlichkeit der Verarbeitung zu seiner Wahrung und die Abwägung mit den Interessen der Betroffenen im Einzelfall. Für den Sicherheitszweck gibt Erwägungsgrund 49 die Richtung vor: Er nennt die Verarbeitung zur Gewährleistung der Netz- und Informationssicherheit, etwa durch Betreiber von Kommunikationsnetzen und Anbieter von Sicherheitsdiensten, ein berechtigtes Interesse, soweit sie unbedingt notwendig und verhältnismäßig ist (DSGVO). Für den eigenen Shop zeigt das die Richtung, ersetzt aber nicht die eigene Abwägung. Der EuGH hat im selben Verfahren anerkannt, dass ein Betreiber, dort Einrichtungen des Bundes, ein berechtigtes Interesse daran haben kann, die Funktionsfähigkeit seiner Websites über die konkrete Nutzung hinaus zu gewährleisten (EuGH).

Für eine Monatsauswertung der Webseitenbesuche reicht es demnach aus, diese Daten lediglich fünf Wochen zu speichern und in eine aggregierte Form einer Monatsauswertung zu überführen.

BfDI, Datenschutzrechtliche Aspekte bei der Verarbeitung von Logfile-Daten (Originalwortlaut, Bewertung für öffentliche Stellen des Bundes)

Dieser Satz wird gern als Frist für alle Logs zitiert. Er trägt das nicht. Der BfDI bewertet die Verarbeitung durch öffentliche Stellen des Bundes, stützt sie auf Art. 6 Abs. 1 lit. e DSGVO in Verbindung mit dem Bundesdatenschutzgesetz und meint den Zweck „Optimierung der Webseite“ (BfDI). Für diesen Zweck hält er die vollständige IP-Adresse in der Regel nicht für notwendig (BfDI). Eine Frist in Tagen für die Angriffserkennung nennt die Seite nicht. Für einen Shop ist der Wert deshalb eine Orientierung für Auswertungen, keine Vorgabe für das Rohlog, und die Rechtsgrundlage bleibt das berechtigte Interesse mit eigener Abwägung.

ZweckWas das Log brauchtOrientierung für die FristNach Fristende
Sicherheit und AngriffsabwehrVolle IP-Adresse, Zeitpunkt, AnfrageKurz und je Shop begründet; der BfDI nennt dafür keinen Wert in TagenLöschen
FehlersucheAnfrage, Status, Zeitpunkt; die Adresse ist meist entbehrlichBis der Fehler geklärt istLöschen oder kürzen
Auswertung der BesucheGekürzte oder ersetzte AdresseFünf Wochen (BfDI) für eine MonatsauswertungIn Zählwerte überführen
MonatsstatistikKeine Adresse, nur SummenOhne Personenbezug keine Löschpflicht aus der DSGVOBehalten

Zwei Zwecke, zwei Logs

Oft liegt das Problem nicht in der Länge der Frist, sondern in der Vermischung der Zwecke. Ein einziges Zugriffsprotokoll dient zugleich der Angriffsabwehr, der Fehlersuche und der Statistik, und seine Frist richtet sich dann nach dem längsten dieser Zwecke. Für die Abwehr eines Angriffs wird die volle Adresse gebraucht: Sie wird gesperrt, gemeldet oder mit anderen Ereignissen abgeglichen. Für die Frage, wie viele Besuche eine Kategorieseite im Oktober hatte, wird sie nicht gebraucht. Die Datenschutzkonferenz nennt als Beispiel ausdrücklich, Seitenabrufe auf der Basis von Logfiles ohne personenbezogene Daten zu zählen (Datenschutzkonferenz).

Daraus folgt eine Aufteilung in zwei Protokolle. Das Rohlog mit voller Adresse bleibt auf dem Webserver oder der Firewall und hat eine kurze Frist, die aus dem Sicherheitszweck begründet ist. Der BfDI weist darauf hin, dass die Speicherung der unveränderten IP-Adresse abseits der Webserver- und Firewall-Systeme das Risiko der Verarbeitung erhöht (BfDI). Das Auswertungsprotokoll erhält die Adresse nur gekürzt oder ersetzt, wird bis zur Monatsauswertung aufbewahrt und danach in Zählwerte überführt. Wer keine eigenen Auswertungen braucht, lässt das zweite Protokoll weg. Vorgeschaltete Schutzschichten protokollieren jede Anfrage selbst, wie der Beitrag zu WAF und Bot-Schutz zeigt, und ihre Protokolle brauchen eine eigene Frist.

Die Sicherheitsfrist folgt der Erkennung, nicht dem Speicherplatz

Wie kurz ist kurz? Die Antwort steht im eigenen Betrieb: Das Rohlog muss so lange reichen, bis ein Angriff in der Regel erkannt und eingeordnet ist. Wird eine Datenpanne bekannt, die voraussichtlich ein Risiko für die Betroffenen mit sich bringt, ist die Meldung an die Aufsichtsbehörde unverzüglich und möglichst binnen 72 Stunden (DSGVO) fällig, und sie muss unter anderem die Art der Verletzung beschreiben. Das gelingt deutlich leichter, wenn die Protokolle der Tage davor noch vorhanden sind. Wie Auffälligkeiten im Betrieb überhaupt gemeldet werden, beschreibt der Beitrag zu Log-Monitoring und Alerting.

Ein Beispiel aus der Saison: Wer in der Aktionswoche Fehlversuche am Gutscheinfeld oder auffällige Anmeldungen untersucht, braucht die Adressen der letzten Tage, nicht die des Frühjahrs. Wie solche Muster aussehen und welche Daten die Prüfung braucht, zeigt der Beitrag zu Rabattcodes in der Black Week. Die Begründung der Frist hält fest, welche Fälle das Rohlog abdecken soll, wie schnell der Betrieb solche Fälle typischerweise bemerkt und warum eine längere Aufbewahrung keinen zusätzlichen Schutz bringt.

IP-Adressen kürzen, aber wirksam

Kürzen heißt, den hinteren Teil der Adresse zu verwerfen. Eine IPv4-Adresse ist 32 Bit (RFC 791) lang, üblich ist das Entfernen des letzten Bytes. Die Hilfsfunktion IpUtils::anonymize des Symfony-Frameworks, auf dem auch Shopware aufbaut, entfernt in der Voreinstellung 1 Byte bei IPv4 und 8 Byte bei IPv6 (Symfony). Für IPv4 ist das ein gängiger Kompromiss: Das Netz bleibt für Auswertungen erkennbar, der einzelne Anschluss nicht mehr ohne Weiteres.

Bei IPv6 reicht dieselbe Regel nicht. Eine IPv6-Adresse ist 128 Bit (RFC 4291) lang, und die hinteren 64 Bit (RFC 4291) bilden bei den üblichen Adressen die Schnittstellenkennung. Wer genau diesen Teil entfernt, behält das Netzpräfix, und das gehört häufig zu einem einzelnen Anschluss. Die Empfehlung für die Adressvergabe sieht für Heimanschlüsse deutlich mehr als ein einzelnes /64-Netz (RFC 6177) vor. Die Beispielkonfiguration unten behält deshalb bei IPv6 nur die ersten drei Gruppen. Ob das genug Abstand schafft, hängt von der Vergabepraxis der Zugangsanbieter ab; wer es enger braucht, behält nur zwei Gruppen und hält die Entscheidung schriftlich fest.

AdresstypLängeSymfony entfernt in der VoreinstellungWas übrig bleibt
IPv432 Bit (RFC 791)1 Byte (Symfony)Die ersten drei Byte, also ein /24-Netz
IPv6128 Bit (RFC 4291)8 Byte (Symfony)Das /64-Präfix, das häufig noch zu einem Anschluss gehört (RFC 6177)

Ersetzen statt kürzen ist der zweite Weg. Der BfDI nennt eine Änderung der IP-Adresse, gegebenenfalls per Hash-Verfahren, als Maßnahme, die das Risiko angemessen mindern kann, ohne den Zweck zu beeinträchtigen (BfDI). Ein einfacher Hashwert über eine IPv4-Adresse leistet das allerdings kaum: Bei 32 Bit lässt sich der gesamte Adressraum durchrechnen und jedem Hashwert seine Adresse wieder zuordnen. Wirksam wird das Ersetzen erst mit einem geheimen Schlüssel, der regelmäßig gewechselt und danach vernichtet wird. Art. 32 DSGVO nennt die Pseudonymisierung ausdrücklich als technische Maßnahme (DSGVO). In nginx lässt sich das Kürzen ohne Zusatzmodul abbilden:

conf.d/log-auswertung.conf
# Zweites Zugriffsprotokoll mit gekürzter Adresse für Auswertungen (http-Kontext).
# IPv4: letztes Byte wird 0. IPv6: nur die ersten drei Gruppen (48 Bit) bleiben.
# Kurzschreibweisen mit "::" in den ersten drei Gruppen landen beim Standardwert "-".
map $remote_addr $ip_kurz {
    "~^(?<v4>\d+\.\d+\.\d+)\.\d+$"                          $v4.0;
    "~^(?<v6>[0-9a-f]{1,4}:[0-9a-f]{1,4}:[0-9a-f]{1,4}):"   $v6::;
    default                                                 "-";
}

log_format kurz '$ip_kurz - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" "$http_user_agent"';

# Eigenes Verzeichnis, damit die Paketregel für /var/log/nginx/*.log nicht greift
access_log /var/log/nginx/auswertung/access-kurz.log kurz;

Die Zeilen gehören in den http-Kontext. Führt ein server-Block eigene access_log-Anweisungen, gilt die äußere Angabe dort nicht, und die Zeile für das Auswertungsprotokoll wird in diesem Block ergänzt. Das Rohlog läuft daneben unverändert weiter und behält seine kurze Frist. Das Verzeichnis für das Auswertungsprotokoll wird vor dem Neuladen angelegt. Ein eigenes Verzeichnis ist nötig, weil die Rotationsregel des Pakets alle Dateien nach dem Muster /var/log/nginx/*.log erfasst und logrotate eine Datei, die in zwei Regeln steht, mit einem Fehler quittiert.

Logrotation: Vorgaben prüfen statt erben

Wie lange Logs tatsächlich liegen, entscheidet auf vielen Linux-Servern logrotate. Die Pakete bringen dafür eigene Vorgaben mit. Debian liefert nginx und Apache mit täglicher Rotation und 14 (Debian) aufbewahrten Dateien aus, dazu kommt die laufende Datei. Regeln ohne eigene Angaben erben aus der globalen Datei die wöchentliche Rotation und die Anweisung, 4 Wochen (Debian) an alten Protokollen zu behalten. Ein Log, für das es gar keine Regel gibt, rotiert logrotate überhaupt nicht. Beide Werte sind Paketeinstellungen. Ob sie zum Zweck eines bestimmten Shops passen, prüft bei der Installation in der Regel niemand, und genau diese Prüfung ist der Kern der Frist.

Drei Einstellungen verdienen dabei besondere Aufmerksamkeit. rotate legt fest, wie oft ein Log rotiert wird, bevor es entfällt; mit dem Wert -1 werden alte Protokolle gar nicht entfernt, außer maxage greift (logrotate-Handbuch). maxage entfernt rotierte Dateien ab einem Alter in Tagen, prüft dieses Alter aber nur, wenn das Log tatsächlich rotiert wird (logrotate-Handbuch). Bleibt ein Log leer und ist notifempty gesetzt, bleiben deshalb auch die alten Dateien liegen. Und shred überschreibt Dateien vor dem Löschen; ohne die Option werden sie nur entfernt (logrotate-Handbuch).

/etc/logrotate.d/nginx-auswertung
# /etc/logrotate.d/nginx-auswertung
# Auswertungsprotokoll: fünf Wochen à sieben Tagesdateien, danach nur die Monatsauswertung
/var/log/nginx/auswertung/access-kurz.log {
    daily
    rotate 35
    maxage 35
    missingok
    compress
    delaycompress
    sharedscripts
    postrotate
        invoke-rc.d nginx rotate >/dev/null 2>&1
    endscript
}

Neben logrotate gibt es Stellen mit eigener Logik. Das Systemjournal löscht ohne Einstellung nicht nach Alter: MaxRetentionSec steht in der Voreinstellung auf 0 (systemd), die Funktion ist damit ausgeschaltet, und die Dokumentation nennt das Durchsetzen von Aufbewahrungsrichtlinien ausdrücklich als Grund, den Wert zu ändern. Anwendungen auf Basis von Symfony schreiben ihre Protokolle häufig über Monolog. Dessen rotierender Handler behält ohne Angabe die Dateien unbegrenzt, der Wert 0 bedeutet dort keine Grenze (Monolog). Ob die Anwendungsprotokolle eines Shops IP-Adressen enthalten und wie viele Dateien sie behalten, steht in der Konfiguration des einzelnen Shops, und dort wird nachgesehen.

Backups und Staging-Kopien mitdenken

Die sauberste Logrotation endet am Rand des Servers. Eine Sicherung, die /var/log mitnimmt, hält jede Logzeile so lange vor wie die Sicherung selbst, bei einer Aufbewahrung über Monate also Monate. Dasselbe gilt für Staging-Systeme, die als vollständige Kopie der Produktion entstehen, und für Logauszüge, die in Tickets, Chats oder E-Mails an Dienstleister landen. Für die Frist zählt nicht, wann das Original rotiert, sondern wann die letzte Kopie verschwindet.

Für Sicherungen gibt es zwei saubere Wege: Logverzeichnisse von der Sicherung ausnehmen, wenn die Logs für die Wiederherstellung keine Rolle spielen, oder die Aufbewahrung der Sicherung an der kürzesten enthaltenen Frist ausrichten. Wie Löschpflichten und Sicherungen allgemein zusammenpassen, behandelt der Beitrag zur DSGVO-konformen Datensicherung. Für Staging-Systeme gilt: Logs werden beim Kopieren ausgelassen oder geleert, und das Testsystem bekommt eine eigene, kurze Rotation. Wie Testumgebungen ohne unnötige Echtdaten auskommen, zeigt der Beitrag zu Staging-Umgebungen.

  • Bestand erfasst: alle Stellen, an denen IP-Adressen geschrieben werden, vom Webserver über Firewall und Anwendung bis zu Journal und Mail.
  • Je Log ein Zweck und eine Rechtsgrundlage festgehalten, Rohlog und Auswertungslog getrennt.
  • Rotation je Log gelesen statt vermutet: rotate, maxage und notifempty geprüft.
  • Ältestes vorhandenes Log mit der dokumentierten Frist verglichen, auf dem Server, in der Sicherung und auf Staging.
  • Kürzung bei IPv6 geprüft: Bleibt nach dem Kürzen noch das Präfix eines einzelnen Anschlusses übrig?
  • Zugriff auf Rohlogs auf den Betrieb beschränkt; Auswertungen arbeiten nur mit dem gekürzten Log.
  • Logauszüge in Tickets und E-Mails gekürzt, bevor sie an Dritte gehen.
  • Frist und Löschweg im Verarbeitungsverzeichnis und in der Datenschutzerklärung nachgezogen.

Der Vergleich mit dem ältesten vorhandenen Log ist die einfachste Messung, ob die Frist tatsächlich gilt. Das folgende Skript nennt je Verzeichnis die älteste Zugriffsdatei und ihr Alter nach Änderungszeit; Rohlog und Auswertungslog misst es getrennt, damit die längere Frist des einen die kürzere des anderen nicht verdeckt. Das ist der Zeitpunkt des letzten Eintrags, denn logrotate übernimmt ihn beim Komprimieren; der älteste Eintrag der Datei kann bis zu einem Rotationsintervall früher liegen:

aeltestes-log.sh
#!/usr/bin/env bash
# Ältestes Zugriffsprotokoll je Verzeichnis und sein Alter in Tagen (nach Änderungszeit)
# -maxdepth 1 hält Rohlog und Auswertungslog getrennt
jetzt=$(date +%s)
for dir in /var/log/nginx /var/log/nginx/auswertung /var/log/apache2; do
  [ -d "$dir" ] || continue
  find "$dir" -maxdepth 1 -type f -name 'access*' -printf '%T@ %p\n' \
    | sort -n | head -n 1 \
    | awk -v jetzt="$jetzt" '{ printf "%s: %d Tage\n", $2, (jetzt - $1) / 86400 }'
done

Verzeichnis und Datenschutzerklärung nachziehen

Eine Frist wirkt erst, wenn sie aufgeschrieben ist. Das Verzeichnis der Verarbeitungstätigkeiten soll nach Art. 30 Abs. 1 lit. f DSGVO, wenn möglich, die vorgesehenen Fristen für die Löschung der verschiedenen Datenkategorien enthalten (DSGVO). Die Datenschutzerklärung muss nach Art. 13 Abs. 2 lit. a DSGVO die Dauer der Speicherung nennen oder, falls das nicht möglich ist, die Kriterien für ihre Festlegung (DSGVO). Und nach Art. 5 Abs. 2 DSGVO muss der Verantwortliche die Einhaltung der Grundsätze nachweisen können, auch die der Speicherbegrenzung (DSGVO).

Die Datenschutzkonferenz beschreibt eine verbreitete Abkürzung: Pauschale Feststellungen, eine Verarbeitung sei nach Art. 6 Abs. 1 lit. f DSGVO zulässig, erfüllen die gesetzlichen Anforderungen nicht, finden sich aber häufig in Datenschutzerklärungen (Datenschutzkonferenz). Für Server-Logs heißt das: Zweck, berechtigtes Interesse und Frist werden konkret benannt, getrennt für das Rohlog und für das Auswertungslog. Wer Adressen kürzt, schreibt auch das hinein, denn es ist Teil der Abwägung.

Das IT-Grundschutz-Kompendium des BSI ergänzt die organisatorische Seite. Im Baustein zur Protokollierung heißt es, dass Protokollierungsdaten nach einem festgelegten Prozess gelöscht werden müssen und technisch unterbunden werden muss, dass sie unkontrolliert gelöscht oder verändert werden (BSI IT-Grundschutz). Zusätzlich sollen die ausführenden Administratoren selbst keine Berechtigung haben, aufgezeichnete Protokolle zu verändern oder zu löschen (BSI IT-Grundschutz). Für einen Shop ist der Grundschutz kein Gesetz, aber eine anerkannte Beschreibung dessen, was ein geordneter Löschweg ist.

Zweck

Sicherheit, Fehlersuche oder Auswertung, je Log genau einer. Sonst bestimmt der längste Zweck die Frist.

Rechtsgrundlage

Im Shop in der Regel das berechtigte Interesse, mit konkreter Abwägung statt eines Pauschalsatzes.

Frist

Ein Wert mit Begründung, der zur Konfiguration passt und sich am Server nachmessen lässt.

Kürzung

Wie viele Bit der Adresse übrig bleiben, getrennt festgelegt für IPv4 und IPv6.

Kopien

Sicherungen, Staging-Systeme und Exporte mit ihren eigenen Aufbewahrungen.

Zugriff

Wer Rohlogs lesen darf und wer nur die gekürzten Auswertungen sieht.

Die Frist im Wartungstakt halten

Alle Stellen erfassen, an denen IP-Adressen geschrieben werden: Webserver, vorgeschaltete Systeme, Shopsystem, Systemjournal, Mail. Für jede Stelle Pfad, Format und Rotation notieren.

Gerade der letzte Schritt fällt in der Praxis leicht weg, weil die Einstellung einmal stimmt und danach selten jemand nachsieht. Ein Paketupdate, ein Serverumzug oder eine neue Schutzschicht vor dem Shop bringt eigene Logs und eigene Vorgaben mit. Neben Festplattenbelegung und Fehlerlogs, die das Monitoring überwacht, gehört deshalb auch das Alter des ältesten Logs zu den Werten, die regelmäßig geprüft werden sollten. Wie Protokolle mit ihren Voreinstellungen eine Partition füllen, beschreibt der Beitrag zum Speicherplatz im Shop.

Im Wartungsvertrag laufen diese Punkte zusammen. Die DSGVO-Updates umfassen die Pflege der Datenschutzerklärung mit ihren Speicherdauern und des Verzeichnisses der Verarbeitungstätigkeiten. Webserver-Konfiguration und Sicherungen gehören zur technischen Betreuung, die unter Leistungen beschrieben ist. Welche Reaktionszeiten und Pakete gelten, regelt der SLA-Wartungsvertrag. So stehen Frist, Konfiguration und Dokumentation an einer Stelle und laufen nicht auseinander.

Quellen

Dieser Artikel basiert auf Daten aus: BfDI (Bundesbeauftragte für den Datenschutz und die Informationsfreiheit), Datenschutzrechtliche Aspekte bei der Verarbeitung von Logfile-Daten; Verordnung (EU) 2016/679, Datenschutz-Grundverordnung (DSGVO); EuGH, Urteil vom 19. Oktober 2016, Rechtssache C-582/14; Datenschutzkonferenz, Orientierungshilfe für Anbieter:innen von digitalen Diensten, Version 1.2; BSI, IT-Grundschutz-Kompendium, Baustein OPS.1.1.5 Protokollierung; nginx-Dokumentation, Modul ngx_http_log_module; Apache HTTP Server Documentation, mod_log_config; Debian, Pakete nginx, apache2 und logrotate; logrotate-Handbuch; systemd, journald.conf; Symfony, IpUtils; Monolog, RotatingFileHandler; IETF, RFC 791, RFC 4291 und RFC 6177. Alle Angaben wurden am 5. Oktober 2026 gegen die genannten Quellen abgeglichen.

Verwandte Artikel

Recht & Compliance

Consent-Wartung 2026: Banner und Skript-Drift im Shop

Nach jedem Update laden Skripte vor der Einwilligung: Wie Skript-Inventar, Prüfprotokoll, Sperrvoreinstellung und CSP die Consent-Konfiguration aktuell halten.

13 Min. Lesezeit
Sicherheit

DSGVO-konforme Datensicherung und Aufbewahrung im Shop

DSGVO und Backups vereinen: Rechtsgrundlage, Aufbewahrungsfristen, Löschkonzept, Recht auf Löschung, Verschlüsselung, Auftragsverarbeitung, EU-Speicherort.

13 Min. Lesezeit
Wartung & Updates

WordPress-Sicherheitsupdates: Was alte Zweige noch bekommen

WordPress 7.1.2 schloss eine kritische Lücke, der Fix kam als Gefälligkeit bis 4.7 zurück. Was ältere Zweige erhalten, was nicht und wann der Sprung fällig ist.

20 Min. Lesezeit