Das freie Backup-Tool Duplicati vereinfacht das Sichern von Daten bei Cloud-Anbietern und bietet zugleich einen Schutz der Backups durch starke Kryptographie.
Nicht erst seit der NSA-Affäre stellt sich die Frage, wie sicher die eigenen Daten bei einem Cloud-Anbieter aufgehoben sind (siehe Kasten “Anhaltende Kritik”). Die zu sichernden Daten vor dem Übertragen zu verschlüsseln, bietet zwar einen gewissen Schutz, erfordert aber erheblichen Mehraufwand und macht den gesamten Workflow sperrig.
Eine neue Qualität gewinnt das Thema Online-Backup durch die Snowden-Enthüllungen der letzten Wochen und Monate, wobei das vorherige eigenhändige Verschlüsseln zwar diesem Szenario den ärgsten Schrecken nimmt, nichtsdestotrotz aber mit Aufwand verbunden ist.
Abhilfe schafft das kleine Open-Source-Tool Duplicati [1], das gleich zwei Fliegen mit einer Klappe schlägt: Es bringt Backends für viele wichtigen Cloud-Dienste mit, sodass Sie auf das Verwenden der jeweiligen nativen Clients verzichten könnten, und es verschlüsselt sämtliche Daten vor dem Übertragen.
Eigentlich bietet das Programm noch einem dritten entscheidenden Vorteil gegenüber dem manuellen Sichern von Daten über den jeweiligen Cloud-Client des Anbieters: Als waschechte Backup-Software hilft Duplicati nicht nur flexibel bei der Auswahl der zu sichernden Daten, sondern es sichert zusätzlich auch im laufenden Betrieb Daten, an die Sie als Anwender nicht ohne weiteren herankommen. Außerdem existieren Clients für Linux, Windows und Mac OS X. Das ermöglicht es, das Programm nahtlos auf verschiedenen Plattformen einzusetzen.
Anhaltende Kritik
Schon vor Bekanntwerden der Überwachungspraktiken der Geheimdienste standen Online-Dienste wie Dropbox trotz der gebotenen Annehmlichkeiten in der Kritik, weil sie die übertragenen Daten entweder überhaupt nicht verschlüsseln oder aber mit einer vom Anbieter verwalteten Krypto-Technik speichern.
Beides hat nichts damit tun, dass die Verbindung zwischen dem PC und dem favorisierten Anbieter in der Regel verschlüsselt ist. Um die anvertrauten Daten zu indexieren, verzichten einige Dienstleister entweder gänzlich auf das verschlüsselte Abspeichern oder verwenden ein eigenes Verfahren, auf das Sie als Nutzer keinen Einfluss haben.
Das Indexieren ermöglicht es dem Anbieter festzustellen, ob eine Datei über eine bekannte Checksumme verfügt. Diese braucht er nicht noch einmal zu speichern, sondern muss sie lediglich referenzieren. Das hilft, Speicherplatz zu sparen. Das Verfahren nützt zwar dem Anbieter, gibt ihm aber zugleich die volle Kontrolle über die Daten.
Duplicati für Linux
Das Open-Source-Programm Duplicati stammt ursprünglich aus der Schmiede des dänischen Entwickler Kenneth Skovhede, der auch nach wie vor zu den Hauptentwicklern gehört. Seit dem Jahr 2011 koordiniert zusätzlich der Deutsche René Stach die Öffentlichkeitsarbeit und steuert die Kommunikation mit externen Entwicklern.
Der Kern der Software steht unter der GPL. Für die ebenfalls involvierten SDKs, Tools und Bibliotheken, wie AWSSDK, GPG, SQLite oder Putty, gelten zum Teil andere Lizenzen. Die seit Februar 2013 erhältliche Version 1.3.4 steht auf der Projektseite [2] in Form von Paketen für Debian/Ubuntu oder Fedora, als Binary für Windows und Mac OS X sowie als gepacktes Binärpaket für Linux oder Windows bereit.
Es zeigt sich schnell, dass das Programm seine Wurzeln unter Windows hat: Das Interface der Linux- und Mac-Versionen basieren auf der freien .Net-Implementation Mono und den Winforms-Bibliotheken. Das Tool für die Kommandozeile gleicht sich dagegen bei allen drei Versionen. In der anstehenden Version 2.0 planen die Entwickler hier eine radikal Schlankheitskur (siehe Kasten “Duplicati 2.0”).
Der Vorteil der Applikation besteht darin, dass Sie eine stattliche Auswahl an Backends für die wichtigsten Cloud-Anbieter mitbringt, darunter 1&1 Smartdrive, Amazon S3, Google Drive, Owncloud, Windows Skydrive, Strato Hidrive oder T-Online Mediencenter. Weitere Informationen zu den unterstützen Cloud-Anbietern finden Sie im Beginners Guide [3]. Die Software verschlüsselt sämtliche Daten vor dem Übertragen via per AES-256 oder GPG, zudem beherrscht sie das inkrementelle Sichern.
Das Installieren der Pakete für die Distributionen erweist sich nur insofern einfacher, als dass Sie sich nicht um das Auflösen von Abhängigkeiten zu kümmern brauchen. Alternativ laden Sie einfach das Tar-Archiv herunter und entpacken es in einem beliebigen Verzeichnis. Vorher installieren Sie die Pakete mono-runtime, libmono2.0-cil und libmono-winforms2.0-cil. Weitere Informationen zur Installation finden Sie auf Google Code [4].
Duplicati 2.0
Die Duplicati-Entwickler arbeiten derzeit mit Hochdruck an der Version 2.0, die unter anderem auf eine modernere, leistungsfähigere Storage-Engine setzt. Darüber hinaus wollen die Entwickler die Schnittstelle für die Kommandozeile radikal vereinfachen, sodass die Software theoretisch mit den drei Befehlen backup, list, restore auskommt. Das würde die Möglichkeiten zum Skripting verbessern.
Die neue Storage Engine arbeitet zudem vollständig blockbasiert, unterstützt aber nach wie vor dateisystembasierte Backends wie FTP, SSH und WebDAV. Zu den neuen Funktionen gehören neben dem Deduplizieren auch “NTFS Reparse Points” und “Junctions”, die NTFS-Variante symbolischer Verknüpfungen, was eher für Windows-Nutzer interessant sein dürfte. Das neue Speicherformat unterstützt zudem Amazon Glacier.
Laut Angaben der Entwickler verfügt die neue Version zudem über ein überarbeitetes SSH-Backend sowie eine Benachrichtigungsfunktion via E-Mail und unterstützt LZMA/7z-Komprimierung. Sie haben die Möglichkeit, die neue blockbasierte Engine in Form einer experimentellen Testversion in der CLI-Variante von der Projektseite herunterzuladen [7]. Diese dient als Grundlage für das anstehende (und überfällige) Redesign der Oberfläche, die künftig als Web-Interface geplant ist.
Geöffnete Dateien
Zum Sichern geöffneter oder gesperrter Dateien unterstützt das Programm unter Linux Snapshots via Logical Volume Manager, unter Windows kommt Microsofts Volume Shadow Copy Service zum Einsatz. Das Snapshot-Verfahren setzt unter Linux neben den Tools für LVM zusätzlich administrative Rechte voraus. Als Verfahren kommt Copy-On-Write zum Einsatz.
Während ein Redirect-on-Write sämtliche Änderungen permanent in den Snapshot umleitet, hält Copy-on-Write die Änderungen in den Metadaten zurück, bis die ursprünglichen Daten vollständig in den Snapshot übertragen sind. Beim Lesen eines Snapshots ist das Betriebssystem in der Lage, zunächst zu prüfen, ob der zu lesende Teil schon existiert und diesen verwenden. Deshalb sind administrative Rechte im Zusammenhang mit Snapshots unumgänglich.
Sie steuern den Umgang mit den Snapshots über die Optionen --snapshot-policy und --open-file-policy, wobei Erstere per Voreinstellung ausgeschaltet ist, weil die Funktion die oben genannten, weitreichenden Rechte und Voraussetzungen benötigt.
Darüber hinaus gibt es für diese Option die Parameter on, auto und required. Mit on versucht die Software einen existenten Snapshot zu nutzen. Fehlt ein solcher, gibt das Programm bei Dateien, die es nicht zu sichern vermag, eine umfangreiche Warnung aus. Die Option auto tut das Gleiche, allerdings ohne eine Warnung. Existiert ein Snapshot, ignoriert Duplicati eine gesetzte --open-file-Policy. Diese kommt nur zum Tragen, wenn kein Snapshot existiert und die Snapshot-Policy nicht auf required steht.
Mit der Regel --open-file legen Sie fest, wie das Programm mit geöffneten Dateien verfährt: Ein ignore nimmt gesperrte Dateien grundsätzlich vom Sichern aus. Schreibt also eine Anwendung während des Backups eine neue Version einer Datei, ist diese gar nicht und nur teilweise in der Sicherung enthalten. Mit copy versucht Duplicati vor dem Sichern eine Kopie der geöffneten Datei anzufertigen, sofern das die gesetzten Lock-Mechanismen erlauben.
Weil das nur mit einer vollständigen Kopie funktioniert, kommt es bei sehr großen Dateien zu Problemen. Existiert ein Snapshot, ignoriert Duplicati den Parameter und verwendet den Snapshot. Duplicati sichert zudem in der Linux-Version eine Reihe von für Unix-Betriebssysteme typische Metadaten.
Für dem Umgang mit Symlinks konfigurieren Sie mithilfe der Parameter store, follow oder ignore drei unterschiedliche Verhaltensweisen: So sichert das Tool etwa mit store nur den Symlink. Mit follow nehmen Sie dagegen die verlinkten Dateien ins Backup auf, während ignore den symbolischen Link vollständig übergeht. Bei Metadaten wie Pipes oder FIFOs sichert Duplicati in Version 1.34 lediglich den Zeitstempel.
Einsatz
Zum Aufrufen des Assistenten geben Sie duplicati auf der Kommandozeile ein oder starten das Programm nach einer Installation über die Paketquellen aus dem KDE-Menü oder dem Gnome/Unity-Dash der Distribution. Möchten Sie von den erweiterten Möglichkeiten zum Sichern offener oder gesperrter Dateien via LVM-Snapshots profitieren, starten Sie Duplicati mit administrativen Rechten.
Beim erstmaligen Einsatz fragt der Assistent nach, ob Sie eine neue Sicherung einrichten, Daten aus einer bestehenden Sicherung wiederherstellen oder Einstellungen einer früheren Installation wiederherstellen möchten (Abbildung 1). Danach vergeben Sie einen Namen für das Backup und ordnen die Sicherung optional einer Gruppe zu, die Sie bei Bedarf über die Schaltfläche Neue Gruppe kreieren.

