Adrian Dymorz
Startseite > IT-Knowhow > Off-site backup mit Unraid und Duplicati

Off-Site-Backup mit Duplicati auf Unraid

Überblick

Ich betreibe ein Unraid-basiertes NAS-System. Die darauf gespeicherten Daten möchte ich in regelmässigen Abständen automatisch auf ein zweites NAS-System an einem anderen Standort sichern.

Die folgende Beschreibung zeigt, wie ich dieses System einrichte.

Komponentenübersicht

Zwei Unraid-basierte Systeme (lokaler Speicher und Backup-Server)

Docker-Container (auf jedem System beide für ein bidirektionales Backup):

  • Duplicati
  • SFTP-Server

Docker auf Unraid

Obwohl viele How-to-Artikel empfehlen, das Unraid Community Applications Plugin zu verwenden, ziehe ich es vor, die Unraid-Images selbst auszuwählen und die Kontrolle über die Konfiguration zu behalten. Daher verwende ich das Unraid Community Applications Plugin nicht.

Docker-Container: SFTP-Server

Quellcode des Docker-Images: https://github.com/atmoz/sftp

Dieses Image bietet ein einfaches, aber konfigurierbares Setup eines SFTP-Servers.

Es ist wichtig, einen eigenen SSH-Host-Schlüssel bereitzustellen, um Probleme bei der Verwendung des SFTP-Servers als Duplicati-Ziel zu vermeiden.

Obwohl Duplicati die Authentifizierung über SSH-Schlüssel unterstützt, habe ich es nicht zum Laufen gebracht. Am Ende habe ich die Authentifizierung per Benutzername und Passwort verwendet.

Beispielkonfiguration

Port-Zuordnungen:

App Host
22 10500

Der Host-Port muss auf dem Router gemappt werden.

Volumen-Mappings:

App Host
/home/bu/backup /path_to_backup
/etc/ssh/ssh_host_ed25519_key /path_to_c1/keys/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key /path_to_c1/keys/ssh_host_rsa_key
/etc/sftp/users.conf /path_to_c1/users.conf

/path_to_backup: Pfad zum Speicherort der Sicherungsdateien

/path_to_c1: Pfad zu den Konfigurationsdateien von Container 1

/path_to_c1 und /path_to_backup beginnen normalerweise mit /mnt/user

Inhalt von users.conf: bu:ThisIsATopSecretPassword

Docker-Container: Duplicati

Quellcode des Docker-Images: https://github.com/linuxserver/docker-duplicati

Dieses Image stellt eine konfigurierbare Instanz von Duplicati bereit. Duplicati bietet verschlüsselte, inkrementelle Backups auf einem externen Speicher, z. B. einem SFTP-Server.

Beispielkonfiguration

Port-Zuordnungen:

App Host
8200 8200

Der Host-Port muss auf dem Router gemappt werden.

Volume-Mappings:

App Host
/source/documents /path_to_documents
/config /path_to_c2/config

/path_to_documents: Pfad zum Speicherort der Dateien, die Sie sichern möchten

Sie können so viele Quellverzeichnisse hinzufügen, wie Sie möchten.

/Pfad_zu_c2: Pfad zu den Konfigurationsdateien von Container 2

/path_to_documents und /path_to_c2 beginnen normalerweise mit /mnt/user

Erreichen des Backup-Servers - DNS

Sie können den myfritz.net-Dienst nutzen, um eine Subdomain auf myfritz.net zu erhalten, die auf Ihren AVM-Router zeigt. Für die Schönheit können Sie einen CNAME-Eintrag verwenden, der auf die myfritz-Subdomain zeigt.

Sie können auch jeden anderen dynamischen DNS-Dienst verwenden.

Beispielkonfiguration

  • some_system.myfritz.net zeigt auf die öffentliche IP des Servers. Der A-Record wird von der Fritz Box erneuert, nachdem er auf myfritz.net registriert wurde.
  • Der Eintrag location1.example.org zeigt auf die Subdomain myfritz.net. Hierfür wird ein CNAME-Eintrag verwendet.

