restic (5) – restic Docker Container

Dies ist der fünfte Artikel der Serie zu restic (1) – Backups done right! Wir haben bisher den sftp Server vorbereitet (restic (2) – sftp Server vorbereiten), die Docker Software installiert (restic (3) – Docker auf Synology) und den sftp Client und die rclone Software eingerichtet (restic (4) – rclone für sftp).

Jetzt konfigurieren wir den restic Docker Container, den wir im dritten Schritt (restic (3) – Docker auf Synology) runtergeladen hatten.

Starte Docker auf der Synology und gehe zum Bereich „Image“, wähle den Container aus und klicke „Starten“

Dann wähle „Erweiterte Einstellungen“

Im Bereich „Volume“ mappen wir den private Key, die rclone-Konfiguration, und die Daten, die wir sichern wollen.

Private Key: „Datei hinzufügen“ – wähle /volume1/docker/certificate.pem mit dem Mount-Pfad /volume1/docker/certificate.pem

rclone-Konfiguration: „Ordner hinzufügen“ – wähle /volume1/docker/rclone mit dem Mount-Pfad /root/.config/rclone

Zu sichernde Daten: „Ordner hinzufügen“ – wähle das zu sichernde Verzeichnis, z.B. /volume1/homes mit dem Mount-Pfad /data/homes. Alles, was unter /data gemounted ist, wird gesichert, d.h. du kannst weitere Verzeichnisse unter /data mounten, wenn du magst.

/data/homes und /volume1/docker/certificate.pem können „Schreibgeschützt“ werden. Aber das rclone Konfigurationsverzeichnis muss für den restic Container beschreibbar sein.

Dann wechsele zu „Umgebung“ und gibt die Umgebungsvariablen an. Dabei sind RESTIC_REPOSITORY und RESTIC_PASSWORD erforderlich.

Wenn Du nach jeden Backup eine Status Email erhalten möchtest, dann gibt auch MAILX_ARGS an. Aus der lobaro restic Docker Container Dokumentation:

MAILX_ARGS – Optional. If specified, the content of /var/log/backup-last.log is sent via mail after each backup using an external SMTP. To have maximum flexibility, you have to specify the mail/smtp parameters by your own. Have a look at the mailx manpage for further information. Example value: -r 'from@example.de' -s 'Result of the last restic backup run' -S smtp='smtp.example.com:587' -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user='username' -S smtp-auth-password='password' 'to@example.com'.

BACKUP_CRON ist per Default so eingestellt, dass ein Backup alle 6 Stunden ausgeführt wird. Wenn es stündlich sein soll ändere den Wert in „0 * * * *„. Crontab Guru erklärt die Werte. Die Uhrzeiten sind in der UTC Zeitzone.

Wenn du die Umgebungsvariablen gesetzt hast, klicke auf „Übernehmen“

Klicke auf „Weiter“

Klicke auf „Fertig“

Testen des Containers

In der Docker software klicke auf „Container“ im rechten Menü, markiere den restic Container und klicke auf „Details“

Gehe auf „Terminal“ und wähle „Erstellen“ > „Mit Befehl starten“

Gib den Befehl „sh“ ein, damit wir eine Kommandozeile (shell) bekommen und klicke „OK“

Wähle nun „sh“ auf der rechten Seite. Dann erscheint ein Terminal Fenster. Hier kannst du Befehle wie „ls“ zum Anzeigen der Dateien und Ordner im root Verzeichnis nutzen, oder eben auch das Backup manuell starten mit /bin/backup. Du solltest eine Ausgabe wie die Folgende sehen:

Damit haben wir nun restic Backup fertig eingerichtet. Im nächsten Artikel restic (6) – restic Backup beschreibe ich, wie man die Einrichtung anpassen kann.

Liste aller Artikel dieser Serie

restic (1) – Backups done right! – Einführung

restic (2) – sftp Server vorbereiten – Der Login muss mit einem SSL Zertifikat ohne Password möglich sein, damit restic über rclone darauf zugreifen kann.

restic (3) – Docker auf Synology – Installation des Docker containers

