Nextcloud Backup mit Synology ABfB

Der Betrieb einer Nextcloud-Instanz bei einem externen Hoster erfordert eine solide Backup-Strategie, um Datenverlust durch Serverdefekte, Fehlkonfigurationen oder Ransomware-Angriffe vorzubeugen. In diesem Beitrag wird erläutert, wie Sie eine georedundante Sicherung von Ihrer Nextcloud auf Ihr lokales Synology NAS implementieren.

Das Sicherheitskonzept: Pull-Verfahren über SSH

Um die Sicherheit Ihres lokalen Netzwerks zu gewährleisten, wird das Pull-Prinzip angewandt. Die Verbindung wird ausschließlich von dem lokalen Synology NAS initiiert. Da das NAS hinter einem Router agiert, bleibt es aus dem Internet unerreichbar, während Sie die Daten vom Hoster bezieht.

Die Vorteile dieses Setups:

  • Schutz vor Ransomware: Durch die Versionierung in Active Backup for Business (ABfB) bleiben frühere Datenstände verfügbar, falls die Quelldaten verschlüsselt wurden.
  • Georedundanz: Die physische Trennung von Cloud-Server und Backup-Standort minimiert das Risiko totalen Datenverlusts.
  • Minimale Angriffsfläche: Es wird lediglich ein SSH-Zugang auf dem Quellserver benötigt.

1. Vorbereitung auf dem Quellserver (Nextcloud)

Eine konsistente Sicherung erfordert, dass die Datenbank und die Dateien in einem definierten Zustand kopiert werden.

Erstellung des MySQL-Dumps

Da sich die Datenbank im laufenden Betrieb ständig ändert, muss vor dem Backup ein Export (Dump) erstellt werden. Dieser schreibt den gesamten Inhalt der Datenbank in eine einzelne SQL-Datei.

Richten Sie hierzu einen Cronjob für ein Skript auf Ihrem Nextcloud Server ein, der vor dem eigentlichen Backup-Lauf ausgeführt wird und eine Sicherung der Nextcloud-Datenbank, wie auch eine Sicherung aller Datenbanken erzeugt:

Derzeitige Konfiguration prüfen:

grep -E "dbhost|dbname|dbuser|dbpassword" /var/www/nextcloud/config/config.php

Im CLI der Nextcloud ausführen und davor die Pfade anpassen:

sudo -i

mkdir -p /pfad/zu/skript/ && vim /pfad/zu/skript/sicherung.sh && chmod 700 /pfad/zu/skript/sicherung.sh && echo '22 22 * * * /pfad/zu/skript/sicherung.sh > /dev/null 2>&1' >> /var/spool/cron/crontabs/root

Folgendes einfügen und davor die Pfade und Datenbankinformationen anpassen:

