Backup mit Borg und Vorta auf ein Synology NAS

Backups sind unabdingbar. Gab es von Daten kein Backup, waren diese Daten nicht wichtig. Bei der Verwendung durchgängig verschlüsselter Systeme sind Backups umso bedeutender, da beispielsweise defekte Geräte nicht einfach ausgelesen werden können. Besonderer Beliebtheit erfreut sich seit einiger Zeit Borg.

Ich experimentierte unter Linux seit vielen Jahren mit verschiedenen Backup-Lösungen. Bei macOS bin ich hingegen total glücklich mit Time Machine. Zuletzt hatte ich hier Déjà Dup vorgestellt, mit dem ich mein Pantheon-System sichere. Ich bin bekanntermaßen ein großer Freund grafischer Oberflächen. Nicht weil ich die Konsole nicht mag oder nicht mit ihr umgehen könnte, sondern weil ich viele Aufgaben einfach lieber mit einer grafischen Oberfläche erledige. Meiner Meinung nach ist die Konsole nur deshalb im Linux-Umfeld so beliebt, weil die grafischen Oberflächen oft so furchtbar gestaltet und/oder fehleranfällig sind. In den Kommentaren zu Déjà Dup wies man mich auf Vorta hin, das eine grafische Oberfläche für Borg ist.

Gefühlt hört man aus Admin-Kreisen permanent Borg, borg, borg, borgmatic, borg, borgbase, borg, wenn es um Backups geht. Umso mehr ein Grund, sich das mal anzusehen.

Borg ist eine schnelle, inkrementiell sichernde Backuplösung. Die Datensicherungen werden in einem Repositorium gespeichert, das entweder lokal vorliegen, auf einem externen Speichermedium oder einem Server bzw. NAS abgelegt werden kann. Anders als bei Lösungen wie Duplicity benötigt Borg ein Clientprogramm auf dem zu sichernden System und einen Serverpart auf dem System, welches das Repositorium bereitstellt. Die Backups sind verschlüsselte und bei entfernten Repositorien erfolgt die Übertragung via SSH.

Beides kann man mit Linux und einem Synology NAS einrichten, was aber nicht ganz trivial ist und mich einiges an Recherche gekostet hat. Die Vorgehensweise soll hier deshalb dargestellt werden.

Vorbereitung des Synology NAS

SynoCommunity Paketquelle hinzufügen und Borg installieren

Synology bietet nicht direkt ein Paket für Borg an. Deshalb muss man auf Pakete der Community zurückgreifen. Die SynoCommunity stellt glücklicherweise viele Pakete für Synology NAS bereit und dazu zählt auch Borg.

Die Paketquelle lässt sich leicht über die Administrationsoberfläche des Synology DSM hinzufügen. Dazu das Paket-Zentrum öffnen und rechts oben in den Einstellungen unter Paketquellen die SynoCommunity Paketquelle hinzufügen.

Anschließend erscheint bei der Paketauswahl ein neuer Bereich Community. Hier lässt sich das Paket Borg auswählen und installieren. Bei der Installation erfolgt zur Sicherheit eine Abfrage, ob man wirklich Pakete von Dritten installieren möchte.

Benutzer und Freigabe anlegen

Ich verwende auf meinem NAS unterschiedliche Benutzer für unterschiedliche Aufgaben, um gezielt Rechte vergeben zu können. Diese Schritte zeige ich hier auch für Borg. Wer nur mit einem Nutzer arbeitet, kann diese Schritte überspringen und muss ggf. die Anleitung ein wenig anpassen.

In der Synology Systemsteuerung ist zuerst die Gruppe borg-backup und ein Benutzer borg-backup anzulegen. Der Gruppe können die Zugriffsrechte auf alle Freigaben verweigert werden, ausgenommen natürlich homes. Der Benutzer ist der Gruppe borg-backup hinzuzufügen und zusätzlich der Gruppe administrators. Das ist natürlich total unsinnig, aber Synology erlaubt nur für Mitglieder der Gruppe administrators den SSH-Zugriff und diesen benötigt man für das Borg-Backup.

Hat man beides angelegt, kann man einen neuen freigegebenen Ordner namens borgbackup anlegen. Die Zugriffsrechte sind hier entsprechend für die eben angelegte Gruppe zu setzen. Bei Bedarf kann ein Quota vergeben werden, dass natürlich nicht zu knapp bemessen sein sollte.

SSH Schlüssel hinzufügen

Nun kommt der weniger triviale Teil. Borg benötigt einen SSH-Zugriff mittels SSH-Key und das sieht Synology so eigentlich nicht vor. Zum Glück ist der DiskStation Manager von Synology letztlich nur eine Linux-Distribution und deshalb kann man natürlich manuell einen SSH-Key hinzufügen.

Sollte man noch keinen SSH-Key besitzen, kann man einen anlegen (nicht auf dem Synology NAS, sondern dem Rechner!)

ssh-keygen -t ed25519 -C "mail"@domain.td"

