Verschlüsseltes Backup mit ftplicity – Teil 1

Backups sind so lebenswichtig wie die Luft zum Atmen, wie der Strom für den Server.
Die meisten Web- bzw. Hostingdienstleister bieten in der Regel Speicherplatz auf einem FTP-Server an – einen FTP-Server, auf den viele andere Kunden Zugriff haben. Wer sonst noch Zugang zu diesem Server hat … man weiß es nicht. Daher ist man gut beraten, wenn man seine Daten dort nicht ungeschützt ablegt. Ein sehr hilfreiches Tool für diese Aufgabe ist ftplicity. Ftplicity legt mit Hilfe von GnuPG und duplicity verschlüsselte Backups auf einem FTP-Server ab.

Zuerst ggf. noch nicht installierte, benötigte Pakete installieren:

apt-get install python-dev librsync-dev ncftp python-gnupginterface python-pexpect

Danach holen wir uns duplicity an Bord:

cd /usr/src                                                                                                                                                                
wget http://savannah.nongnu.org/download/duplicity/duplicity-0.5.02.tar.gz                                                                                                 
tar xfvz duplicity-0.5.02.tar.gz                                                                                                                                           
cd duplicity-0.5.02                                                                                                                                                        
python setup.py install

Ich habe leider die Feststellungmachen müssen, daß die z.Zt. aktuelle Version 0.5.0.6 mit Debian etch leider nicht funktioniert, daher die v0.5.0.2. Für Hinweise, wie die aktuelle Version unter etch zum Laufen gebracht werden kann, würde ich mich freuen.
Wenn die Installation ohne Fehler durchgelaufen ist, kümmern wir uns um den GPG-Schlüssel:

gpg --gen-key

Die Schlüsselart, welche als standard eingestellt ist (DSA und Elgamal) ist in Ordnung und kann mit [enter] bestätigt werden.
Die Standardschlüsselgröße 2048 reicht im Regelfall auch aus, wer möchte, kann auf 4096 erhöhen.
Damit wir nicht vergessen, die Schlüssel rechtzeitig zu verlängern, wählen wir auch bei der Gültigkeit den Standard, also „läuft niemals ab“. Diese Auswahl noch einmal mit y bestätigen.
Um den Schlüssel leichter identifizieren zu können, vergeben wir einen Namen und eMail-Adresse, ggf. auch einen Kommentar. Wenn die Angaben in Ordnung sind, wird mit O bestätigt.
Zum Abschluß muß ein Passwort für den Schlüssel vergeben werden. Bitte gut merken! Danach wird der Schlüssel berechnet. In der Ausgabe von gpg notieren wir uns die Schlüssel-ID, welche im folgenden als zufälliges Beispiel fett geschrieben steht.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 57FG85AC marked as ultimately trusted
public and secret key created and signed.

Jetzt geht es weiter mit fplicity.

cd ..
wget http://heanet.dl.sourceforge.net/sourceforge/ftplicity/ftplicity_1.4.1b.tgz
tar xfvz ftplicity_1.4.1b.tgz
cp ftplicity_1.4.1b/ftplicity /usr/local/bin

Das ging kurz und schmerzlos. Jetzt können wir uns ein Profil für das Backup anlegen.

ftplicity backup_profile create
chmod 600 /root/.ftplicity/backup_profile/conf
nano /root/.ftplicity/backup_profile/conf

Den Namen backup_profile habe ich frei gewählt, hier können nach Belieben andere Bezeichnungen verwendet werden. In die Config-Datei werden gleich zu Anfang die GPG-Schlüssel-ID und das dazu passende Passwort eingetragen, darunter die Zugangsdaten und das Zielverzeichnis vom FTP-Server. Wichtig ist auch der SOURCE-Eintrag, dort wird das Wurzelverzeichnis eingetragen, ab wo gesichert wird. „/“ für das gesamte Dateisystem, „/home“ z.B. nur für die Userverzeichnisse. Mehr dazu im Folgenden.