Abbildung 1: Ob neues Backup oder Wiederherstellen von Daten aus einer bestehenden Sicherung – der Assistent von Duplicati steht in bei diesen Aufgaben zur Seite.
Bei der Auswahl der zu sichernden Daten schlägt der Assistent mit Eigene Dokumente, Dateien auf dem Desktop und Eigene Bilder einige gängige Orte im Dateisystem vor. Eine individuellere Auswahl erreichen Sie über die Option benutzerdefinierte Ordnerliste.
Hinter Programmeinstellungen verbirgt sich lediglich das Verzeichnis $HOME/.config. Ferner steht in der benutzerdefinierten Ordnerliste eine Schaltfläche mit der Bezeichnung … bereit, die es ermöglicht, weitere Verzeichnisse hinzu zu fügen. Haben Sie ein Verzeichnis hinzugefügt, erscheint im Assistenten eine weitere Zeile, in der Sie auf die gleiche Weise weitere Verzeichnisse auswählen oder mit dem Mülleimer-Symbol rechts daneben wieder löschen.
Allerdings haben Sie auf diese Weise keinen Zugriff auf versteckte Dateien. Außerdem besteht in diesem Schritt keine Möglichkeit, Unterverzeichnisse oder Dateien auszuschließen. Das ist im erst weiteren Verlauf nach dem Freischalten Erweiterte Einstellungen möglich.
Der nächste Schritt widmet sich dem Verschlüsseln: Deaktivieren Sie das per Default gesetzte Häkchen vor Sicherung mit einem Kennwort schützen, so verschlüsselt Duplicati die gesicherten Daten nicht. Andernfalls wählen Sie bei Verschlüsselung zwischen der integrierten AES-256 Verschlüsselung und GNU Privacy Guard (extern) (Abbildung 2).