Zuerst meldet man sich mit seinem normalen Administratoraccount via SSH an. Ggf. ist vorher in der Systemsteuerung unter Terminal & SNMP der SSH-Dienst zu aktivieren. Hier kann bei Bedarf auch eine abweichende Port-Nummer festgelegt werden.

$ ssh -p <Portnummer> <benutzer>@<hostname>
z.B. $ ssh -p 26 gheim@synology218

Anschließend befindet man sich auf Shell des Synology DSM. Hier holt man sich zuerst Administratorrechte.

$ sudo -i

Nach der nochmaligen Passworteingabe ändert sich der Shell-Prompt zu: root@<hostname>:~#

Nun nimmt man die notwendigen Änderungen für den SSH-Zugriff vor. Hierbei legt man Verzeichnisse im Home-Verzeichnis des Benutzers borg-backup an und ändert die Rechte.

# mkdir -p /var/services/homes/borg-backup/.ssh
# touch /var/services/homes/borg-backup/.ssh/authorized_keys
# chown -R borg-backup:borg-backup /var/services/homes/borg-backup
# chmod 0700 /var/services/homes/borg-backup
# chmod 0700 /var/services/homes/borg-backup/.ssh
# chmod 0600 /var/services/homes/borg-backup/.ssh/*

Anschließend kopiert man den Publickey des SSH in die Datei ~/.ssh/authorized_keys auf dem Synology NAS. Dazu gibt es eigentlich ein SSH-Tool, aber das hat bei mir bei der Synology NAS nicht funktioniert. Deshalb einfach den Inhalt der Datei ~/.ssh/id_ed25519.pub kopieren und mittels des SSH-Zugangs in die entsprechende Datei im Synology DSM schreiben.

Nun meldet man den Root- bzw. Adminaccount von SSH ab und testet ob man den neuen Account mittels Keyfile via SSH anmelden kann.

ssh -i ~/.ssh/id_ed25519 <benutzer>@<hostname> -p <portnummer>

Sollte es hier Probleme geben, können mittels folgendem Kommando erweiterte Debug-Informationen ausgegeben werden.

ssh -vvvT -i ~/.ssh/id_ed25519 <benutzer>@<hostname> -p <portnummer>

Klappt der Zugriff ist das Synology NAS bereit für das Borg-Backup.

Vorta

Sicherung konfigurieren

Auf dem zu sichernden System verwende ich Vorta als grafische Oberfläche für Borg. Dabei handelt es sich um ein Qt-Programm. Vorta befindet sich bei vielen Distributionen in den Paketquellen und zieht bei der Installation das notwendige Paket borgbackup nach sich.

Vorta arbeitet mit Profilen. Dadurch lassen sich verschiedene Sicherungen einrichten. Das kennt man vielleicht von LuckyBackup oder Back In Time.

Als erstes wählt man ein Sicherungsziel bzw. legt hier mittels “Neues Repository initialisieren” ein neues Sicherungsziel an. Die Repository-URL folgt einem Schema, das bereits grau hinterlegt angezeigt wird. Bei einer Sicherung auf ein Synology NAS sieht die URL in etwa wie folgt aus:

ssh://<username>@domain:<port>/volume1/<freigabe>/ordner

z.B.

ssh://borg-backup@synology218:26/volume1/borgbackup/notebook

Das vergebene Passwort dient der Verschlüsselung des Backups.

Unter Erweitert muss man bei Extra-Optionen ggf. noch den Remote-Path, also den Pfad zu Borg auf der Synology DiskStation, hinterlegen.

--remote-path=/usr/local/bin/borg

Bei den Quellen wählt man die zu sichernden Verzeichnisse. Bei mir ist dies das komplette Home-Verzeichnis. Zusätzlich kann man einen Zeitplan konfigurieren. Das halte ich grundsätzlich für sinnvoll, weil Faulheit und Vergesslichkeit die beiden größten Feinde eines jeden Backupkonzepts sind. Wenn man das Gerät natürlich nur sehr selten startet oder es sich regelmäßig nicht im selben Netzwerk wie das Synology NAS befindet, kann man darauf natürlich verzichten.

Abschließend kann man über die Schaltfläche Datensicherung starten die erste Sicherung erstellen. Das geht verglichen mit anderen Lösungen wie Déjà Dup oder Back In Time erfreulich flott.

Backup wiederherstellen

Sicherungen werden als inkrementelle Schnappschüsse gespeichert und lassen sich im Reiter Archive ansehen. Die erste Sicherung ist logischerweise sehr groß, die Schnappschüsse danach enthalten je nach Änderungen nur einige hundert MB.

Zur Wiederherstellung bieten sich zwei Optionen an. Über den Button Ausgewähltes Archiv kann über das Menü Extract die Sicherung extrahiert oder über Mount an einen beliebigen Ort eingebunden werden. Vor allem die Mount-Option ist für mich interessant, da ich glücklicherweise eher selten ein komplettes Backup wiederherstellen möchte, sondern meist nur einzelne Dateien aus einem bestimmten Stand ansehen will. Hierfür musste auf meinem Client-System noch das Paket python38-llfuse nachinstalliert werden.