#!/bin/bash
mkdir -p /pfad/zu/nextcloud/backup/
/usr/bin/find /pfad/zu/nextcloud/backup/*.sql -mtime +0 -exec rm -r {} \;
mysqldump -u [Datenbank-Nutzer] -p'[Passwort]' [Datenbank-Name] > /pfad/zu/nextcloud/backup/nextcloud_db_dump.sql
mysqldump -u root --all-databases > /pfad/zu/nextcloud/backup/all_db_dump.sql

Vim schließen und speichern:

ESC drücken
:wq
ENTER drücken

Prüfen:

crontab -l

SSH-Zugriff

Stellen Sie sicher, dass der SSH-Dienst auf dem Server aktiv ist. Es empfiehlt sich die Verwendung von SSH-Schlüsselpaaren (Public-Key-Authentifizierung), um eine passwortlose und sichere Anmeldung dem NAS zu ermöglichen.

Service auf Nextcloud prüfen:

sudo -i

systemctl status ssh.service

Soll so aussehen:

ssh Service auf Nextcloud prüfen

Public-Key auf NAS erstellen:

ssh USER@NAS-INTERNE-IP

sudo -i

ssh-keygen -t rsa -b 4096 -m PEM -f /root/.ssh/id_rsa_abb

#Das ist der public-key!
cat /root/.ssh/id_rsa_abb.pub

#Das ist der privat-key!
cat /root/.ssh/id_rsa_abb

Public-Key vom NAS auf Nextcloud hinterlegen:

ssh USER@NEXTCLOUD-FQDN-ODER-IP

sudo -i

vim /root/.ssh/authorized_keys

Den Public-Key vom NAS ganz unten eintragen, speichern und schließen.

Auf dem NAS als root prüfen:

ssh -i /root/.ssh/id_rsa_abb -v NEXTCLOUD-FQDN-ODER-IP

z.B. ssh -i /root/.ssh/id_rsa_abb -v nextcloud.admin-boy.de

Wenn der Login gelingt, war der Test erfolgreich!


2. Definition der zu sichernden Daten

Für eine vollständige Wiederherstellung müssen folgende Komponenten von der Nextcloud gesichert werden:

  1. Document Root: Das Installationsverzeichnis der Nextcloud (enthält den Programmcode und die config.php).
  2. Nextcloud Data (ncdata): Das Verzeichnis, in dem die Benutzerdateien gespeichert sind.
  3. Datenbank-Dump: Die zuvor erstellte db_dump.sql.
  4. Konfigurationsverzeichnis (etc): Das Linux Konfigurationsverzeichnis.

3. Konfiguration in Active Backup for Business (ABFB)

Auf dem lokalen Synology NAS wird die Sicherung wie folgt eingerichtet:

  1. Öffnen Sie Active Backup for Business. (Synology-Konto erstellen!)
  2. Navigieren Sie zu Dateiserver > Server hinzufügen.
  3. Wählen Sie rsync-Server und den Verbindungstyp rsync shell-Modus via SSH.
  4. Geben Sie als Server-Adresse der Nextcloud sowie die SSH-Anmeldedaten an. Sieht dann so aus:
ABfB Konfigurieren

Der SSH-Schlüssel muss den Inhalt der Datei „id_rsa_abb“ von dem NAS enthalten. Die Datei wurde zuvor von Ihnen unter „/root/.ssh/id_rsa_abb“ auf dem NAS erstellt. Legen Sie eine Datei auf dem Desktop, mit dem Namen „id_rsa_abb“ an (ohne Dateiendung!) und bearbeiten Sie diese im Editor. Nach dem Upload löschen Sie die Datei wieder und leeren den Papierkorb!

Erste Sicherung

Wählen Sie „Mehrere Versionen“ aus.

Sicherungsmodus von ABfB

Wählen Sie abschließend im nächsten Schritt die oben genannten Verzeichnisse aus. Bei einer Nextcloud Standardinstallation, sollte mindestens das Sicherungsverzeichnis und das Verzeichnis „/var/www“ ausgewält werden. Das Verzeichnis „/etc“ enthält die Konfigurationsdateien des Servers und sollte ebenfalls gesichert werden.

Sicherungsquelle Auf Synology NAS

Zeitplanung und Aufbewahrung

Konfigurieren Sie den Zeitplan so, dass das Backup zeitlich versetzt nach der Erstellung des MySQL-Dumps startet. Aktivieren Sie Mehrere Versionen, um im Falle eines Ransomware-Befalls auf ältere, saubere Stände zurückgreifen zu können.

Zeitplan
Aufbewahrungsrichtlinie

Die Abfrage, ob jetzt eine Datensicherung durchgeführt werden soll, mit „Ja“ bestätigen. In der Übersicht von ABfB sehen Sie nun die laufende Sicherung.

ABfB Status prüfen

Abschließend prüfen Sie den Status der letzte Sicherung.

ABfB Dateiserver Übersicht

Fazit

Durch die Kombination aus einem automatisierten MySQL-Dump und dem rsync-basierten Pull-Verfahren von Active Backup for Business schaffen Sie eine professionelle Backup-Lösung. Die Datenhoheit verbleibt in Ihrer eigenen Infrastruktur.

Wenn wir auch Sie beim Aufbau eines eigenen Nextcloud Servers oder der Einrichtung eines Synology NAS unterstützen können, dann nehmen Sie gerne Kontakt auf.