restic (4) – rclone für sftp – Installation und Einrichtung von rclone für sftp

restic (5) – restic Docker Container– dieser Beitag

restic (6) – restic Backup – Einrichten vom restic Backup

restic (7) – restic Restore – Testen der Wiederherstellung von Dateien aus restic Snapshots auf Windows 10.

restic (8) – rclone für OneDrive – Einrichtug des OneDrive Zugriffs für rclone

restic (9) – restic für OneDrive – OneDrive Konfiguration und manueller Test des restic Docker Containers

restic (2) – sftp Server vorbereiten

Dies ist der zweite Artikel der Serie zu restic (1) – Backups done right!

Bevor rclone eine sftp-Verbindung zum Domain Factory Server aufbauen kann, müssen die SSH Zertifikate erstellt werden.

Der Login zum sftp Server muss mit einem SSL Zertifikat ohne Password möglich sein, damit restic über rclone darauf zugreifen kann. In diesem Artikel beschreibe ich, wie man so ein Zertifikat erstellt und mit PuTTY auf Windows testen kann.

Melde dich auf dem sftp Server an. Ich gehe davon aus, dass die ssh Werkzeuge installiert sind.

Erstellen des Public/Private Key Paars

Erstelle den Unterordner .ssh/pem/ auf dem Server, wo du deine Datein später sichern willst:

$ cd .ssh
$ mkdir pem
$ cd pem

Dann erstelle das Zertifikat. Nennen wir es „certificate“. Die Passphrase bleibt leer. Das ist wichtig, damit der Key später mit rclone funktioniert.

$ ssh-keygen -t rsa -b 2048 -f certificate
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in certificate.
Your public key has been saved in certificate.pub.
The key fingerprint is:
SHA256:b1Dt6aizXC17uu4ht9N/YbRsVywr3e4wKYgapM3ye/scwk 653365@sh22197
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|         .       |
|        o . .   .|
|       o + o . o.|
|          =   + o|
|   E .   X     *.|
|  + = o   O.. o o|
| = =.=.+  .=.   .|
|. o ===o o   ... |
+----[SHA256]-----+

Das generierte Zertifikat besteht dann aus einem Public Key „certificate.pub“ und einem Private Key „certificate“.

$ ls
certificate  certificate.pub

Den Private Key bennen wir in certificate.pem um, damit er als solcher auch als Private Key im pem-Format erkennbar ist.

$ mv certificate certificate.pem
$ ls
certificate.pem  certificate.pub

Dann fügen wir den Public Key zu den erlauben Keys (authorized keys) hinzu, damit das Zertifkat für eine Anmeldung genutzt werden kann:

$ cat certificate.pub >> ~/.ssh/authorized_keys

Testen des Public/Private Key Paars

Kopiere den Private Key certificate.pem auf den Windows 10 Rechner. Ich habe dazu den Inhalt von certificate.pem angezeigt …

$ cat certificate.pem

… und mit copy-paste eine Textdatei auf meinem Windows Rechner mit demselben Namen erstellt.

Installiere die PuTTY-Suite auf dem Windows 10 Rechner.

PuTTY benötigt ein anderes Format ppk für den Private Key. Um die pem-Datei zu konvertieren starte das Program PuTTYgen

Klicke „Load“ und öffne den Private Key, den wir oben erstellt und auf den Windows Rechner kopiert haben.

Ändere den Dateityp auf „All Files (*.*)“ und wähle „certificate.pem“ aus:

Bestätige die „PuTTYgen Notice“ mit „OK“ und clicke auf „Save private key“, um das benötigte ppk-Format zu erzeuigen.

Bestätige die Warnung mit „Ja“, dass die Passphrase leer ist. Das muss so sein.

Speichere die Datei als „certificate.ppk“

Schließe den PuTTYgen Key Generator.

Starte PuTTY:

Unter „Connection > SSH >Auth“ füge den ppk Private Key hinzu, den wir eben erstellt haben:

Unter „Session“ füge den Hostnamen hinzu, Gib der Konfiguration einen Namen wie „Domain Factory“ und speichere sie mit „Save“.

