Ziel:
Eine praxiserprobte, einfach umsetzbare Strategie, die Ausfälle (Hardware, Ransomware, Bedienfehler), versehentliche Löschungen und Katastrophen (Brand, Diebstahl) abfedert – und **Wiederherstellung** planbar macht.
Merke: Eine Backupstrategie ist nur so gut wie die RĂĽcksicherung. Ohne Restore-Test ist alles nur Hoffnung.
| Risiko | Beispiel | MaĂźnahme in der Strategie |
|---|---|---|
| Ransomware | VerschlĂĽsselte Shares/VMs | Immutable Ziel + Offline Kopie + getrennte Admin-Konten |
| Fehlbedienung | „rm -rf“, versehentliches Löschen | Versionierung + tägliche Inkremente + schnelle Restore |
| Hardwaredefekt | RAID-Ausfall, defekte SSD | Mind. 2 Ziele + Offsite |
| Standortverlust | Brand/Diebstahl | Offsite/Cloud/Tape |
| Dateninkonsistenz | Offene DB-Transaktionen | Applikations-aware Backups (VSS, LVM, Snapshots) |
Praxis: Täglich inkrementell, wöchentlich synthetisches Full, monatlich „echtes“ Full als Archiv.
| Ebene | Zyklus | Aufbewahrung | Medium/Ziel |
|---|---|---|---|
| Son | täglich (inkrementell) | 7–14 Tage | schneller Storage/NAS |
| Father | wöchentlich (Full/Synthetic) | 4–8 Wochen | NAS + Offsite |
| Grandfather | monatlich (Full) | 6–12 Monate | Offsite (Cloud immutable/Tape) |
| Yearly | jährlich (Full) | 5–10 Jahre* | Tape/WORM (Compliance)1) |
mysqldump --single-transaction, pg_dump, xtrabackup)..env, Secrets, TLS-Zertifikate, Datenbanken im Container per Dump sichern.restic check, borg check, Prüfsummen.# 1) Repo initialisieren (Beispiel: S3-kompatibles Ziel) export RESTIC\_REPOSITORY="s3:[https://s3.example.com/bucket](https://s3.example.com/bucket)" export RESTIC\_PASSWORD="STRONG-PASSPHRASE" export AWS\_ACCESS\_KEY\_ID="AKIA..." export AWS\_SECRET\_ACCESS\_KEY="..." restic init # 2) Täglich: inkrementelles Backup inkl. wichtiger Verzeichnisse restic backup  /etc /var/backups /home /opt/stacks  --tag daily # 3) Retention (Beispiel GFS) restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune # 4) Integritätscheck (z. B. wöchentlich) restic check
export BORG\_REPO="ssh://backup\@backuphost:/repositories/node1"
export BORG\_PASSPHRASE="STRONG-PASSPHRASE"
borg init --encryption=repokey-blake2 "\$BORG\_REPO"
borg create --stats --progress "\$BORG\_REPO"::"{now:%Y-%m-%d\_%H-%M}" 
/etc /var/backups /home /opt/stacks
borg prune -v --list "\$BORG\_REPO" --keep-daily=14 --keep-weekly=8 --keep-monthly=12
borg check -v "\$BORG\_REPO"
# MariaDB/MySQL (konsistent via single-transaction) mysqldump --single-transaction --routines --triggers --databases appdb  | gzip > /var/backups/mysql/appdb\_\$(date +%F).sql.gz # PostgreSQL pg\_dump -Fc appdb > /var/backups/pgsql/appdb\_\$(date +%F).dump
# Named Volume als Tar sichern docker run --rm  -v meine\_daten:/src\:ro  -v /var/backups/docker:/dst  alpine sh -c 'cd /src && tar czf /dst/meine\_daten\_\$(date +%F).tgz .' # Compose & .env & Labels sichern (Infrastructure as Code) cp -a /opt/stacks/\* /var/backups/stacks/\$(date +%F)/
# Proxmox: vzdump (vollständig, konsistent) vzdump 100 --mode snapshot --compress zstd --storage backup-nfs --mailnotification always # Windows/Hyper-V: Bare-Metal/Volumes (als Admin PowerShell) wbadmin start backup -backupTarget\:E: -include\:C: -allCritical -quiet
| Aufgabe | cron | Kommando/Script |
|---|---|---|
| Täglich 01:00 Inkrement | 0 1 * * * | restic backup ... && curl https://hc/ping/ok |
| Wöchentlich So 02:00 Full | 0 2 * * 0 | restic backup --tag weekly && restic forget ... |
| Monatlich 03:00 Check/Prune | 0 3 1 * * | restic check && restic prune |
| DB-Dumps 00:30 | 30 0 * * * | mysqldump/pg_dump ... |
| Volumes 00:45 | 45 0 * * * | docker run ... tar czf ... |
== Incident: Datenverlust/Ransomware == Zeitpunkt: ______ Ticket: ______ Melder: ______ 1. Lage bewerten: Welche Systeme betroffen? RPO/RTO? 2. Isolieren: Netzwerkzugriff einschränken, Admin-Konten prüfen. 3. Quelle wählen: Jüngstes sauberes Backup (Immutable bevorzugt). 4. Restore-Reihenfolge: a) Verzeichnis-/Datei-Restore für schnelle Wiederanlaufpunkte b) Datenbanken + Applikationen (abhängigkeitsbasiert) c) Dienste/VMs in Startreihenfolge 5. Validierung: Smoke-Tests, Integrität, Anwendertests. 6. Dokumentation: Dauer (RTO), Datenalter (RPO), Lessons Learned.
â–˘ RPO/RTO pro System festlegen und dokumentieren
â–˘ 3-2-1-1-0 konkret planen (Ziele, Medien, Offsite, Immutable)
▢ Backup-Software wählen (restic/borg/veeam/Proxmox/…)
â–˘ Sensitive Daten verschlĂĽsseln; Keys offline sichern
â–˘ Automatisierung (cron/systemd, Jobs, Webhooks/Alarme)
â–˘ Onboarding-Prozess fĂĽr neue Systeme/Container/DBs/
â–˘ Restore-Test (Datei, VM, DB) terminieren & protokollieren
▢ Retention (täglich/wöchentlich/monatlich/jährlich) umsetzen
â–˘ Rechte & Trennung (separate Admins, MFA, Netzsegmente)
▢ Compliance (DSGVO/GoBD) prüfen: Speicherorte, Löschkonzept
restic backup (Dateien, Docker-Volumes), 14 Tage auf NAS= Backup Policy = Scope: Alle produktiven Server, VMs, Container-Volumes, Datenbanken, Konfigurationen, Zertifikate. RPO/RTO: Kritisch (RPO 4h / RTO 4h), Wichtig (RPO 24h / RTO 24h), Standard (RPO 48h / RTO 72h). Regel: 3-2-1-1-0 (immutable/offline Pflicht für kritisch & wichtig). Zeitplan: daily inc, weekly full/synth, monthly full (Archiv). Retention: Daily 14, Weekly 8, Monthly 12, Yearly 7 (Compliance abhängig). Sicherheit: Verschlüsselung E2E; Keys offline, Zugriff nur via MFA; getrennte Admin-Konten. Verifikation: Tägliche Job-Reports, wöchentlicher Check, quartalsweise Restore-Drill. Änderungen: Neue Systeme binnen 48h ins Backup aufnehmen, Offboarding inkl. sicheres Löschen. Verantwortung: Betriebsverantwortlicher \_\_\_\_\_\_; Stellvertretung \_\_\_\_\_\_.