openmediavault und rsync

openmediavault bringt das mächtige Tool rsync mit, dass sich hervorragend für die Datensicherung und das Kopieren von Dateien eignet.

Möchtest du Daten zwischen omv und einem Server Daten austauschen, dann eignet sich rsync besonder gut.

Der Zugriff von openmediavault (omv) auf den entfernten Server erfolgt mit Hilfe von SSH. Es ist deshalb notwendig, dass der Dienst dort aktiviert und ein Benutzer mit SSH-Rechten eingerichtet ist.

Du solltest dir ein paar Gedanken zum rsync-Benutzer machen.

Auf omv ist das gleich erledigt, dass NAS-System erlaubt dir da keine Änderungen. omv ist vorkonfiguriert und du solltest das nicht ändern.

Auf deinem entfernten Linux-Server dagegen sieht das anderes aus. Dort kannst du entweder ein bestehendes Benutzerkonto verwenden, oder ein neues Benutzerkonto nur für rsync anlegen.

Tasks

omv bringt den Service rsync mit. Damit können Daten zwischen verschiedenen omv-Laufwerke und zwischen omv und anderen Rechner hin und her kopiert werden.

Das geht in beide Richtungen:

  • pull = omv <– Server
  • push = omv –> Server

Mit der Option pull kannst du sehr einfach eine Datensicherung von einem entfernten System auf dein omv holen.

Mit den Option push geht es in die andere Richtung, von omv zum Server.

Der Charme bei beiden Varianten, du benötigst keine Konfiguration in Form von Cron Jobs und / oder Shell-Skripten auf dem entfernten Server. Alle Einstellungen werden in omv erledigt und der Synchronisationslauf wird dort entweder mit Hilfe eines CRON oder manuell über die WEboberfläche gestartet.

Hast du z.B. einen Linux-Server auf den du bereits per SSH zugreifen kann, ist die Einrichtung des rsync-Aufgabe sehr schnell erledigt.

Fehlt der SSH-Server auf dem entfernten Linux-Server, kannst du das Paket aus den Repositories nachinstallieren:

sudo apt-get install openssh-server 

In diesem Beispiel wird ein rsync mit der pull-Option konfiguriert. Es kann z.B. von einem Nextcloud-Server in regelmäßigen Abständen eine Datensicherung von unterschiedlichen Verzeichnissen, z.B. Konfigurations-Dateien, Datenverzeichnis, Theme-Verzeichnis, etc. geholt und auf den dafür vorgesehenen NAS-Freigaben gespeichert werden.


Zur openmediavault Themenseite ➡ klicke hier

Zur Nextcloud Themenseite ➡ klicke hier

Zur Raspberry Pi Themenseite ➡ klicke hier


openmediavault und rsync pull
openmediavault und rsync pull

Der Pull Job wird wie im Screenshot dargestellt konfiguriert:

omv - rsync-Configuration
omv – rsync-Configuration
Source Server
benutzername@ip-address:/home/benutzer/test
  • benutzername = Benutzer auf dem entfernten Server
  • ip-address = IP-Adresse des entfernten Servers
  • /home/benutzer/test = zu synchronisierendes Verzeichnis !der benutzername benötigt auf diesen Ordner einen Zugriff!

Ganz wichtig!!!

Der Benutzer benötigt auf dem Server einen Zugriff auf den Ordner, den du per rsync synchronisieren möchtest.

Möchtest du einen Systemordner oder geschützte Daten kopieren, musst du eine andere rsync-Option verwenden.


Als Authentifizierungsmethode habe ich Public Key gewählt, da so die Aufgabe automatisiert werden kann.

Bei diesem Verfahren erstellt omv automatisch ein SSH-Schlüsselpaar, einen privaten und einen öffentlichen Schlüssel.

Im Menü System - Certificates - SSH sind alle erstellten Schlüssel aufgelistet.
Du kannst dabei nur auf den öffentlichen Schlüssel zugreifen, der private Schlüssel wird über die Weboberfläche aus Sicherheitsgründen nicht angezeigt.

omv - rsync-Configuration
omv – rsync-Configuration

Den öffentlichen Schlüssel musst du kopieren und auf deinem Linux-Server abspeichern.

Melde dich dazu per SSH auf deinem entfernten Server mit dem benutzername an und kopiere den öffentlichen Schlüssel in die Datei ~/.ssh/authorized_keys.

ssh benutzername@ip-addresse
nano ~/.ssh/authorized_keys

Füge den öffentlichen Schlüssel einfach am Ende der Datei ein und speichere die Änderung ab.

Du kannst auch die Eigentümerschaft und die Zugriffsrechte auf die Datei einschränken, so dass nur noch sudo oder root die Datei ändern können.
Damit verliert der Benutzer, in dessen Home-Verzeichnis sich ~/.ssh/authorized_keys befindet, dass Recht die Datei zu ändern.

sudo chown root:root ~/.ssh/authorized_keys
sudo chmod 644 ~/.ssh/authorized_keys

Fehler – Host key verification failed

Bei mir gab es jedoch ein kleines Problem beim Verbindungsaufbau. omv hat keine Verbindung zu meinem Server hergestellt. Die Verbindung wurde immer abgewiesen.

Die Fehlermeldung:

Host key verification failed

Die Lösung:

  1. Melde dich mit deinem Benutzer per SSH an omv an
  2. Wechsle zum Benutzer su
  3. Stelle eine SSH-Verbindung zu deinem entfernten Server her
  4. Akzeptiere den Fingerprint mit yes
ssh benutzer@ip-address-of-openmediavault

sudo su

ssh benutzer@ip-address