Dann klicke auf „Open“, um die Session zu starten. Das Terminal öffnet sich und du bist direkt angemeldet:

Damit haben ein ein Public/Private Key Paar mit certificate.pub als Public Key und zwei Formate für den Private Key:

  • certificate.pem: Für die Nutzung von rclone auf der Synology (siehe den kommende Artikel restic (4) – rclone für sftp)
  • certificate.ppk: Für die Nutzung in PuTTY wie hier getestet.

Jetzt kannst du mit dem nächsten Artikel restic (3) – Docker auf Synology forfahren.

Liste aller Artikel dieser Serie

restic (1) – Backups done right! – Einführung

restic (2) – sftp Server vorbereiten – dieser Beitrag

restic (3) – Docker auf Synology – Installation des Docker containers

restic (4) – rclone für sftp – Installation und Einrichtung von rclone für sftp

restic (5) – restic Docker Container – Konfiguration und manueller Test des restic Docker Containers

restic (6) – restic Backup – Einrichten vom restic Backup

restic (7) – restic Restore – Testen der Wiederherstellung von Dateien aus restic Snapshots auf Windows 10.

restic (8) – rclone für OneDrive – Einrichtug des OneDrive Zugriffs für rclone

restic (9) – restic für OneDrive – OneDrive Konfiguration und manueller Test des restic Docker Containers

restic (1) – Backups done right!

Im Juni 2021 wurde im Chaosradio Podcast in der Folge CR270 Daten archivieren, wiederherstellen und löschen die Backupsoftware restic vorgestellt. „Backups done right!“ ist der restic Slogan. Die Vorstellung im Podcast hat mich dazu inspiriert, meine Daten endlich vernünftig auf entfernten System zu sichern und dazu restic zu nutzen.

Zu Hause habe ich einen Windows 10 PC. Meine Daten sind auf einer Synology DS220 mit gespiegelten Platten (RAID 1). Zusätzlich nutze ich die Synology Cloud Sync Software, um meine Daten auf Dropbox und Microsoft OneDrive zu synchroniseren.

Aber alle diese Maßnahmen ersetzen kein externes Backup, weil ein Verlust der Daten zum Beispiel durch eine Ransomware Verschlüsselung durch die Spiegelungen auf allen Medien passiert. Wenn auf einer Seite eine Datei gelöscht wird, ist sie überall gelöscht. In Microsoft OneDrive kann man alte Dateiversionen wiederherstellen, aber ich bevorzuge ein separates Backup.

restic bietet sich an, weil es freie Software ist, die seit einigen Jahren ausgereift ist. In den folgenden Artikeln werde ich beschreiben, wie ich mit restic die Daten von meiner Synology auf externen Cloud Speichern sichere. Die beiden Beispiele sind ein sftp Server von Domain Factory und Microsoft OneDrive.

restic wird auf Synology in einem Docker container des Typs lobaro / restic-backup-docker laufen und rclone verwenden, um auf die jeweiligen Backup Server zuzugreifen. Für den ersten Teil mit dem Domain Factory sftp Server sieht das so aus:

Ich werde dazu mehrere Artikel veröffentlichen. Weiter geht es mit restic (2) – sftp Server vorbereiten .

Liste aller Artikel dieser Serie

restic (1) – Backups done right! – dieser Beitrag

restic (2) – sftp Server vorbereiten – Der Login muss mit einem SSL Zertifikat ohne Password möglich sein, damit restic über rclone darauf zugreifen kann.

restic (3) – Docker auf Synology – Installation des Docker containers

restic (4) – rclone für sftp – Installation und Einrichtung von rclone für sftp

restic (5) – restic Docker Container – Konfiguration und manueller Test des restic Docker Containers

restic (6) – restic Backup – Einrichten vom restic Backup

restic (7) – restic Restore – Testen der Wiederherstellung von Dateien aus restic Snapshots auf Windows 10.

restic (8) – rclone für OneDrive – Einrichtug des OneDrive Zugriffs für rclone

restic (9) – restic für OneDrive – OneDrive Konfiguration und manueller Test des restic Docker Containers