Erreichen des Backup-Servers - Port-Mapping

Sie müssen einen Port auf Ihrem Router auf den SFTP-Server mappen.

Beispielkonfiguration

  • Port 20 auf location1.example.org zeigt auf Port 10500 auf dem SFTP-Server-Container.

Duplicati-Backup-Aufgaben einrichten

Verwenden Sie bei einem geplanten Auftrag die folgenden Optionen für das Sicherungsziel:

Option Wert
Speichertyp SFTP (SSH)
Server und Port location1.example.org:20
Pfad auf dem Server /home/bu/backup
Benutzernamen bu
Passwort ThisIsATopSecretPassword

Wenn Sie mehrere Sicherungsquellen haben, erstellen Sie für jede Quelle einen separaten Auftrag. Falls Sie eine vollständige Sicherung benötigen, können Sie die wichtigen Quellen zuerst wiederherstellen.

Verwenden Sie für jede Aufgabe ein eigenes Verzeichnis auf dem Backup-Server, um die Dinge sauber zu halten!

Risikoanalyse

Datendiebstahl auf lokalem Server

Ein kleines zusätzliches Risiko entsteht durch diese Einrichtung, da Duplicati auf Ihre Quellen zugreifen kann.

Abhilfe: Sorgen Sie für eine korrekte Konfiguration von Duplicati, z.B. verwenden Sie einen Passwortschutz für den Zugriff auf die Duplicati-Web-Oberfläche.

Datendiebstahl auf dem Backup-Server

Solange Sie die richtigen Einstellungen verwenden, werden die Backup-Dateien auf Duplicati verschlüsselt, bevor sie auf den Backup-Server übertragen werden.

Abhilfe: Stellen Sie sicher, dass die SSH-Authentifizierungsinformationen und die Verschlüsselung des Backups a) getrennt und b) an einem sicheren Ort gespeichert werden.

Datenverlust durch Defekt auf lokalem Server

Der Sinn dieser Einrichtung ist es, dieses Risiko zu mindern!

Das Wichtigste: Prüfen Sie, ob Sie eine gelöschte Datei aus dem Backup wiederherstellen können. Verlassen Sie sich nicht blind auf ein Backup-System, von dem Sie sich nicht überzeugt haben, dass es funktioniert.

Datenverlust durch fehlenden Zugriff auf das Backup

Für den Fall, dass Ihr lokales System komplett zerstört wird und Sie kein Backup der wichtigen Teile der Konfiguration haben, können Sie nichts aus den Backups wiederherstellen.

Abhilfe:

  • Stellen Sie sicher, dass Sie die Passphrase für die Backup-Verschlüsselung an einem sicheren Ort gespeichert haben
  • Stellen Sie sicher, dass Sie Zugriff auf die Sicherungsdateien haben

Datenverlust durch Defekt am Backup-Server

Falls der Backup-Server komplett zerstört wird, ist Ihr Backup verloren.

Abhilfe:

  • Verwenden Sie ein zusätzliches Backup (z.B. Offline-Backup in Form einer Festplatte)
  • Prüfen Sie regelmässig, ob der Backup-Server noch aktiv ist

Datenverlust durch Verschlüsselungstrojaner

Falls Sie einen Verschlüsselungstrojaner auf Ihrem System haben, können Ihre Daten verschlüsselt werden. Je nach Trojaner können Sie die Verschlüsselung erst nach einigen Tagen bemerken.

Abhilfe:

  • Stellen Sie sicher, dass Sie Duplicati so konfigurieren, dass alte Backups auf dem Backup-System verbleiben
  • Stellen Sie sicher, dass Sie keine Verbindung zum SFTP-Backup-Server auf einem anderen System als dem Duplicati-Container herstellen