Abbildung 2: Vertrauen ist gut, Verschlüsseln ist besser: Sie schützen die gesicherten Daten entweder durch die internen Verschlüsselungsmechanismen oder durch einen eigenen GPG-Key.
Nach dem Bestätigen des Kennworts wählen Sie im nächsten Schritt das gewünschte Backend. Hier stehen neben den erwähnten Diensten recht gradlinige Funktionen bereit, wie FTP, SSH oder dateibasierend. Welche Parameter Sie jeweils benötigen, hängt von der gewählten Methode ab.
Beim Google-Backend brauchen Sie lediglich die Account-Daten und den Namen einer neuen oder vorhandenen Google-Docs-Collection, wobei Sie mit Create Collection bei Bedarf eine neue anlegen. Dass der Dienst inzwischen Google Drive heißt, hat sich nicht bis zu diesem Interface herum gesprochen, tut aber der Funktion keinen Abbruch.
Das Backend für Amazon S3 arbeitet dagegen auf Basis sogenannter Buckets. Diese vereinfachen für das Unternehmen das Verteilen und Optimieren der gespeicherten Daten. Bei einem solchen Bucket handelt es sich um eine Art Ordner, der eine eindeutige URL erhält. Außerdem brauchen Sie bei S3 eine “AWS Access ID” nebst zugehörigem Key sowie den Region-Code (Abbildung 3). Das Anlegen eines Buckets nehmen Sie in Ihrer AWS-Console vor, sofern Sie einen Account besitzen. Access-IDs und Passwörter legen sie pro Benutzer im AWS Identity and Access Management an.

