OpenWRT als rsync Server

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.

 

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.