Jede Lösung, die keine Verschlüsselung auf der Client-Seite mit vom Eigentümer gehaltenen Schlüsseln beinhaltet, erfüllt nicht die erstgenannte Anforderung (IP-Schutz / Sicherheit) - jeder Hack auf der Server-Seite offenbart unverschlüsselte Daten. Dies schließt Cloud-Synchronisationssysteme wie Dropbox aus, die die Schlüssel besitzen.
Um zu vermeiden, dass die wichtigen Verschlüsselungsschlüssel auf dem Server der Website gehostet werden, der wahrscheinlich auch irgendwann gehackt wird, gehe ich folgendermaßen vor:
- Eigener Backup-Server beim Kunden vor Ort - verfügt über Verschlüsselungs- und SSH-Schlüssel für beide anderen Server
- Server, auf dem die Website gehostet wird - könnte ein Webhost sein
- Cloud-Backup-Server oder -Dienst
Schritt 1: Server (1) zieht das Backup von (2), sodass die meisten Hacks des Website-Servers Backups nicht gefährden. Die Verschlüsselung erfolgt zu diesem Zeitpunkt.
- Ich würde rsnapshot über SSH unter Verwendung der schlüsselbasierten Anmeldung verwenden, da dies nur minimale Anforderungen an den Webhost und den internen Sicherungsserver stellt - es sei denn, Sie haben eine große Datenbank zum Sichern, ist dies sehr bandbreiteneffizient und speichert mehrere Versionen der Site. und kümmert sich auch um das Löschen alter Backups.
- Die Verschlüsselung kann mit jedem Datei-zu-Datei-Tool wie GPG erfolgen, indem der rsnapshot-Baum in einen anderen Baum kopiert wird. Alternativ können Sie für Schritt 2 die Duplizität verwenden, um Speicherplatz zu sparen.
- "Pull" vom Backup-Server ist wichtig - wenn der Hauptserver (2) die Passwörter / Schlüssel für den Backup-Server hat, können und werden Hacker die Backups nach dem Hacking des Hauptservers löschen (siehe unten). Wirklich fortgeschrittene Hacks können trojanisierte SSH-Binärdateien installieren, die dann den Backup-Server gefährden können, aber das ist für die meisten Unternehmen weniger wahrscheinlich.
Schritt 2: Server (1) überträgt die verschlüsselten Sicherungen an (3), sodass eine Offsite-Sicherung erfolgt. Wenn die Sicherungen in Schritt 1 verschlüsselt wurden, können Sie einfach einen rsync-Spiegel des lokalen rsnapshot-Baums für das ferne System verwenden.
- Duplizität wäre eine gute Option, um den unverschlüsselten rsnapshot-Baum direkt zu verschlüsseln und auf dem Remote-Server zu sichern. Die Funktionen von Duplicity unterscheiden sich geringfügig von denen von rsnapshot bei Verwendung von GPG-verschlüsselten Tar-Archiven, bieten jedoch eine Sicherungsverschlüsselung auf dem Remote-Host und erfordern nur SSH auf diesem Host (oder können Amazon S3 verwenden). Duplicity unterstützt keine festen Links . Wenn dies erforderlich ist (z. B. für eine vollständige Serversicherung), konvertiert ein Skript den rsnapshot-Baum (der feste Links unterstützt) am besten in eine tar-Datei (möglicherweise nur die Dateien mit>) 1 fester Link, der recht klein sein wird, damit Duplizität die TAR-Datei sichern kann.
- Da der Remote-Server nur ein SSH-Host ist, möglicherweise mit rsync, kann es sich um einen Webhost (jedoch von einem anderen Hosting-Anbieter und in einem anderen Teil des Landes) oder um einen Cloud-Dienst handeln, der rsync und / oder SSH bereitstellt Diese Antwort bezieht sich auf Rsync-Sicherungen in der Cloud auf die Empfehlung von bqbackup und rsync.net, obwohl ich dem erwähnten Sicherungssetup nicht zustimme.
- Sie können Amazon S3 als Remote-Server mit doppelter Verfügbarkeit verwenden, was eine gute Verfügbarkeit zur Folge hätte, obwohl große Backups möglicherweise mehr kosten würden.
- Andere Optionen für verschlüsselte Remote-Backups sind Boxbackup (nicht ganz so ausgereift, einige nette Funktionen) und Tarsnap (kommerzieller Cloud-Dienst auf Basis von Amazon S3 mit einfacher Befehlszeilenschnittstelle, guter Deduplizierung und sehr gründlicher Verschlüsselung).
Die Sicherheit aller verschiedenen Hosts ist wichtig, daher sollte diese an das Sicherheitsprofil des Clients angepasst werden, dh Bedrohungen, Risiken, Angriffsvektoren usw. analysieren. Ubuntu Server ist kein schlechter Start, da es für 5 häufige Sicherheitsupdates gibt Jahre, aber die Aufmerksamkeit auf die Sicherheit ist auf allen Servern erforderlich.
Dieses Setup bietet 2 unabhängige Backups, von denen eines ein hochverfügbarer Cloud-Speicherdienst sein kann, der im Pull-Modus ausgeführt wird, sodass die meisten Angriffe auf die Website die Backups nicht gleichzeitig zerstören können, und verwendet bewährte Open Source-Tools, die dies nicht tun erfordern viel Verwaltung.
- Unabhängige Backups sind von entscheidender Bedeutung, da Hacker tatsächlich manchmal alle Backups gleichzeitig mit dem Hacken der Website löschen. In den letzten Fällen haben Hacker 4800 Websites zerstört, einschließlich Backups, indem sie die Webhosting-Umgebung und nicht die Websites gehackt haben. Siehe auch diese und diese Antwort .
- Mit rsnapshot ist das Wiederherstellen sehr einfach - in jedem Snapshot-Baum befindet sich eine Datei für jede gesicherte Datei. Suchen Sie also einfach die Dateien mit Linux-Tools und synchronisieren Sie sie oder scpen Sie sie zurück auf die Website. Wenn der Backup-Server vor Ort aus irgendeinem Grund nicht verfügbar ist, verwenden Sie einfach die Duplizität, um sie vom Cloud-Backup-Server wiederherzustellen. Alternativ können Sie Standardtools wie GPG, rdiff und tar verwenden, um die Backups wiederherzustellen.
Da dieses Setup Standard-SSH und Rsync verwendet, sollte es einfacher sein, einen geeigneten Anbieter mit den richtigen Verfügbarkeitsgarantien, hoher Sicherheit usw. auszuwählen. Sie müssen sich nicht an einen langen Vertrag binden, und wenn der Backup-Dienst eine Katastrophe aufweist Wenn dies fehlschlägt, haben Sie immer noch eine lokale Sicherung und können ganz einfach zu einem anderen Sicherungsdienst wechseln.