Um Daten auf potentiell unsichere Online Speicher - wie z.B. FTP-Server - zu übertragen, sollten die Daten nach Möglichkeit verschlüsselt und signiert werden, um sie zuverlässig vor neugierigen Blicken und Manipulationen zu schützen.

Da von vielen Internet-Providern den Mietern eines V- oder Root-Servers ein FTP-Server für Ihre Backups zur Verfügung gestellt wird, zeigt dieser Artikel, wie man mit GPG verschlüsselte und signierte, komprimierte, inkrementelle Backups auf einem FTP-Server erstellt.

Die Linux Tools Duplicity und Duply eignen sich aber nicht für FTP-Backups, sondern können auch für Backups auf einem zweiten Server oder z.B. für den Amazons S3 Service verwendet werden.

Backups auf potentiell unsicheren Online Speichern durchführen

Installation und Konfiguration

Als Beispiel-Betriebssystem wird Ubuntu vorausgesetzt.
 
  1. Duplicity und duply installieren: aptitude install duply duplicity
  2. Mit duply können verschiedene Profile für verschiedene Backups erstellt werden. Der Befehl duply mybackup create erstellt das Profil mit dem Namen "mybackup". Das Profile sowie eine conf Datei ist anschließend in $HOME im Verzeichnis .duply zu finden.
  3. Um duply verwenden zu können, muss ein GPG-Key erstellt werden: gpg --gen-key  Hierbei die Standard-Verschlüsselung, als Key-Size 2048 und eine beliebig lange Laufzeit wählen. Dann noch ein paar persönliche Daten und ein Passwort, das auch noch nach 10 Jahren ;-) gültig sein sollte, eingeben. GPG erzeugt dann einen 8-stelligen Schlüssel:   gpg: key --> A87D76FB <-- marked as ultimately trusted
  4. Sowohl der Key wie auch das Passwort müssen nun in die Conf Datei eingetragen werden. Ebenso das Ziel, auf welchem das Backup erfolgen soll. Bei einem FTP-Backup als Target TARGET='ftp://username:[email protected]/verzeichnis' angeben und evtl. noch das Verzeichnis das gesichert werden soll: SOURCE='/var/www/myproject'
  5. Wer seine Datenbank mit in das Backup aufnehmen möchte, kann eine sogenannte pre Datei im Profilverzeichnis von duply erstellen. Die pre Datei ist einfach ein Skript, das vor Ausführung des Backups aufgerufen wird. Um das Skript ausführen zu können, benötigt es die entsprechenden Rechte: chmod 700 pre. Ein Eintrag für einen Postgresdump könnte so aussehen: pg_dump mydbase | gzip > /var/www/myproject/dbdumps/mydbase.gz
  6. Nun kann das erste Backup erzeugt werden: duply mybackup backup. Je nach der Verbindung zum Backup-Server und der Größe der zu sichernden Daten kann dies einige Zeit in Anspruch nehmen.
  7. Zum Schluss noch die Cronjobs einrichten:

    00 3 * * * duply mybackup backup

    00 4 1 * * duply mybackup backup_verify_purge --force 

  8. Nun sollte ein sicheres verschlüsseltes inkrementelles Backup täglich um 3:00 Uhr nachts erzeugt werden - ebenso ein monatliches Vollbackup zu Beginn jeden Monats um 4.00 Uhr

Wiederherstellung des Backups

Zum Wiederherstellen des Backups dienen folgende Befehle:

Für ein Vollbackup: duply mybackup restore /tmp/restore

Für eine Datei: duply mybackup fetch /var/www/myproject/myfile /tmp/restore

Für eine 4 Tage alte Datei: duply mybackup fetch /var/www/myproject/myfile /tmp/restore 4D

Für ein Verzeichnis: duply mybackup fetch /var/www/myproject/mydir /tmp/restore

Und um den aktuellen Backup Status wird das Kommando duply offsite status verwendet

Zu Beachten

Bei einem Totalausfall des Servers müssen die GPG Schlüssel sowie die Konfigurationsdateien zur Hand sein. Man sollte daher nicht vergessen die Verzeichnisse./duply und./gnupg auf einem unabhängigen Rechner zu sichern.

Wer keinen eigenen FTP-Server zu Verfügung hat, findet auf dieser Seite einige Hinweise, wie man den Amazon S3 Service für ein Backup nutzen kann.

Laden ...
Fehler!