#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

Duplicity: Sichere Daten-Backups erstellen - mit eigenem GPG-Schlüssel verschlüsselt & signiert

Mit Duplicity lassen sich unter Linux sichere (verschlüsselte und signierte) inkrementelle Daten-Backups erstellen. Für die Sicherung in der Cloud unterstützt Duplicity diverse bewährte Protokolle, wie z.B. SSH und WebDAV. Zum Verschlüsseln verwendet Duplicity GnuPG. Standardmäßig kommt dabei eine symmetrische Verschlüsselung zur Anwendung. Alternativ kann aber auch eine asymmetrische Verschlüsselung in Verbindung mit einem eigenen GPG-Schlüssel eingesetzt werden. Wie letztgenanntes umsetzbar ist, erfahrt ihr in folgendem Beitrag.

Verwendete Software für diesen Beitrag
  • Debian v11 (Bullseye)
  • duplicity v0.8.17
  • YubiKey 5C NFC (Firmware: v5.4.3)

Duplicity installieren

Zum Installieren von Duplicity unter Debian reicht folgender Befehl:

sudo apt install duplicity
Terminal / Konsole

Daten-Backup erstellen

In folgendem Beispiel möchte ein Backup für meine Daten, die sich bei mir im Verzeichnis ~/Daten befinden, erstellen. Der einfachhalber sichere ich es für dieses Beispiel einfach in einem anderen lokalen Verzeichnis. Zum Verschlüsseln und Signieren soll dabei mein GPG-(Unter-)schlüssel verwendet werden, der sich auf meinem YubiKey befindet. Hierfür verwende ich folgenden Befehl, wobei ihr eure GPG-Schlüssel-ID eintragen müsst:

duplicity --encrypt-sign-key="0x78B4B9A793E772BB" ~/Daten file:///media/sl/USB-Stick/Backup/
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase for decryption:
GnuPG passphrase for signing key:
No signatures found, switching to full backup.
--------------[ Backup Statistics ]--------------
StartTime 1673698945.35 (Sat Jan 14 13:22:25 2023)
EndTime 1673698945.36 (Sat Jan 14 13:22:25 2023)
ElapsedTime 0.01 (0.01 seconds)
SourceFiles 3
SourceFileSize 4107 (4.01 KB)
NewFiles 3
NewFileSize 4107 (4.01 KB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 3
RawDeltaSize 11 (11 bytes)
TotalDestinationSizeChange 874 (874 bytes)
Errors 0
-------------------------------------------------
Terminal / Konsole

Wenn alles geklappt hat, sind eure Daten nun im angegebenen Backup-Verzeichnis/-Pfad gesichert und das verschlüsselt sowie signiert mit eurem eigenen GPG-Schlüssel.

Hinweis GnuPG-Passphrase bei Verwendung einer OpenPGP-Smartcard

Bei der Abfrage der GnuPG-Passphrase gebt ihr bei Verwendung einer OpenPGP-Smartcard, wie das z.B. bei mir mit dem YubiKey der Fall ist, nicht die Passphrase des GPG-Schlüssels, sondern die PIN der Smartcard an.

Da Duplicity inkrementelle Backups erstellt, ist es ratsam regelmäßig ein neues vollständiges Backup der Daten zu erstellen. Hierzu kann der eigentliche Backup-Befehl um die Option --full-if-older-than ergänzt werden:

duplicity --full-if-older-than=1M --encrypt-sign-key="0x78B4B9A793E772BB" ~/Daten file:///media/sl/USB-Stick/Backup/
Terminal / Konsole

Daten aus Backup wiederherstellen

Zum vollständigen Wiederherstellen eines Daten-Backups dient folgender Befehl:

duplicity file:///media/sl/USB-Stick/Backup/ Restore/
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Sat Jan 14 13:41:57 2023
GnuPG passphrase for decryption:
Terminal / Konsole

Bei Bedarf lassen sich auch nur einzelne Dateien oder ein bestimmter Stand vor z.B. 10 Tagen wiederherstellen. Für nähere Informationen siehe: Duplicity-Dokumentation.

Fazit

Mittels dem kleinem quelloffenen Backup-Tool Duplicity lassen sich recht einfach sichere Backups der eigenen Daten erstellen, die sicher verschlüsselt und signiert mit dem eigenen GPG-Schlüssel so auch, wenn unbedingt nötig, in der Cloud gespeichert werden können.