Backup zu Synology mit rsync, SSH und einem YubiKey
Das Ziel ist es von einem Linux-Client aus alle Daten einem bestimmten Verzeichnisse auf unser Synology NAS zu synchronisieren und dort als eine Art Backup vorzuhalten.
Am einfachsten Funktioniert das unter Linux mit rsync. In einem meiner letzten Beiträge habe ich beschrieben, wie eine Datensicherung auf das openmediavault aussehen könnte. Die Idee nutze ich nun weiter, um auch eine Sicherung auf das Synology NAS zu übertragen. Es gibt jedoch einen gravierenden Unterschied, das Synology-Backup-Verzeichnis wird nicht mit cifs auf dem Client als Laufwerk eingebunden, sondern ich greife auf einen bereits ausgetauschten SSH-Schlüssel zurück, genauer gesagt nutze ich einen YubiKey, um die SSH-Verbindung aufzubauen.
Der Vorteil bei dieser Methode ist ganz klar, dass auf meinem Client kein privater SSH-Schlüssel abgespeichert sein muss, sondern der nur auf meinem YubiKey liegt. Ist der Hardwaretoken nicht am Client angeschlossen, ist ein Verbindungsaufbau zur Synology nicht möglich.
Die Anleitung zum Einrichten gibt es hier. 👉 Passwortlose SSH-Anmeldung mit SSH-Schlüsselpaar oder YubiKey am Synology NAS
Voraussetzung für das Ganze Setup ist also eine bereits funktionierende Verbindung zu unserem Synology NAS mit dem YubiKey und SSH.
Im nächsten Schritt ist auf dem NAS ein neuer Ordner für das Backup unseres Linux-Clients anzulegen. Ich habe dazu einfach für meinen Benutzer einen neuen Ordner in dessen Home-Verzeichnis angelegt. Der Ordner kann auch irgendwo anders erstellt werden. Voraussetzung ist aber, dass unser Benutzer dort Schreibrechte hat. Möchtet ihr einen anderen Benutzer verwenden, dann ist für diesen der SSH-Schlüssel auszutauschen. (siehe Link auf den Artikel oben)
Auf der Synology ist dann noch das rsync-Protokoll zu aktivieren, was in den Einstellungen auch gleich erledigt ist.
Anschließend kann es mit dem Sync auch schon losgehen.
Auf dem Client soll der Ordner /home/benutzer/Downloads
übertragen werden.
Der Zielordner auf der Synology ist im Verzeichnis /var/services/homes/benutzer/Drive/Backup/test
zu finden.
rsync -avn -e 'ssh -p 22' /home/benutzer/Downloads benutzer@192.168.2.123:/var/services/homes/benutzer/Drive/Backup/test
Wer für SSH einen anderen Port für den rsync vergeben hat, muss unbedingt die Option ssh -p
verwenden. Die Zahl ist dann gegen den jeweiligen Port zu ersetzen.
Zum Schluss einfach den Befehl in das Terminal eingeben, den YubiKey anschließen und schon läuft der Sync mit rsync.
Das Ganze lässt sich auch wieder in ein Skript einbauen. Dazu ist einfach die Vorlage aus dem oben verlinkten Artikel zu verwenden und anzupassen.
Irgendwie hat es bei mir nicht funktioniert das --backup-dir=${BACKUPDIRECTORY}
zu nutzen. Es kam ständig der Fehler. Wenn jemand eine Lösung hat, bitte her damit! :-)
rsync: delete_file: make_backup(datei) failed: Permission denied (13)
...
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender=3.2.3]
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
Photo by Claudio Schwarz on Unsplash