OpenWRT kennt man als quelloffene Firmware für Router. Allerdings gibt es auch Firmware-Varianten für ein paar NAS (z.B. Western Digital MyBook Live) und es lassen sich an vielen Routern via USB-Schnittstelle externe Festplatten betreiben. Um es gleich vorwegzunehmen...viele NAS-Funktionen wie Rechtemanagement, RAID-Verwaltung etc. lassen sich nicht sehr komfortabel umsetzen. Für einen einfachen Datenspeicher, der nur zur Zweitsicherung von Daten in Betracht kommt, lässt sich OpenWRT auf "veralteten" Geräten aufgrund seines geringen Ressourcenverbrauchs aber gut einsetzen.
Als Basis dient die OpenWRT Version 21.02.2, der Vorgängerversionen konnten aber ebenfalls mit rsync umgehen. Vorausgesetzt wird nachfolgend, dass Zugang via SSH (secure-shell) zum Gerät besteht, und dem Benutzer root der ssh-login mit Kennwort gestattet wurde. Alternativ funktioniert der zertifikatsbasierte Zugang natürlich ebenfalls problemlos und ist bei Routern, die direkte Verbindung zum Internet haben, mehr als empfehlenswert.
Nachstehend wird eine sehr einfache Konfiguration gezeigt, die das OpenWRT Gerät in die Lage versetzt anderen rsync-fähigen Geräten ein Ziel zur Sicherung oder Synchronisation anzubieten.
1. Installation der benötigten Software
Sämtliche benötigte Software findet man in der Standard-Archiven von OpenWRT. Daher kann direkt aus der Kommandozeile heraus mit der Installation begonnen werden.
Zur Installation öffnet man auf dem Client ein Terminal-Fenster mit einer SSH-Sitzung, aktualisiert die Paketquellen und installiert das Paket rsync mit Root- bzw. Administratorrechten:
user@client> ssh root@xxx
Der Platzhalter "xxx" wird ersetzt durch die IP4-, IP6-Adresse oder den Namen Ihres Geräts. Beim ersten Verbindungsaufbau werden Sie sehr wahrscheinlich mit einer der folgenden Meldung sehr ähnlichen Frage begrüßt:
The authenticity of host 'NAME (IP-ADDRESS)' can't be established.
ED25519 key fingerprint is SHA256:+8SsgtbJwJ77dfladsjfkadshfke§dsfGdafwdfsdE.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Antworten Sie hier mit "yes" und geben im nächsten Schritt das Kennwort des Benutzers root ein.
root@IP-ADDRESS's password:
Nun werden Sie von der Konsole von OpenWRT begrüßt und fahren dann mit dem Update der Pakete und der Installation von rsync fort:
BusyBox v1.33.2 (2022-01-18 14:09:15 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 21.02.2, r16495-bf0c965af0
-----------------------------------------------------
root@openwrt#> opkg update
root@openwrt#> opkg install rsync
Erlauben Sie bei Nachfragen des Paketmanagers die Installation weiterer Pakete.
2. Erstellen der Ordner in der Dateistruktur
Zunächst legen wir die Ordner in der Dateistruktur an, welche als Ablageorte für die via rsync sychronisierten Dateien dienen sollen. Nachfolgende Ordnerstruktur ist lediglich ein Beispiel und kann beliebig verändert werden.
root@openwrt#> mkdir /mnt/shares/data
root@openwrt#> mkdir /mnt/shares/music
3. Konfigurationsdatei anpassen
Die Konfiguration wird über die Datei rsyncd.conf vorgenommen. Dazu editieren wir mit einem Editor wie vi oder nano die Datei. Eine beispielhafte Konfiguration für die Datei könnte wie nachfolgend aussehen. Weitere Informationen zu den Parametern findet man unter https://linux.die.net/man/5/rsyncd.conf.
root@openwrt#> nano /etc/rsyncd.conf
# Next line required for init script
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
use chroot = no
uid = nobody
gid = users
[data]
path = /mnt/shares/data
comment = Geteilter Ordner data
list = yes
read only = no
auth users = root
secrets file = /etc/rsyncd.secrets
[PUBLIC_II]
path = /mnt/shares/music
comment = Geteilter Ordner music
list = yes
read only = no
auth users = root
secrets file = /etc/rsyncd.secrets
Speichern Sie die Datei mit STRG-O (CTRL-O) und verlassen Sie den Editor über STRG-X (CTRL-X).
4. Benutzer und Kennwörter
4.1. Kennwortdatei erstellen
Im nächsten Schritt ist noch die in der Datei rsyncd.conf genannte Datei rsyncd.secrets. Im Beispiel wird nur der Benutzer root verwandt. In realen Anwendungen wären hier verschiedene Benutzer vorzufinden. Bitte beachten Sie, dass die rsync-Benutzer nicht automatisch Benutzer des darunterliegenden Betriebssystems sind. Der Inhalt der Datei besteht je Zeile aus dem Benutzername und dem Kennwort, getrennt durch einen Doppelpunkt.
root@openwrt#> nano /etc/rsyncd.secrets
root:sicheresKennwort123
4.2. Zugriffsschutz für Kennwortdatei
Damit die Datei nicht von anderen Benutzern eingesehen und modifiziert werden kann, werden noch die Dateirechte entsprechend verändert:
root@openwrt#> chmod 600 /etc/rsyncd.secrets
Damit kann nur der Benutzer root lesend und schreibend auf die Datei zugreifen. Kontrollieren können wir den Erfolg mit folgendem Kommando:
root@openwrt#> ls -ls /etc/rsyncd.secrets
4 -rw------- 1 root root 12 Mar 13 20:35 /etc/rsyncd.secrets
5. Abschlussarbeiten
Zum Abschluss wird der rsync-Dienst gestartet bzw. neugestartet.
root@openwrt#> /etc/init.d/rsyncd restart
Eine einfache Kontrolle, ob der Dienst gestart wurde, kann über folgenden Befehle durchgeführt werden:
root@openwrt#> /etc/init.d/rsyncd status
Als Resultat sollte "running" ausgegeben werden. Eine weitere Möglichkeit ist die Nutzung des Tools netstat, welches den geöffneten Port anzeigt. Im Standard ist dies bei rsync der TCP-Port 873.
root@openwrt#> netstat -an | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
tcp 0 0 :::873 :::* LISTEN
Die Einrichtung ist abgeschlossen.