Abbildung 3: Für das Backup beim Anbieter Amazon brauchen Sie umfangreiche Angaben über die verwendeten Container (Bucket).
TIPP
Die für Amazon gedachten Dialoge nehmen bei Bedarf auch die Daten von den ebenfalls Bucket-orientierten Cloud-Diensten Host Europe oder Dunkel auf.
Im nächsten Schritt Erweiterte Einstellungen schalten Sie durch das Setzen der entsprechenden Häkchen weitere Optionen frei. Jede hier aktivierte Option spendiert der sich anschließenden Dramaturgie des Assistenten einen weiteren Dialog.
Aktivieren Sie hier alle sechs Optionen, so legen Sie in den folgenden Schritten fest, wann die Software ein Backup anlegt (Scheduling), in welchem Intervall sie alte Backups entfernt und ob sie Limits, wie das Volume oder die Bandbreite berücksichtigt. Reichen die Optionen nicht aus, haben Sie zudem die Möglichkeit, weitere manuell zu setzen, wie etwa die beschriebenen Parameter für --snapshot-policy oder --open-file-policy (Abbildung 4).

Abbildung 4: Im Verlauf der Konfiguration bietet der Assistent die Möglichkeit, detailliert auf das Verhalten bei der Datensicherung Einfluss zu nehmen.
Haben Sie die entsprechen Optionen aktiviert, kümmert sich der Assistent in der Folge um das Planen eines zeitgesteuerten Backups und um die gewünschte Strategie. Per Voreinstellung sichert Duplicati jeden Tag um 13 Uhr, legt beim ersten Einsatz stets ein komplettes Backup an und dann per Default jeden Monat ein weiteres Voll-Backup. Ferner gibt es noch die Optionen Always perform an incremental backup, never full oder Always perform a full backup, never incremental. Allerdings empfiehlt das Programm selbst die beiden letzten Varianten nicht.
Die Optionen zum Löschen im nächsten Schritt helfen dabei, Speicherplatz zu sparen. Hier stellen Sie unter anderem ein, wie viele Sicherungen (Vorgabe?*4) das Programm speichert. Alternativ geben Sie ein Datum vor, ab dem die Software die Sicherungen entfernt. Per Option sorgen Sie dafür, dass Duplicati Zeitstempel bei inkrementellen Sicherungen ignoriert.
Wenn Sie es wünschen, hilft Ihnen der Assistent, Limits für den Up- und Download beim gewählten Cloud-Dienst einzuhalten. Möchten Sie zum Beispiel die Kontingente der jeweiligen kostenlosen Varianten von Amazon S3 (5 GByte) oder Google Drive (15 GByte) nicht überschreiten, setzen Sie ein Volume-Limit.
Ausschlussverfahren
Erst im Schritt Edit filters schließen Sie gezielt Verzeichnisse oder Dateien vom Sichern aus oder definieren individuelle Filter. Dazu klicken Sie auf die Schaltfläche mit dem Pluszeichen.
Mithilfe der beiden Optionen Include files matching the filter oder Exclude files matching the filter entscheiden Sie zunächst, ob der zu definierende Filter zum Ein- oder Ausschließen von Dateien und Verzeichnissen dient. Neben der Eingabezeile zum manuellen Beschreiben des Filters gibt es je eine Schaltfläche zum Laden eines vordefinierten Filters aus einer Datei sowie zum direkten Auswählen ein- oder auszuschließender Verzeichnisse mit Hilfe einer Dateiauswahl.
Darüber hinaus besteht die Möglichkeit, von Hand Filter zu formulieren und dabei ein konventionelles Wildcard-Matching zu benutzen. Dazu weisen Sie Duplicati durch Anklicken der gleichnamigen Option an, die eingegebene Zeile als regulären Ausdruck zu interpretieren. Der Link filter help liefert in Form der Online-Hilfe [5] weitere Informationen zu Filtern und den passenden Regulären Ausdrücken. Intern verendet das Programm sogar grundsätzlich regulären Ausdrücke.
Sofern Sie vorab sämtliche Optionen aktiviert haben, können Sie im nächsten Schritt Override settings eine große Anzahl der verwendeten Voreinstellungen und Parameter individuell anpassen, darunter die schon erwähnten Policies [6]. Das Aktivieren der jeweiligen Option erfolgt durch Setzen des Häkchens in der Spalte Enable. Die Spalte Value füllen Sie individuell mit Werten, wobei der Assistent für jeden einzelnen Parameter am unteren Rand die verfügbaren Typen und Wertebereiche ausführlich erläutert (Abbildung 5).