root@openmediavault:/etc/ssh# ssh benutzer@ip-address
The authenticity of host 'ip-address (ip-address)' can't be established.
ECDSA key fingerprint is SHA256:sdsdsdsdsdsdsdsdsdsdsd/ererererererererer.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ip-address' (ECDSA) to the list of known hosts.

Nun sollte der Pull Job von omv aus funktionieren. Du kannst das direkt testen, indem du die rsync-Aufgabe startest.

omv - rsync-Configuration
omv – rsync-Configuration

Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Server

rsync – Deep Dive

Kopieren großer Datenmengen zwischen 2 omv-Laufwerken

Es lassen sich über die CLI schnell und einfach Ordner und Dateien zwischen zwei an das omv angeschlossene Laufwerke kopieren.

Es gibt zwei Kommandos für das Kopieren:

  • cp
  • rsync

cp ist der bekanntere Befehl zum Kopieren von Dateien. Es gibt jedoch einen Nachteil, es wird kein Kopierfortschritt angezeigt.

Nach der Eingabe des Befehls wird einfach nichts mehr angezeigt, bis alle Daten kopiert wurden. Die einzige Möglichkeit irgendetwas zu erfahren, ist z.B. über top oder htop. Dort kann man den Prozess verfolgen und schauen, ob der cp-Prozess noch läuft.

Wesentlich besser eignet sich der rsync-Befehl für das Kopieren vom Daten auf der CLI. Der Fortschritt wird angezeigt angezeigt.

Über die omv-Weboberfläche lassen sich die Mount Points der angeschlossenen Festplatten sehr einfach finden und gleich in die Zwischenablage kopieren.

omv - rsync-Configuration
omv – rsync-Configuration

Der rsync-Befehl lt.:

rsync -a --info=progress  /srv/dev-disk-by-uuid-11111111111/quelle/daten /srv/dev-disk-by-uuid-2222222222222/ziel

rsync von Systemdaten und geschützten Dateien

Im Abschnitt Tasks habe ich bereits darauf hingewiesen, dass der Benutzer mit dem der rsync-Befehl auf dem entfernten Server ausgeführt wird Zugriff auf die Daten benötigt.

Das trifft eigentlich auf alle Dateien im eigenen Homverzeichnis /home/benutzer zu. Möchtest du aber Dateien von anderen Benutzern sichern oder gar Systemdateien, dann wirst du einen solchen Fehler angezeigt bekommen.

Please wait, syncing  to  ...

receiving incremental file list
rsync: [sender] opendir "/etc/scripts/pi" failed: Permission denied (13)
pi/

sent 28 bytes  received 73 bytes  202.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1819) [generator=3.2.3]
ERROR: The synchronisation failed.

END OF LINE

Ursache

Der Benutzer, der den rsync-Prozess auf dem entfernten Server ausführt hat keine Rechte für den Ordner /etc/scripts/pi.

Die Rechte sind wie folgt gesetzt:

drw-------   3 root     root     4.0K Apr 27 19:25 pi

Wie du erkennst, ist

  • Eigentümer = root
  • Benutzer = root

und nur diese Beiden (Eigentümer und Gruppe) können lesend und schreibend auf den Ordner pi zugreifen.


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Lösung

Du kannst den rsync-Befehl auf der omv zu gestalten, dass rsync auf dem entfernten Server mit root-Rechten, besser gesagt sudo nutzen darf.

In der Datei etc/sudoers musst du eine Änderung vornehmen, so dass beim Ausführen eines Befehls mit sudo KEINE Passwortabfrage erfolgt.

omv führt den Befehl remote auf dem Server aus und du hast keine Möglichkeit der Passworteingabe.

Aus diesem Grund musst du unbedingt eine Public Key Authentication verwenden!

Die Datei kannst du nur mit dem speziellen Editor visudo bearbeiten.

sudo visudo
Option 1

Nun kannst du entweder alle Benutzer, die sudo verwenden dürfen von der Passwortpflicht befreien.

sudo visudo
# Allow members of group sudo to execute any command
#%sudo  ALL=(ALL:ALL) ALL
%sudo  ALL=(ALL) NOPASSWD:ALL
Option 2

Du legst einen neuen Benutzer speziell für rsync an und befreist nur dieses einen Benutzer von der Passwortpflicht bei der sudo-Verwendung für den Prozess /usr/bin/rsync.

sudo visudo
benutzername ALL= NOPASSWD:/usr/bin/rsync

Nach dieser Ergänzung in der Datei etc/sudoers kann nur der Benutzer rsync den sudo-Befehl ohne Passwort verwenden. Andere Benutzer müssen weiterhin ihr Passwort eingeben.

Einen neuen Benutzer rsyncuser legst du wie folgt an und vergibst auch alle Rechte:

sudo adduser rsyncuser
sudo usermod -a -G sudo rsyncuser
sudo usermod -a -G sshadmin rsync (Optional, wenn der SSH-Zugriff nur für die Gruppe `sshadmin` erlaubt ist. Das erfordert eine Anpassung der `sshd_config` auf dem Remote Server und ist bei der Verwendung von `Public Key` dringend zu empfehlen.)

Zum Schluss legst du dir deine rsync-Aufgabe wie im Abschnitt Tasks beschreiben an.

Die einzige Ergänzung ist bei Extra Options am Ender der Seite. Dort trägst du einfach die Zeile ein und speicherst den Task ab.

--rsync-path="sudo rsync"
omv - rsync-Configuration
omv – rsync-Configuration

Fertig!

Die Sicherung von Systemdaten oder geschützten Dateien via rsync funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.