Ich suchte nach einer Lösung, um meine Daten von meinem Haupt-NAS, einer TrueNAS Core-Instanz, zu einem QNAP zu sichern. Obwohl ich ein wirklich gutes Tutorial von Raid Owl gefunden habe, das erklärt, wie man von TrueNAS zu Synology sichert, habe ich zu diesem Zeitpunkt keines für QNAP gefunden. Das folgende Tutorial sollte Ihnen eine Vorstellung davon geben, was Sie tun müssen, um Daten von TrueNAS zu QNAP mit rsync zu synchronisieren. Beachten Sie, dass rsync Ihre Daten zwar von A nach B kopiert, es sich technisch gesehen jedoch nicht um eine Backup-Lösung handelt.
Erstellen Sie auf dem QNAP einen Speicherort, an dem die Backups abgelegt werden sollen. Erstellen Sie im Control Panel unter Privilege: Shared Folders einen freigegebenen Ordner (z.B. TNbackup) und legen Sie die Berechtigungen fest. Ich persönlich bevorzuge, dass kein Benutzer (außer dem rsync Benutzer) Zugriff auf den Backup-Daten-Share hat, um zu vermeiden, dass er beschädigt wird. Daher sollte deny oder read only für alle anderen Benutzer ausreichen.
Erstellen Sie einen Benutzer, den TrueNAS zur Verbindung mit dem QNAP verwenden wird. Nennen wir ihn rsync. Stellen Sie sicher, dass der rsync Benutzer Teil der administrator Gruppe ist. Dies ist erforderlich, damit er über SSH auf das QNAP zugreifen kann. Geben Sie ihm read/write Berechtigungen für den TNbackup Share.
Aktivieren Sie im Users Tab des Control Panel im advanced settings den Home-Ordner für alle Benutzer.
Aktivieren Sie im Network & File Services Tab des Control Panel SSH auf Port 23 und SFTP. Sie können hier auch die Access Permissions festlegen.
Überprüfen Sie, ob Sie sich mit Ihrem neu erstellten Benutzer per SSH beim QNAP anmelden können.
ssh rsync@[QNAP-IP]
Öffnen Sie in der Terminal-Sitzung die sshd-Konfigurationsdatei im VI-Editor. Leider ist NANO auf QNAP nicht installiert.
sudo vi /etc/ssh/sshd_config
Suchen Sie die nächsten beiden Zeilen und entfernen Sie das -# Zeichen. Positionieren Sie den Cursor am Anfang der entsprechenden Zeile und drücken Sie die „i“-Taste für den Einfügemodus.
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
Nachdem Sie die beiden -# Zeichen entfernt haben, drücken Sie die Escape-Taste. Speichern Sie mit „:w“ gefolgt von der Eingabetaste und beenden Sie mit „:q“, gefolgt von der Eingabetaste.
Navigieren Sie nun zum Home-Ordner Ihres Benutzers:
cd /share/homes/rsync/
Erstellen Sie den .ssh Ordner und die authorized-keys (leere) Datei:
mkdir .ssh
chmod 024 .ssh
touch .ssh/authorized_keys
Sie können überprüfen, ob die Datei erstellt wurde, indem Sie diesen Befehl verwenden:
ls .ssh/
Setzen Sie die Benutzerberechtigungen für den .ssh Ordner:
sudo chmod -R 025 .ssh
sudo chown -R rsync .ssh
Möglicherweise müssen Sie die rsync- und ssh-Dienste auf QNAP über die GUI neu starten.
Erstellen Sie einen Home-Ordner für Ihren Benutzer, indem Sie die Shell in der GUI verwenden:
cd /mnt/[DATASET POOL]/
mkdir home
cd home
mkdir rsync
Erstellen Sie den Benutzer im Accounts/User Tab und fügen Sie einen neuen hinzu, indem Sie die folgenden Felder ausfüllen:
Vollständiger Name: [RSYNC zu QNAP]
Benutzername: rsync
Passwort: [Passwort]
Passwort bestätigen: [Passwort]
Benutzer-ID (automatisch von TrueNAS ausgefüllt)
Primäre Gruppe: rsync
Zusätzliche Gruppen: [wählen Sie eine, die Zugriff auf die zu sichernden Dateifreigaben hat]
Home-Verzeichnis: /mnt/[DATASET POOL]/home/rsync
Das war's vorerst. Später werden wir einige zusätzliche Details ausfüllen.
Erstellen Sie nun einen SSH-Schlüssel auf TrueNAS mit dem rsync Benutzer. Stellen Sie sicher, dass der SSH-Dienst auf TrueNAS läuft (GUI: Dienste-Tab). Beim Erstellen des Schlüssels können Sie alle Eingabeaufforderungen mit der Eingabetaste überspringen.
Melden Sie sich per SSH bei Ihrem TrueNAS an:
ssh rsync@[TrueNAS-IP]
ssh-keygen
Um den generierten Schlüssel anzuzeigen, verwenden Sie:
cat .ssh/id_rsa.pub
Kopieren Sie alles aus dieser Datei, von ssh-rsa bis zu etwas wie truenas-local.
Gehen Sie zurück zur TrueNAS GUI, bearbeiten Sie den rsync Benutzer und fügen Sie diese Zeichenfolge in das Feld SSH Public-Key ein.
Melden Sie sich nun beim QNAP per SSH an:
ssh rsync@[QNAP-IP]
vi .ssh/authorized_keys
Drücken Sie „i“ für den Einfügemodus. Fügen Sie die Zeichenfolge in die Datei ein. Drücken Sie Escape. Speichern Sie mit :w und beenden Sie mit :q.
Um zu testen, ob die Verbindung funktioniert, gehen Sie zurück zur SSH-Sitzung auf TrueNAS und verbinden Sie sich mit Ihrem QNAP:
Das QNAP wird nicht nach einem Passwort fragen, da es den Schlüssel verwendet, den wir gerade generiert und mit dem temporären Benutzer (rsync) geteilt haben. Sie müssen sicherstellen, dass der Fingerabdruck von Ihrem truenas known_hosts Datei übereinstimmt. Wenn dies nicht der Fall ist, wird das rsync-Verfahren höchstwahrscheinlich fehlschlagen.
Gehen Sie in der TrueNAS GUI zum Tasks-Tab, Rsync transfer tasks. Erstellen Sie eine neue rsync-Aufgabe.
**Quelle:**
Pfad: /mnt/[DATASET POOL]/fileshare_on_TrueNAS
Benutzer: rsync
Richtung: PUSH
Beschreibung: Backup TrueNAS zu QNAP
Zeitplan: wann immer Sie möchten
**Remote:**
Remote-Host: [IP des QNAP]
Rsync-Modus: SSH
Remote-SSH-Port: 26
Remote-Pfad: /share/[Ziel-Dateifreigabe auf QNAP]
Ich musste das Komprimierungs-Kontrollkästchen deaktivieren, um sicherzustellen, dass alle Dateien korrekt kopiert werden. Ich habe mich auch entschieden, die Löschoption nicht zu aktivieren. Um sicherzustellen, dass keine Fehler auftreten, vergessen Sie nicht, nach dem Erstellen der rsync-Aufgabe eine neue Sitzung zu starten.