Ich verwende Duplicity auf fast jedem Host, den ich verwalte, um Backups an einem Remote-Standort zu erstellen (ich nenne ihn „Backup-Host“).
Wie oft und wann vollständige oder inkrementelle Backups durchgeführt werden, hängt vom Host und seinem Anwendungsfall ab.
Ich versuche nicht nur, mich vor typischen Fehlern (menschliches Versagen, Hardware-/Software usw.) zu schützen, sondern mich auch von einem potenziellen Angriff zu erholen.
In meinen Fällen verwende ich das SSH/SFTP-Backend, um solche Duplicity-Backups auszuführen. Da Duplicity Lese-/Schreibzugriff auf den Backup-Host benötigt, kann sich jemand, der die Kontrolle über die zu sichernden Hosts erlangt, auch mit dem Backup-Host verbinden und entsprechende Backups löschen/manipulieren.
Trotzdem /müssen/ die zu sichernden Hosts – so mein Verständnis – auch Dateien auf dem Backup-Host löschen: Um nicht zu viel Platz zu haben, rufen meine zu sichernden Hosts häufig duplicity mit remove-all-but-n-full
- und remove-all-inc-of-but-n-full
-Aktionen auf, um alte Backups zu löschen.
Solche Bereinigungen können, soweit mir gesagt wurde, nicht auf dem Backup-Host selbst stattfinden, da die Backups – inkl. der Metadaten von Duplicity bezüglich der Zugehörigkeit von Dateien zu welchem Set – verschlüsselt sind, während der entsprechende private Schlüssel (GPG) auf dem Backup-Host nicht vorhanden ist.
Um solche Bereinigungen auf dem Backup-Host durchzuführen, müsste ich dies auf der Grundlage von Dateizeitstempeln tun, was zu beschädigten/teilweisen Backup-Sätzen führen könnte.
Um mich derzeit vor einem solchen Angriff zu „schützen“, verfüge ich über einen zweiten Backup-Host, der sich regelmäßig mit dem primären Backup-Host verbindet und alle Backup-Daten per rsync vom primären auf den sekundären Backup-Host überträgt.
Aber auch hier stehe ich vor den oben bereits erwähnten Problemen:
- Ich kopiere lediglich Dateien vom primären auf den zweiten Backup-Host, ohne deren Struktur zu verstehen (d. h. ich kopiere noch nicht fertige Dateien, Teilsätze usw.).
- Um nicht zu viel Speicherplatz zu haben, muss ich veraltete Backups erneut ausschließlich auf Grundlage ihrer Dateizeitstempel löschen, was dazu führen könnte, dass Backup-Sätze unbrauchbar werden.
Was ist die eleganteste und sauberste Möglichkeit, per Duplizität eine automatische Sicherung der zu sichernden Hosts zu erstellen und gleichzeitig sicherzustellen, dass ein Angreifer, der vollen Zugriff auf die zu sichernden Hosts erhält, bereits erstellte Sicherungen nicht manipulieren kann?
Vielen Dank!