Zusammengefasst

Die Installation und Konfiguration ist etwas mühsam und nicht ganz trivial. Bei meiner Recherche bin ich oft auf Leute gestoßen, die an irgendwas gescheitert sind oder sich einfacheren Lösungen zugewandt haben. Hat man das aber erfolgreich hinter sich gebracht, belohnt einen Borg bzw. Volta mit geräuschloser Arbeit im Hintergrund. Die Sicherung ist schnell, robust und das Durchsuchen der Backups mittels Mount-Option klappt zuverlässig. Ich bin sehr zufrieden damit und werden vermutlich bei Gelegenheit auch mein Pantheon-System von Déjà Dup auf Vorta/Borg umstellen.

Bei meinen externen Speichermedien bleibe ich hingegen konservativ bei rsync. Es mag paranoid erscheinen, aber ich möchte nicht alle meine Datensicherungen in Repositorien, deren Inhalt ich nur mit Softwaretools durchsuchen kann.

Cruiz
Cruizhttps://curius.de
Moin, meine Name ist Gerrit und ich betreibe diesen Blog seit 2014. Der Schutz der digitalen Identität, die einen immer größeren Raum unseres Ichs einnimmt ist mir ein Herzensanliegen, das ich versuche tagtäglich im Spannungsfeld digitaler Teilhabe und Sicherheit umzusetzen. Die Tipps, Anleitungen, Kommentare und Gedanken hier entspringen den alltäglichen Erfahrungen.
  1. Ich verwende Vorta auch schon einige Jahre. Bei mir funktioniert die automatische Sicherung nicht. Dazu gibt es auch schon eine Fehlermeldung. Ich sehe zur gewählten Zeit eine Nachricht, aber im Hintergrund passiert nichts. Funktioniert es bei dir?

    • Das habe ich bisher nicht getestet. Vermutlich muss Vorta beim Systemstart mit gestartet werden und dann im Hintergrund laufen? Meine Recherche hatte nur ergeben, dass Cronjobs und ähnliches nicht unterstützt werden.

  2. Moin,
    ich hänge beim mkdir:
    Meine Version DSM 7.0.1-42218

    DSadmin@DS218FB:/$ mkdir -p /var/services/homes/borg-backup
    mkdir: cannot create directory ‘/var/services/homes’: File exists

    DSadmin@DS218FB:/$ ls -al /var/services/homes
    lrwxrwxrwx 1 root root 24 Aug 26 21:07 /var/services/homes -> /volume1/@fake_home_link

    Auch für andere User finde ich kein homedir unter /volume1
    Hast du eine Idee?

    Ich habe bislang dirvish verwendet, nicht auf dem NAS, sondern USBplatte. Borg hatte ich auch mal angedacht, jetzt mit Vorta wird es interessant.
    Deine Beiträge, die ich über ubuntuusers und auch per feed erhalte, sind sehr informativ!

    • Keine Ahnung, wo da die Unterschiede sind. Mein Synology NAS ist ein 2-Bay NAS mit Upgrade von 6 auf 7 und Btrfs-Dateisystem. Möglicherweise ist das bei einer frischen Installation, einem anderen Dateisystem oder einem NAS mit mehr Festplatten anders?

      Ist Volume1 denn dein richtiges Volume? Irgendwo werden die Home-Verzeichnisse deiner Nutzer ja liegen 😉

      $ ls -l /var/services/homes
      lrwxrwxrwx+ 1 root root 14 Jan 9 10:01 /var/services/homes -> /volume1/homes

      • Ich vermute, er hat die home-Verzeichnisse gar nicht aktiviert.

        Systemsteuerung -> Benutzer und Gruppe -> Erweitert -> Benutzerbasis
        [ ] Benutzer-Home-Dienst aktivieren.

  3. Hi
    wie kann man das Paket python38-llfuse auf der Syno mit DSM 7.0 installieren? Ich finde das Paket nicht… auch nicht bei den Community-Paketen.

    Hast du einen Tipp?

  4. Wenn man Benutzer-Home-Dienst aktivieren gesetzt hat, dann wird automatisch für den User borg-backup ein Homeverzeichnis angelegt. Man kann dann auch mit ssh-copy-id -i ~/.ssh/id_rsa.pub borg-backup@synology den Public-Key rüber kopieren. Der SSH-Login ohne Kennwort funktioniert danach ebenfalls einwandfrei.
    Man muss wirklich alle Felder zur Erstellung des SSH-Repoitorys auswählen. Langes Kennwort und den –remote-path=/usr/local/bin/borg

Schreibe einen Kommentar zu Gerrit Antwort abbrechen

Ergänzungen dienen der Diskussion über die Inhalte des Artikels. Nachfragen, Anmerkungen und Ergänzungen sind dezidiert erwünscht. Ergänzungen werden vor der Veröffentlichung moderiert. Wir behalten uns vor Kommentare ohne inhaltlichen Bezug oder abseitige Diskussionen nicht zu veröffentlichen.

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Weitere Artikel