Lösung 1:
Wenn Sie ein naives Backup durchführen (einzelne Kopie, alle Daten überschreiben), gibt es keine Möglichkeit, das zu erreichen, was Sie wollen – ein Angreifer kann immer einen Stapel leerer Dateien (oder einen leeren Dateisatz) „sichern“, was zu einer Sicherung führt Alle Ihre Daten gehen auf Wiedersehen. Ich gehe hier also davon aus, dass Sie ordnungsgemäße Archivsicherungen durchführen und Ihre Sicherungen gut genug überwachen, dass alle Versuche, die Sicherung durch Senden eines leeren Sicherungssatzes zu löschen, erkannt werden, bevor dauerhafter Schaden entsteht. P>
Wenn Ihr rsync-over-(vermutlich)-SSH einen erzwungenen Befehl verwendet, um rsync
auszuführen am Ziel, dann sind Sie so gut wie möglich vor dem Löschen geschützt. Da Sie nur einen bestimmten rsync
ausführen möchten Befehl, können Sie alle Argumente fest codieren und dann kann er nur noch neue Daten schreiben. Die Archivierung ist einfach genug, indem jedes Mal in einen neuen Baum gesichert wird und unveränderte Dateien mit der vorherigen Sicherung über Hardlinks verknüpft werden, was Platz und Übertragungszeit spart.
Der andere Weg ist die Verwendung von Pull-Backups, bei denen der Backup-Server rsync
initiiert und verwaltet Operation -- das bedeutet, dass der Client-Rechner nicht einmal in der Lage ist, einen eingeschränkten rsync-Befehl auszuführen, was bedeutet, dass der Angreifer keine Befugnis hat, Dateien zu löschen.
Dies alles setzt voraus, dass Ihr Backup-Server sicher ist. Wenn der Angreifer auf andere Weise darauf zugreifen kann, werden Sie entbeint, egal was Sie tun.
Lösung 2:
Am einfachsten wäre es wohl, bei den Backups anders vorzugehen, dh. vom Backup-Server ziehen. So führe ich meine Backups mit rdiff-backup durch.
Lösung 3:
Dies ist eine der Funktionen, die ich am Tarsnap-Sicherungsdienst mag. Es erlaubt mir, Unterschlüssel mit Lese-, Schreib- und/oder Löschfunktionen zu erstellen.
Auf meinen Servern behalte ich im Allgemeinen Unterschlüssel mit Lese- und Schreibfähigkeiten. Manchmal, wenn ich alte Sicherungsarchive bereinigen muss/möchte, mache ich das mit den Hauptschlüsseln von meinem lokalen Desktop-Computer.
Beachten Sie, dass Tarsnap selbst ein Speicherdienst ist. Sie können die Tarsnap-Software nicht verwenden, um Backups auf Ihren eigenen Speicherservern zu erstellen.
Lösung 4:
Versuchen Sie, eine schreibgeschützte Dateisystemschicht zu verwenden, die Ihr tatsächliches Ziel verschleiert.
Ich habe hier ein Beispiel mit FUSE gefunden.
Sie können auch ein verschlüsseltes Dateisystem verwenden, in das jeder schreiben kann, aber Ihr Schlüsselzertifikat muss geändert werden (scheint die sicherste Option zu sein, obwohl es wahrscheinlich mehr Planung während der Implementierung erfordert). enCrypted FileSystem) und TrueCrypt
Während also die erste Lösung Ihr Dateisystem "maskiert", das eigentlich woanders auf der Maschine gespeichert ist und für die Systembenutzer mit Berechtigungen geändert werden kann, kann es bei der zweiten Lösung nur mit den richtigen Schlüsseln geändert werden.
Lösung 5:
ftp:Zum Beispiel hat vsftp eine Option zum Deaktivieren von Löschungen, sodass Sie nur hochladen können. Auf der anderen Seite erstellen Sie dann ein Skript, das Backups löscht, die älter als x Tage sind. Ich verwende diese Option, auf dem Hauptserver sind Backups einfache Backups mit tar+gz, sie werden über sftp auf einen NAS-Server hochgeladen und dann der NAS-Server gelöscht Backups älter als 7 Tage.
rsync:Der rsync-Server hat eine Option zum Deaktivieren von Löschungen, sodass dies möglicherweise auch für Sie funktioniert, aber Sie müssen rsync protocol/server.refuse options =delete
verwendenAber dann müssten Sie die 'delete'-Dateien ab und zu manuell löschen.