Bei GPG_OPTS kann die Komprimierung eingeschaltet werden. Hierzu einfach den ‚#‘ vor der Zeile entfernen.

GPG_OPTS=‘–compress-algo=bzip2 –bzip2-compress-level=9′

Die weiteren Parameter sind eigentlich gut erklärt. Folgender Parameter sollte jedoch noch geändert werden:

VOLSIZE=250
DUPL_PARAMS=“$DUPL_PARAMS –volsize $VOLSIZE “

VOLSIZE gibt die Größe der einzelnen Sicherungsdateien an. Die Größe sollte nicht zu klein, aber auch nicht zu groß gewählt werden. Bei zu kleinen Dateigrößen werden für ein größeres Backup sehr viele Dateien erzeugt, bei zu großen Dateien kann es Übertragungsprobleme geben und das Backup wird mit einer Fehlermeldung (broken pipe) abgebrochen. Je nach Verbindung ist eine Größe von 250 bis 500 MB angebracht. Nicht vergessen, bei der Zeile DUPL_PARAMS= […] unter VOLSIZE das ‚#‘ zu entfernen.
Wer den Komfort von ftplicity nutzen möchte, aber auf die Verschlüsselung verzichten will, kann in der letzten Zeile der conf-Datei folgendes eintragen:

DUPL_PARAMS=“$DUPL_PARAMS –no-encryption“

So wird das Backup nicht verschlüsselt.

Eine weitere wichtige Datei ist die exclude-Datei. Hier können Dateien und Verzeichnisse angegeben werden, welche nicht gesichert werden sollen. Das Thema eclude bzw. include ist recht komplex und ist im Netz vielfach beschrieben, daher hier nur ein kleines Beispiel einer exclude-Datei.

nano /root/.ftplicity/backup_profile/exclude

+ /etc
+ /var/www
– /

Als SOURCE hatten wir „/“ angegeben, also das Wurzelvereichnis, es würden also alle Dateien gesichert werden. In diesem Beispiel werden nur die Verzeichnisse /etc und /var/www inklusive ihrer Unterverzeichnisse, also z.B. /var/www/vhost/domain.tld, gesichert, „/“ wird an letzter Stelle (!) wieder komplett ausgeschlossen. Es werden nur die Verzeichnisse, welche explizit mit „+“ angegeben wurden, gesichert. Im umgekehrten Fall kann man auch einzelne Verzeichnisse, Dateien oder Dateitypen ausschließen.

Es ist Zeit für einen ersten Probelauf:

ftplicity backup_profile backup --preview

Werden keine Fehlermeldungen ausgeworfen, dann kann es losgehen. Einfach den preview-Schalter entfernen.

ftplicity backup_profile backup

Sobald das Backup fehlerfrei durchgelaufen ist, können wir den Status der Backups überprüfen.

ftplicity backup_profile status

Hier werden die Anzahl der Volumes und die einzelnen Backups (full, incremental) angezeigt, ggf. auch unvollständige Backups.
War das Backup erfolgreich, können die gesicherten Dateien mit

ftplicity backup_profile list

angezeigt werden. Da es im Normalfall mehrere Tausend Dateien sind, ist es ratsam, die Ausgabe in eine Datei umzuleiten.

ftplicity backup_profile list > output.txt

Im zweiten Teil beschäftige ich mich mit dem Einrichten eines cron-Jobs für tägliche Backups sowie mit der Wiederherstellung von Dateien.

3 Kommentare
  1. soenke
    soenke sagte:

    sehr gute beschreibung und funktioniert mit dem neuen duply genauso. was vielleicht noch fehlt ist der cron job.

Trackbacks & Pingbacks

  1. […] via Verschlüsseltes Backup mit ftplicity – Teil 1 | Andre’s blog. […]

  2. […] ersten Teil meines howtos zu ftplicity habe ich gezeigt, wie ein sicheres Backup angelegt werden kann. Im […]

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.