Abbildung 5: Beim Konfigurieren der individuellen Parameter unterstützt die Software mit einer ausführlichen Hilfe.
Im letzten Schritt zeigt der Assistent alle vorgenommenen Einstellungen noch einmal in einer Übersicht im Reiter Summary. Mit einem Häkchen bei Run backup now unterhalb starten Sie das Backup direkt; ansonsten kommen die getätigten Scheduling-Einstellungen zum Tragen.
Mit Fertigstellen schließen Sie den Backup-Job ab, und Duplicati wartet im Dialog Waiting for next backup auf die nächste anstehende Sicherung. Von hier erreichen Sie über den Link Duplicati Wizard jederzeit den beschrieben Assistenten.
TIPP
Im Reiter Command Line zeigt der Assistent von den für ein Backup verwendeten Befehl in der Form, wie Sie ihn auf der Kommandozeile eingegeben hätten.
Am Steuer
Duplicati besitzt einen eingebauten Scheduler. Solange der Statusdialog geöffnet oder minimiert bleibt, ist dieser aktiv. Beenden Sie den Statusdialog mit dem Schließen-Symbol und starten das Programm später aus dem Menü oder via Kommandozeile neu, zeigt das Programm – sofern ein gespeicherter Sicherungsjob vorliegt – wieder den Statusdialog mit dem Hinweis Duplicati ist derzeit angehalten.
Klicken Sie auf die Schaltfläche mit dem Pluszeichen, öffnet sich ein Kontextmenü, aus dem Sie das Backup jederzeit fortsetzen oder eine der vorgegebenen Unterbrechungszeiten wählen. In gleicher Weise erreichen Sie das Kontextmenü bei einer aktiven Sicherung mit einem Klick auf das grüne Wiedergabe-Symbol (Abbildung 6). Der Statusdialog bietet außerdem noch das Auswahlfeld Schnelle Aktionen, über das Sie die Software ebenfalls anhalten oder starten.
Der Statusdialog wechselt übrigens nach einem Neustart nach fünf Minuten automatisch zum Status Warten auf die nächste Sicherung, sofern noch geplante Jobs ausstehen. Mit dem Link Duplicati Options öffnen Sie den Dialog mit Einstellungen.
Die erwähnte Pause-Zeit für Duplicati nach dem Start passen Sie zum Beispiel im Reiter Allgemein nach Ihren Wünschen an. Außerdem legen Sie hier die Sprache für die Oberfläche fest und haben zudem die Möglichkeit, einige der bereits im Assistenten festgelegten Einstellungen zu überprüfen oder zu ändern, wie etwa das Verschlüsselungsverfahren nebst Passphrase (Abbildung 7).
Auch die Limits ändern Sie hier im Reiter Erweitert. Der Statusdialog zeigt außerdem im Dialog Amazon die gespeicherten Anmeldedaten (AWS Access ID) für den S3-Speicherdienst. Ferner stellen Sie hier genau wie im Dialog des beschriebenen S3-Backends den Servername und der verwendete Region-Code einstellen.
Fazit
Duplicati entpuppt sich in der seit dem Frühjahr verfügbaren Version 1.34 als leistungsfähiges Werkzeug mit weit mehr Funktionen, als man auf den ersten Blick vermutet. Schon jetzt spielt das Programm mit der Unterstützung für LVM-Snapshots und VSS (unter Windows) sowie zahlreichen professionellen Funktionen in der gehobenen Amateur-Liga – nicht zuletzt, weil es es auch ein sehr leistungsfähiges CLI-Interface bietet.
Zu den Pluspunkten zählt auch, dass Duplicati plattformübergreifend bereit steht – allerdings gehört gerade die GUI nicht eben zu den Highlights, obwohl gerade Einsteiger von einer solchen profitieren. Die mit Mono und Winforms realisierte Version für Linux stammt deutlich aus der Windows-Welt und weist zudem Lücken bei der Lokalisierung auf. Außerdem hätte das Handhaben der zahlreichen Einstellungen ein einfacheres Interface verdient, als den chronologisch ablaufenden Assistenten.
Die per GUI einfach zu bedienenden Cloud-Backends erlauben es, schnell und unkompliziert wichtige Daten sicher bei einem Cloud-Anbieter zwischenzulagern. Das ginge zwar theoretisch auch mit den Clients der Anbieter, allerdings bliebe dann unter Umständen die Sicherheit auf der Strecke.
Infos
[1] Duplicati: http://www.duplicati.com
[2] Download: http://www.duplicati.com/news/duplicati134available
[3] Cloud-Backends: http://www.duplicati.com/howtos
[4] Installation: http://code.google.com/p/duplicati/wiki/LinuxHowto
[5] Filter: https://code.google.com/p/duplicati/wiki/FilterUsage
[6] Sichern geöffneter Dateien: http://code.google.com/p/duplicati/wiki/HowToHandleOpenFiles
[7] Duplicati 2.0 testen: http://www.duplicati.com/news/theduplicati20storageengineishere








